diff options
author | Karl Berry <karl@freefriends.org> | 2021-02-24 18:33:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-02-24 18:33:44 +0000 |
commit | dbd941ed19b558edd09219a372b2b0832957b283 (patch) | |
tree | 9c6af6f3924d8b1fff6638e510a907306342fa7d /Master | |
parent | a360890a6c2a4befab6b48084d0731ad09c46631 (diff) |
asymptote 2.69 support files
git-svn-id: svn://tug.org/texlive/trunk@57876 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
176 files changed, 9512 insertions, 8682 deletions
diff --git a/Master/texmf-dist/asymptote/GUI/Window1.py b/Master/texmf-dist/asymptote/GUI/Window1.py index 4e0a57af2c6..1f7b67b1fa1 100755 --- a/Master/texmf-dist/asymptote/GUI/Window1.py +++ b/Master/texmf-dist/asymptote/GUI/Window1.py @@ -772,11 +772,11 @@ class MainWindow1(Qw.QMainWindow): self.asyfyCanvas() def actionManual(self): - asyManualURL = 'http://asymptote.sourceforge.net/asymptote.pdf' + asyManualURL = 'https://asymptote.sourceforge.io/asymptote.pdf' webbrowser.open_new(asyManualURL) def actionAbout(self): - Qw.QMessageBox.about(self,"xasy","This is xasy "+xasyVersion.xasyVersion+"; a graphical front end to the Asymptote vector graphics language: http://asymptote.sourceforge.net/") + Qw.QMessageBox.about(self,"xasy","This is xasy "+xasyVersion.xasyVersion+"; a graphical front end to the Asymptote vector graphics language: https://asymptote.sourceforge.io/") def btnExportAsyOnClick(self): diag = Qw.QFileDialog(self) diff --git a/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson b/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson index de6e7b3e8fd..c87f8c5b531 100644 --- a/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson +++ b/Master/texmf-dist/asymptote/GUI/configs/xasyconfig.cson @@ -54,7 +54,7 @@ debugMode: true # Overrides -windows: +Windows: externalEditor: "notepad.exe" Darwin: diff --git a/Master/texmf-dist/asymptote/GUI/icons_rc.py b/Master/texmf-dist/asymptote/GUI/icons_rc.py index f30a6bbc804..5f463238c02 100755 --- a/Master/texmf-dist/asymptote/GUI/icons_rc.py +++ b/Master/texmf-dist/asymptote/GUI/icons_rc.py @@ -9,13 +9,13 @@ from PyQt5 import QtCore qt_resource_data = b"\ -\x00\x00\x03\xe6\ +\x00\x00\x03\x4c\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ \x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ \x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ \x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ \x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ \x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ @@ -27,53 +27,362 @@ qt_resource_data = b"\ \x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ \x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ \x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x43\x68\x65\x76\x72\x6f\x6e\x5f\x63\x69\x72\x63\x6c\x65\ -\x64\x5f\x72\x69\x67\x68\x74\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ +\x22\x49\x63\x6f\x6e\x5f\x32\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\ +\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\ +\x35\x36\x2c\x31\x35\x32\x63\x2d\x35\x37\x2e\x32\x2c\x30\x2d\x31\ +\x30\x34\x2c\x34\x36\x2e\x38\x2d\x31\x30\x34\x2c\x31\x30\x34\x73\ +\x34\x36\x2e\x38\x2c\x31\x30\x34\x2c\x31\x30\x34\x2c\x31\x30\x34\ +\x73\x31\x30\x34\x2d\x34\x36\x2e\x38\x2c\x31\x30\x34\x2d\x31\x30\ +\x34\x53\x33\x31\x33\x2e\x32\x2c\x31\x35\x32\x2c\x32\x35\x36\x2c\ +\x31\x35\x32\x7a\x20\x4d\x32\x35\x36\x2c\x34\x38\x0d\x0a\x09\x09\ +\x09\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x34\x38\x2c\ +\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\x35\x36\x73\x39\ +\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\x38\x2c\x32\x30\ +\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\ +\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\x2c\x34\x38\x2c\ +\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\x2c\x34\x32\x32\ +\x2e\x34\x0d\x0a\x09\x09\x09\x63\x2d\x39\x31\x2e\x35\x31\x38\x2c\ +\x30\x2d\x31\x36\x36\x2e\x34\x2d\x37\x34\x2e\x38\x38\x33\x2d\x31\ +\x36\x36\x2e\x34\x2d\x31\x36\x36\x2e\x34\x53\x31\x36\x34\x2e\x34\ +\x38\x32\x2c\x38\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\ +\x53\x34\x32\x32\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\ +\x32\x32\x2e\x34\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\ +\x2c\x34\x32\x32\x2e\x34\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x34\ +\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\ +\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x04\x1c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ +\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ +\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ +\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ +\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ +\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ +\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ +\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ +\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ +\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ +\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ +\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ +\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ +\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\ +\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x32\ +\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x36\ +\x32\x2e\x32\x33\x32\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\ +\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\ +\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\ +\x35\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\ +\x35\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\ +\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\ +\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\ +\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\ +\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\ +\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\ +\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\ +\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\ +\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\ +\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\ +\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x33\x32\x2e\x31\x32\x27\x20\ +\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\ +\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\ +\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\ +\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\ +\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\ +\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\ +\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\ +\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\ +\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\ +\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\x32\x2e\ +\x31\x32\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x33\x32\x2e\x31\ +\x32\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\x27\x20\x66\x69\x6c\x6c\ +\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\ +\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\ +\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\ +\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ +\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x03\x0c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x43\x68\x65\x63\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\ \x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ \x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\ \x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x22\x0d\x0a\x09\x20\x78\x3d\x22\x30\x70\x78\ -\x22\x20\x79\x3d\x22\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\ -\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\ -\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\ -\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\ -\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\ -\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\ +\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\x79\ +\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\x65\x6e\ +\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\ +\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\ +\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\ +\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x63\x2d\x30\ +\x2e\x34\x33\x35\x2c\x30\x2d\x30\x2e\x38\x34\x37\x2d\x30\x2e\x32\ +\x30\x33\x2d\x31\x2e\x31\x31\x31\x2d\x30\x2e\x35\x35\x33\x4c\x33\ +\x2e\x36\x31\x2c\x31\x31\x2e\x37\x32\x34\x63\x2d\x30\x2e\x34\x36\ +\x35\x2d\x30\x2e\x36\x31\x33\x2d\x30\x2e\x33\x34\x34\x2d\x31\x2e\ +\x34\x38\x36\x2c\x30\x2e\x32\x37\x2d\x31\x2e\x39\x35\x31\x0d\x0a\ +\x09\x63\x30\x2e\x36\x31\x35\x2d\x30\x2e\x34\x36\x37\x2c\x31\x2e\ +\x34\x38\x38\x2d\x30\x2e\x33\x34\x34\x2c\x31\x2e\x39\x35\x33\x2c\ +\x30\x2e\x32\x37\x6c\x32\x2e\x33\x35\x31\x2c\x33\x2e\x31\x30\x34\ +\x6c\x35\x2e\x39\x31\x31\x2d\x39\x2e\x34\x39\x32\x63\x30\x2e\x34\ +\x30\x37\x2d\x30\x2e\x36\x35\x32\x2c\x31\x2e\x32\x36\x37\x2d\x30\ +\x2e\x38\x35\x32\x2c\x31\x2e\x39\x32\x31\x2d\x30\x2e\x34\x34\x35\ +\x0d\x0a\x09\x63\x30\x2e\x36\x35\x33\x2c\x30\x2e\x34\x30\x36\x2c\ +\x30\x2e\x38\x35\x34\x2c\x31\x2e\x32\x36\x36\x2c\x30\x2e\x34\x34\ +\x36\x2c\x31\x2e\x39\x32\x4c\x39\x2e\x34\x37\x38\x2c\x31\x36\x2e\ +\x33\x34\x63\x2d\x30\x2e\x32\x34\x32\x2c\x30\x2e\x33\x39\x31\x2d\ +\x30\x2e\x36\x36\x31\x2c\x30\x2e\x36\x33\x35\x2d\x31\x2e\x31\x32\ +\x2c\x30\x2e\x36\x35\x36\x43\x38\x2e\x33\x33\x36\x2c\x31\x36\x2e\ +\x39\x39\x38\x2c\x38\x2e\x33\x31\x36\x2c\x31\x36\x2e\x39\x39\x38\ +\x2c\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x7a\x22\x2f\ +\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x03\x22\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ +\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x22\x32\x35\x36\x22\ +\x20\x63\x79\x3d\x22\x32\x38\x30\x22\x20\x72\x3d\x22\x36\x33\x22\ +\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\ +\x34\x30\x2c\x39\x36\x68\x2d\x38\x38\x6c\x2d\x33\x32\x2d\x33\x32\ +\x48\x31\x39\x32\x6c\x2d\x33\x32\x2c\x33\x32\x48\x37\x32\x63\x2d\ +\x32\x32\x2e\x30\x39\x32\x2c\x30\x2d\x34\x30\x2c\x31\x37\x2e\x39\ +\x30\x38\x2d\x34\x30\x2c\x34\x30\x76\x32\x37\x32\x63\x30\x2c\x32\ +\x32\x2e\x30\x39\x32\x2c\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2c\ +\x34\x30\x2c\x34\x30\x68\x33\x36\x38\x63\x32\x32\x2e\x30\x39\x32\ +\x2c\x30\x2c\x34\x30\x2d\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2d\ +\x34\x30\x0d\x0a\x09\x09\x56\x31\x33\x36\x43\x34\x38\x30\x2c\x31\ +\x31\x33\x2e\x39\x30\x38\x2c\x34\x36\x32\x2e\x30\x39\x32\x2c\x39\ +\x36\x2c\x34\x34\x30\x2c\x39\x36\x7a\x20\x4d\x32\x35\x36\x2c\x33\ +\x39\x32\x63\x2d\x36\x31\x2e\x38\x35\x35\x2c\x30\x2d\x31\x31\x32\ +\x2d\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2d\x31\x31\x32\x73\ +\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2c\x31\x31\x32\x2d\x31\ +\x31\x32\x73\x31\x31\x32\x2c\x35\x30\x2e\x31\x34\x35\x2c\x31\x31\ +\x32\x2c\x31\x31\x32\x0d\x0a\x09\x09\x53\x33\x31\x37\x2e\x38\x35\ +\x35\x2c\x33\x39\x32\x2c\x32\x35\x36\x2c\x33\x39\x32\x7a\x22\x2f\ +\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\ +\x0a\ +\x00\x00\x04\xa2\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ +\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ +\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ +\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ +\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ +\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ +\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ +\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ +\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ +\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ +\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ +\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ +\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ +\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ +\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ +\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x34\ +\x2e\x31\x35\x35\x35\x36\x20\x2d\x33\x39\x2e\x32\x37\x34\x35\x20\ +\x36\x2e\x39\x38\x34\x37\x33\x20\x2d\x34\x36\x2e\x31\x30\x34\x37\ +\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\ +\x39\x43\x20\x32\x37\x2e\x34\x34\x31\x31\x20\x2d\x36\x37\x2e\x37\ +\x32\x36\x39\x20\x35\x33\x2e\x33\x30\x32\x31\x20\x2d\x36\x31\x2e\ +\x35\x34\x30\x35\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\ +\x2e\x35\x30\x32\x32\x43\x20\x35\x37\x2e\x36\x32\x37\x20\x2d\x33\ +\x32\x2e\x36\x35\x31\x39\x20\x35\x30\x2e\x35\x38\x35\x36\x20\x2d\ +\x32\x33\x2e\x35\x36\x32\x31\x20\x34\x30\x2e\x36\x37\x39\x34\x20\ +\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\ +\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\ +\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ +\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\ +\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\ +\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\ +\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ +\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ +\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\ +\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\ +\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\ +\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\ +\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\ +\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\ +\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ +\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ +\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\ +\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\ +\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\ +\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\ +\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\ +\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\ +\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\ +\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\ +\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\ +\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\ +\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\ +\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\ +\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\ +\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\ +\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\ +\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\ +\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\ +\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\ +\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\ +\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\ +\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\ +\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\ +\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\ +\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\ +\x3e\ +\x00\x00\x04\x3d\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ +\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ +\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ +\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ +\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ +\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ +\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ +\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ +\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ +\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ +\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ +\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ +\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ +\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ +\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ +\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\ +\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\ +\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\ +\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\ +\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\ +\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\ +\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\ +\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\ +\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ +\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\x39\ +\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\ \x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\ -\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\ -\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x2c\x31\ -\x30\x4c\x38\x2e\x36\x39\x38\x2c\x37\x2e\x34\x39\x34\x63\x2d\x30\ -\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x38\x2d\x30\x2e\x31\x39\x36\ -\x2d\x30\x2e\x35\x31\x39\x2c\x30\x2d\x30\x2e\x37\x31\x38\x63\x30\ -\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x35\x31\x35\ -\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x37\x31\x2c\x30\x6c\x32\x2e\ -\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\x0a\x09\x63\x30\x2e\x31\ -\x39\x36\x2c\x30\x2e\x31\x39\x39\x2c\x30\x2e\x31\x39\x36\x2c\x30\ -\x2e\x35\x32\x2c\x30\x2c\x30\x2e\x37\x31\x37\x6c\x2d\x32\x2e\x38\ -\x30\x37\x2c\x32\x2e\x38\x36\x34\x63\x2d\x30\x2e\x31\x39\x35\x2c\ -\x30\x2e\x31\x39\x39\x2d\x30\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\ -\x38\x2d\x30\x2e\x37\x31\x2c\x30\x63\x2d\x30\x2e\x31\x39\x36\x2d\ -\x30\x2e\x31\x39\x37\x2d\x30\x2e\x31\x39\x36\x2d\x30\x2e\x35\x31\ -\x38\x2c\x30\x2d\x30\x2e\x37\x31\x37\x4c\x31\x31\x2c\x31\x30\x7a\ -\x20\x4d\x31\x30\x2c\x30\x2e\x34\x0d\x0a\x09\x63\x35\x2e\x33\x30\ -\x32\x2c\x30\x2c\x39\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2c\x39\x2e\ -\x36\x2c\x39\x2e\x36\x63\x30\x2c\x35\x2e\x33\x30\x33\x2d\x34\x2e\ -\x32\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x2c\x39\x2e\x36\x53\ -\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x33\x2c\x30\x2e\x34\x2c\x31\ -\x30\x43\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x34\x2e\x36\x39\ -\x38\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\ -\x30\x2c\x31\x38\x2e\x33\x35\x34\x0d\x0a\x09\x63\x34\x2e\x36\x31\ -\x33\x2c\x30\x2c\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2c\x38\ -\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\ -\x31\x34\x2d\x33\x2e\x37\x34\x31\x2d\x38\x2e\x33\x35\x34\x2d\x38\ -\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x2d\x34\x2e\x36\x31\ -\x35\x2c\x30\x2d\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2d\x38\ -\x2e\x33\x35\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x2e\ -\x36\x34\x35\x2c\x31\x34\x2e\x36\x31\x34\x2c\x35\x2e\x33\x38\x35\ -\x2c\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\ -\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\ -\x76\x67\x3e\x0d\x0a\ +\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\ +\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\ +\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\ +\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\x79\ +\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\ +\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\ +\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\ +\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\ +\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\ +\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\ +\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\ +\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\x79\ +\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\x6c\ +\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\ +\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\ +\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\ +\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\ +\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\ +\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\ +\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\x20\ +\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\x69\ +\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\ +\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\ +\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\ +\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\ +\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\ +\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\ +\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\x34\ +\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\ +\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\ +\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\ +\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x02\xf2\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -124,6 +433,166 @@ qt_resource_data = b"\ \x35\x39\x39\x2c\x31\x30\x2c\x31\x37\x2e\x35\x39\x39\x7a\x22\x2f\ \x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\ \x0a\ +\x00\x00\x02\x7d\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ +\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ +\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\ +\x37\x2c\x32\x33\x34\x2e\x36\x32\x35\x48\x31\x36\x37\x2e\x32\x39\ +\x36\x6c\x31\x31\x39\x2e\x37\x30\x32\x2d\x31\x31\x39\x2e\x37\x30\ +\x32\x4c\x32\x35\x36\x2c\x38\x35\x4c\x38\x35\x2c\x32\x35\x36\x6c\ +\x31\x37\x31\x2c\x31\x37\x31\x6c\x32\x39\x2e\x39\x32\x32\x2d\x32\ +\x39\x2e\x39\x32\x34\x4c\x31\x36\x37\x2e\x32\x39\x36\x2c\x32\x37\ +\x37\x2e\x33\x37\x35\x48\x34\x32\x37\x56\x32\x33\x34\x2e\x36\x32\ +\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ +\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x02\xc9\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ +\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ +\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ +\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ +\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\ +\x3d\x22\x34\x38\x30\x2c\x32\x35\x36\x20\x33\x38\x34\x2c\x31\x36\ +\x30\x20\x33\x38\x34\x2c\x32\x33\x36\x20\x32\x37\x36\x2c\x32\x33\ +\x36\x20\x32\x37\x36\x2c\x31\x32\x38\x20\x33\x35\x32\x2c\x31\x32\ +\x38\x20\x32\x35\x36\x2c\x33\x32\x20\x31\x36\x30\x2c\x31\x32\x38\ +\x20\x32\x33\x36\x2c\x31\x32\x38\x20\x32\x33\x36\x2c\x32\x33\x36\ +\x20\x31\x32\x38\x2c\x32\x33\x36\x20\x31\x32\x38\x2c\x31\x36\x30\ +\x20\x33\x32\x2c\x32\x35\x36\x20\x31\x32\x38\x2c\x33\x35\x32\x20\ +\x0d\x0a\x09\x31\x32\x38\x2c\x32\x37\x36\x20\x32\x33\x36\x2c\x32\ +\x37\x36\x20\x32\x33\x36\x2c\x33\x38\x34\x20\x31\x36\x30\x2c\x33\ +\x38\x34\x20\x32\x35\x36\x2c\x34\x38\x30\x20\x33\x35\x32\x2c\x33\ +\x38\x34\x20\x32\x37\x35\x2e\x38\x2c\x33\x38\x34\x20\x32\x37\x35\ +\x2e\x34\x2c\x32\x37\x35\x2e\x35\x20\x33\x38\x34\x2c\x32\x37\x35\ +\x2e\x38\x20\x33\x38\x34\x2c\x33\x35\x32\x20\x22\x2f\x3e\x0d\x0a\ +\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x04\x4e\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ +\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ +\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ +\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ +\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ +\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ +\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ +\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ +\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ +\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ +\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ +\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ +\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ +\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ +\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ +\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\ +\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\ +\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\ +\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\ +\x32\x38\x31\x4c\x20\x33\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\ +\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\ +\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\ +\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\ +\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\ +\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\ +\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\ +\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\ +\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\ +\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\ +\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\ +\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\ +\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\ +\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\ +\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\ +\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\ +\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\ +\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\ +\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\ +\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\ +\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\ +\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\ +\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\ +\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\ +\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\ +\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\ +\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\ +\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ +\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ +\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\ +\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\ +\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\ +\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\ +\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\ +\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\ +\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\ +\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x01\x69\ \x3c\ \x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ @@ -149,7 +618,197 @@ qt_resource_data = b"\ \x31\x20\x30\x20\x31\x20\x30\x20\x30\x2d\x32\x20\x31\x20\x31\x20\ \x30\x20\x30\x20\x30\x20\x30\x20\x32\x7a\x22\x2f\x3e\x3c\x2f\x67\ \x3e\x3c\x2f\x73\x76\x67\x3e\x0a\ -\x00\x00\x03\x46\ +\x00\x00\x05\xca\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x34\x35\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\ +\x35\x63\x2d\x31\x34\x2e\x35\x38\x35\x2d\x31\x34\x2e\x35\x37\x37\ +\x2d\x33\x36\x2e\x30\x35\x34\x2d\x31\x35\x2e\x38\x39\x2d\x35\x30\ +\x2e\x36\x33\x39\x2d\x31\x2e\x33\x31\x32\x6c\x2d\x34\x31\x2e\x36\ +\x38\x37\x2c\x34\x31\x2e\x36\x36\x34\x63\x2d\x31\x30\x2e\x38\x35\ +\x32\x2c\x31\x30\x2e\x38\x33\x36\x2d\x32\x33\x2e\x39\x33\x2c\x31\ +\x30\x2e\x38\x35\x39\x2d\x33\x31\x2e\x35\x36\x34\x2c\x31\x2e\x38\ +\x35\x32\x0d\x0a\x09\x63\x2d\x35\x2e\x30\x35\x37\x2d\x35\x2e\x39\ +\x36\x38\x2d\x33\x2e\x30\x36\x31\x2d\x32\x34\x2e\x33\x37\x34\x2d\ +\x31\x2e\x36\x34\x34\x2d\x33\x36\x2e\x30\x34\x39\x6c\x32\x30\x2e\ +\x39\x30\x37\x2d\x31\x37\x31\x2e\x38\x34\x39\x63\x31\x2e\x38\x36\ +\x37\x2d\x31\x35\x2e\x33\x35\x33\x2d\x39\x2e\x30\x37\x2d\x33\x30\ +\x2e\x31\x38\x35\x2d\x32\x34\x2e\x34\x33\x2d\x33\x32\x2e\x30\x35\ +\x31\x0d\x0a\x09\x63\x2d\x31\x35\x2e\x33\x35\x38\x2d\x31\x2e\x38\ +\x36\x37\x2d\x32\x39\x2e\x33\x32\x32\x2c\x39\x2e\x39\x33\x39\x2d\ +\x33\x31\x2e\x31\x39\x31\x2c\x32\x35\x2e\x32\x38\x39\x4c\x32\x36\ +\x37\x2e\x33\x37\x2c\x32\x33\x36\x2e\x30\x32\x31\x63\x2d\x31\x2e\ +\x32\x30\x35\x2c\x33\x2e\x33\x35\x38\x2d\x33\x2e\x37\x39\x2c\x33\ +\x2e\x39\x33\x38\x2d\x34\x2e\x30\x38\x31\x2d\x30\x2e\x35\x38\x32\ +\x4c\x32\x35\x35\x2e\x34\x34\x2c\x36\x30\x0d\x0a\x09\x63\x30\x2d\ +\x31\x35\x2e\x34\x36\x35\x2d\x31\x32\x2e\x35\x34\x32\x2d\x32\x38\ +\x2d\x32\x38\x2e\x30\x31\x34\x2d\x32\x38\x63\x2d\x31\x35\x2e\x34\ +\x37\x33\x2c\x30\x2d\x32\x38\x2e\x30\x31\x35\x2c\x31\x32\x2e\x35\ +\x33\x35\x2d\x32\x38\x2e\x30\x31\x35\x2c\x32\x38\x6c\x2d\x30\x2e\ +\x35\x35\x32\x2c\x31\x37\x36\x2e\x37\x35\x32\x63\x30\x2e\x31\x34\ +\x36\x2c\x32\x2e\x30\x34\x2d\x31\x2e\x36\x30\x34\x2c\x32\x2e\x36\ +\x32\x34\x2d\x31\x2e\x39\x32\x2c\x30\x2e\x32\x39\x34\x4c\x31\x37\ +\x32\x2e\x30\x31\x36\x2c\x39\x39\x2e\x30\x37\x37\x0d\x0a\x09\x63\ +\x2d\x32\x2e\x37\x35\x2d\x31\x35\x2e\x32\x31\x39\x2d\x31\x37\x2e\ +\x33\x32\x33\x2d\x32\x36\x2e\x32\x30\x33\x2d\x33\x32\x2e\x35\x34\ +\x38\x2d\x32\x33\x2e\x34\x35\x33\x63\x2d\x31\x35\x2e\x32\x32\x37\ +\x2c\x32\x2e\x37\x34\x38\x2d\x32\x35\x2e\x33\x33\x39\x2c\x31\x38\ +\x2e\x31\x38\x37\x2d\x32\x32\x2e\x35\x39\x31\x2c\x33\x33\x2e\x34\ +\x30\x33\x6c\x32\x32\x2e\x31\x39\x33\x2c\x31\x36\x31\x2e\x34\x35\ +\x35\x0d\x0a\x09\x63\x30\x2e\x30\x32\x33\x2c\x32\x2e\x38\x37\x32\ +\x2d\x30\x2e\x39\x34\x31\x2c\x34\x2e\x35\x31\x33\x2d\x32\x2e\x33\ +\x30\x38\x2c\x30\x2e\x38\x33\x31\x6c\x2d\x33\x33\x2e\x31\x30\x39\ +\x2d\x38\x38\x2e\x35\x31\x37\x63\x2d\x35\x2e\x31\x38\x2d\x31\x34\ +\x2e\x35\x37\x32\x2d\x32\x31\x2e\x31\x39\x36\x2d\x32\x33\x2e\x30\ +\x36\x35\x2d\x33\x35\x2e\x37\x37\x36\x2d\x31\x37\x2e\x38\x38\x39\ +\x0d\x0a\x09\x63\x2d\x31\x34\x2e\x35\x37\x39\x2c\x35\x2e\x31\x37\ +\x37\x2d\x32\x32\x2e\x32\x30\x31\x2c\x32\x32\x2e\x30\x36\x31\x2d\ +\x31\x37\x2e\x30\x32\x33\x2c\x33\x36\x2e\x36\x33\x31\x6c\x35\x38\ +\x2e\x30\x34\x32\x2c\x31\x38\x39\x2e\x36\x32\x35\x63\x30\x2e\x33\ +\x30\x33\x2c\x31\x2e\x30\x34\x36\x2c\x30\x2e\x36\x32\x34\x2c\x32\ +\x2e\x30\x38\x35\x2c\x30\x2e\x39\x35\x33\x2c\x33\x2e\x31\x31\x38\ +\x6c\x30\x2e\x31\x32\x31\x2c\x30\x2e\x33\x39\x0d\x0a\x09\x63\x30\ +\x2e\x30\x31\x31\x2c\x30\x2e\x30\x33\x31\x2c\x30\x2e\x30\x32\x35\ +\x2c\x30\x2e\x30\x35\x38\x2c\x30\x2e\x30\x33\x35\x2c\x30\x2e\x30\ +\x38\x38\x43\x31\x32\x36\x2e\x30\x37\x39\x2c\x34\x34\x34\x2e\x32\ +\x33\x33\x2c\x31\x37\x32\x2e\x35\x37\x2c\x34\x38\x30\x2c\x32\x32\ +\x37\x2e\x34\x32\x37\x2c\x34\x38\x30\x63\x33\x35\x2e\x31\x31\x36\ +\x2c\x30\x2c\x37\x31\x2e\x35\x39\x31\x2d\x31\x32\x2e\x33\x37\x38\ +\x2c\x39\x39\x2e\x33\x35\x37\x2d\x33\x33\x2e\x36\x37\x32\x0d\x0a\ +\x09\x63\x30\x2e\x30\x30\x31\x2c\x30\x2c\x30\x2e\x30\x30\x33\x2d\ +\x30\x2e\x30\x30\x32\x2c\x30\x2e\x30\x30\x33\x2d\x30\x2e\x30\x30\ +\x32\x63\x32\x39\x2e\x39\x39\x2d\x31\x38\x2e\x30\x35\x31\x2c\x31\ +\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x2c\x31\ +\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x43\x34\ +\x36\x37\x2e\x34\x34\x35\x2c\x33\x31\x30\x2e\x34\x30\x32\x2c\x34\ +\x36\x35\x2e\x32\x36\x36\x2c\x32\x38\x38\x2e\x30\x38\x2c\x34\x35\ +\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\x35\x7a\x22\x2f\x3e\x0d\ +\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x03\x26\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ +\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x33\x38\ +\x38\x63\x2d\x37\x32\x2e\x35\x39\x37\x2c\x30\x2d\x31\x33\x32\x2d\ +\x35\x39\x2e\x34\x30\x35\x2d\x31\x33\x32\x2d\x31\x33\x32\x63\x30\ +\x2d\x37\x32\x2e\x36\x30\x31\x2c\x35\x39\x2e\x34\x30\x33\x2d\x31\ +\x33\x32\x2c\x31\x33\x32\x2d\x31\x33\x32\x63\x33\x36\x2e\x33\x2c\ +\x30\x2c\x36\x39\x2e\x32\x39\x39\x2c\x31\x35\x2e\x34\x2c\x39\x32\ +\x2e\x34\x30\x36\x2c\x33\x39\x2e\x36\x30\x31\x4c\x32\x37\x38\x2c\ +\x32\x33\x34\x68\x31\x35\x34\x56\x38\x30\x0d\x0a\x09\x09\x6c\x2d\ +\x35\x31\x2e\x36\x39\x38\x2c\x35\x31\x2e\x37\x30\x32\x43\x33\x34\ +\x38\x2e\x34\x30\x36\x2c\x39\x39\x2e\x37\x39\x38\x2c\x33\x30\x34\ +\x2e\x34\x30\x36\x2c\x38\x30\x2c\x32\x35\x36\x2c\x38\x30\x63\x2d\ +\x39\x36\x2e\x37\x39\x37\x2c\x30\x2d\x31\x37\x36\x2c\x37\x39\x2e\ +\x32\x30\x33\x2d\x31\x37\x36\x2c\x31\x37\x36\x73\x37\x38\x2e\x30\ +\x39\x34\x2c\x31\x37\x36\x2c\x31\x37\x36\x2c\x31\x37\x36\x0d\x0a\ +\x09\x09\x63\x38\x31\x2e\x30\x34\x35\x2c\x30\x2c\x31\x34\x38\x2e\ +\x32\x38\x37\x2d\x35\x34\x2e\x31\x33\x34\x2c\x31\x36\x39\x2e\x34\ +\x30\x31\x2d\x31\x32\x38\x48\x33\x37\x38\x2e\x38\x35\x43\x33\x36\ +\x30\x2e\x31\x30\x35\x2c\x33\x35\x33\x2e\x35\x36\x31\x2c\x33\x31\ +\x31\x2e\x37\x31\x32\x2c\x33\x38\x38\x2c\x32\x35\x36\x2c\x33\x38\ +\x38\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\x0d\x0a\ +\x00\x00\x02\x79\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ +\x22\x49\x63\x6f\x6e\x5f\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ +\x0d\x0a\x09\x09\x3c\x67\x3e\x0d\x0a\x09\x09\x09\x3c\x70\x6f\x6c\ +\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\x22\x31\x38\x36\ +\x2e\x33\x30\x31\x2c\x33\x33\x39\x2e\x38\x39\x33\x20\x39\x36\x2c\ +\x32\x34\x39\x2e\x34\x36\x31\x20\x36\x34\x2c\x32\x37\x39\x2e\x39\ +\x36\x38\x20\x31\x38\x36\x2e\x33\x30\x31\x2c\x34\x30\x32\x20\x34\ +\x34\x38\x2c\x31\x34\x30\x2e\x35\x30\x36\x20\x34\x31\x36\x2c\x31\ +\x31\x30\x20\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x09\x3c\x2f\x67\ +\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\ +\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x02\x7f\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ @@ -181,29 +840,16 @@ qt_resource_data = b"\ \x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ \x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ \x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ -\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x37\x2e\x35\ -\x2c\x33\x38\x36\x2e\x36\x4c\x33\x30\x36\x2e\x39\x2c\x32\x35\x36\ -\x6c\x31\x33\x30\x2e\x36\x2d\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\ -\x31\x2d\x31\x34\x2e\x31\x2c\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\ -\x2c\x30\x2d\x35\x30\x2e\x39\x63\x2d\x31\x34\x2e\x31\x2d\x31\x34\ -\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\x2d\x35\x30\x2e\ -\x39\x2c\x30\x4c\x32\x35\x36\x2c\x32\x30\x35\x2e\x31\x4c\x31\x32\ -\x35\x2e\x34\x2c\x37\x34\x2e\x35\x0d\x0a\x09\x63\x2d\x31\x34\x2e\ -\x31\x2d\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\ -\x2d\x35\x30\x2e\x39\x2c\x30\x63\x2d\x31\x34\x2e\x31\x2c\x31\x34\ -\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\x35\ -\x30\x2e\x39\x4c\x32\x30\x35\x2e\x31\x2c\x32\x35\x36\x4c\x37\x34\ -\x2e\x35\x2c\x33\x38\x36\x2e\x36\x63\x2d\x31\x34\x2e\x31\x2c\x31\ -\x34\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\ -\x35\x30\x2e\x39\x0d\x0a\x09\x63\x31\x34\x2e\x31\x2c\x31\x34\x2e\ -\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\x39\ -\x2c\x30\x4c\x32\x35\x36\x2c\x33\x30\x36\x2e\x39\x6c\x31\x33\x30\ -\x2e\x36\x2c\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\x31\x2c\x31\x34\ -\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\ -\x39\x2c\x30\x43\x34\x35\x31\x2e\x35\x2c\x34\x32\x33\x2e\x34\x2c\ -\x34\x35\x31\x2e\x35\x2c\x34\x30\x30\x2e\x36\x2c\x34\x33\x37\x2e\ -\x35\x2c\x33\x38\x36\x2e\x36\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\ -\x76\x67\x3e\x0d\x0a\ +\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\ +\x3d\x22\x32\x38\x38\x2c\x39\x36\x20\x33\x33\x37\x2e\x39\x2c\x31\ +\x34\x35\x2e\x39\x20\x32\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x32\ +\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x31\x34\x35\x2e\x39\x2c\x33\ +\x33\x37\x2e\x39\x20\x39\x36\x2c\x32\x38\x38\x20\x39\x36\x2c\x34\ +\x31\x36\x20\x32\x32\x34\x2c\x34\x31\x36\x20\x31\x37\x34\x2e\x31\ +\x2c\x33\x36\x36\x2e\x31\x20\x33\x35\x37\x2e\x34\x2c\x31\x38\x32\ +\x2e\x39\x20\x33\x36\x36\x2e\x31\x2c\x31\x37\x34\x2e\x31\x20\x0d\ +\x0a\x09\x34\x31\x36\x2c\x32\x32\x34\x20\x34\x31\x36\x2c\x39\x36\ +\x20\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ \x00\x00\x04\xca\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -283,103 +929,7 @@ qt_resource_data = b"\ \x36\x37\x2c\x37\x2e\x34\x37\x30\x34\x0a\x09\x48\x33\x2e\x33\x37\ \x33\x33\x4c\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x7a\x22\x2f\ \x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ -\x00\x00\x05\xd4\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ -\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ -\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ -\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ -\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ -\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ -\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ -\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ -\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ -\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ -\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ -\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ -\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ -\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ -\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ -\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ -\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\ -\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\ -\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\ -\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x34\x33\x2e\x39\x30\x33\ -\x32\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x34\x37\x2e\x33\x30\ -\x31\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x33\x30\x31\ -\x37\x43\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x34\x37\x2e\x33\ -\x30\x31\x37\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x34\x33\x2e\ -\x39\x30\x33\x32\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\ -\x2e\x37\x31\x30\x39\x43\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\ -\x33\x35\x2e\x35\x31\x38\x35\x20\x31\x39\x2e\x35\x34\x33\x31\x20\ -\x2d\x33\x32\x2e\x31\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x33\x32\ -\x2e\x31\x32\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x33\x32\ -\x2e\x31\x32\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x35\x2e\ -\x35\x31\x38\x35\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\ -\x2e\x37\x31\x30\x39\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\ -\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\ -\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\ -\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\ -\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\ -\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ -\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\ -\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\ -\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\ -\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\ -\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\ -\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\ -\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\ -\x68\x20\x64\x3d\x27\x4d\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\ -\x33\x39\x2e\x37\x31\x30\x39\x4c\x20\x39\x2e\x33\x34\x37\x34\x32\ -\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x39\x2e\x33\x34\x37\ -\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\x20\x39\x2e\x33\ -\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\x2e\ -\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\ -\x2e\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\ -\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x2e\x31\x35\x35\x31\ -\x31\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x31\x2e\x37\x35\x36\ -\x35\x36\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x2e\x37\x35\x36\x35\ -\x36\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x31\x2e\x37\x35\ -\x36\x35\x36\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x35\x2e\x31\ -\x35\x35\x31\x31\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x39\x2e\ -\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\ -\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\ -\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x27\x20\x66\x69\x6c\x6c\x3d\ -\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\ -\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ -\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\ -\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\ -\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ -\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\ -\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\ -\x27\x33\x2e\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\ -\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\ -\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\ -\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\ -\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\ -\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\x34\x2e\x38\x39\x32\ -\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\x20\x35\x34\x2e\x38\ -\x39\x32\x36\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\x34\x34\x2e\ -\x36\x39\x36\x39\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x33\x32\ -\x2e\x31\x32\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x43\x20\x31\x39\ -\x2e\x35\x34\x33\x31\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x39\ -\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\ -\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\ -\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\ -\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\ -\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\ -\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ -\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\ -\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\ -\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\ -\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\x35\x31\x33\x31\x32\x27\ -\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\ -\x76\x67\x3e\ -\x00\x00\x03\x4c\ +\x00\x00\x02\xfc\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ @@ -411,29 +961,362 @@ qt_resource_data = b"\ \x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ \x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ \x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x5f\x32\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\ +\x22\x49\x63\x6f\x6e\x5f\x32\x30\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\ \x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\ -\x35\x36\x2c\x31\x35\x32\x63\x2d\x35\x37\x2e\x32\x2c\x30\x2d\x31\ -\x30\x34\x2c\x34\x36\x2e\x38\x2d\x31\x30\x34\x2c\x31\x30\x34\x73\ -\x34\x36\x2e\x38\x2c\x31\x30\x34\x2c\x31\x30\x34\x2c\x31\x30\x34\ -\x73\x31\x30\x34\x2d\x34\x36\x2e\x38\x2c\x31\x30\x34\x2d\x31\x30\ -\x34\x53\x33\x31\x33\x2e\x32\x2c\x31\x35\x32\x2c\x32\x35\x36\x2c\ -\x31\x35\x32\x7a\x20\x4d\x32\x35\x36\x2c\x34\x38\x0d\x0a\x09\x09\ -\x09\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x34\x38\x2c\ -\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\x35\x36\x73\x39\ -\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\x38\x2c\x32\x30\ -\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\ -\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\x2c\x34\x38\x2c\ -\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\x2c\x34\x32\x32\ -\x2e\x34\x0d\x0a\x09\x09\x09\x63\x2d\x39\x31\x2e\x35\x31\x38\x2c\ -\x30\x2d\x31\x36\x36\x2e\x34\x2d\x37\x34\x2e\x38\x38\x33\x2d\x31\ -\x36\x36\x2e\x34\x2d\x31\x36\x36\x2e\x34\x53\x31\x36\x34\x2e\x34\ -\x38\x32\x2c\x38\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\ -\x53\x34\x32\x32\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\ -\x32\x32\x2e\x34\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\ -\x2c\x34\x32\x32\x2e\x34\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x34\ +\x35\x36\x2c\x34\x38\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\ +\x2c\x34\x38\x2c\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\ +\x35\x36\x73\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\ +\x38\x2c\x32\x30\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\ +\x2c\x32\x30\x38\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\ +\x2c\x34\x38\x2c\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\ +\x2c\x34\x32\x32\x2e\x33\x39\x39\x0d\x0a\x09\x09\x09\x63\x2d\x39\ +\x31\x2e\x35\x31\x38\x2c\x30\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\ +\x37\x34\x2e\x38\x38\x32\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\x31\ +\x36\x36\x2e\x33\x39\x39\x53\x31\x36\x34\x2e\x34\x38\x32\x2c\x38\ +\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\x53\x34\x32\x32\ +\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\x32\x32\x2e\x34\ +\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\x2c\x34\x32\x32\ +\x2e\x33\x39\x39\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x33\x39\x39\ \x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\ \x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x02\xa1\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x53\x61\x76\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ +\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ +\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ +\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ +\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\x22\x20\ +\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\ +\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\ +\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\ +\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\ +\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\ +\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\ +\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\ +\x35\x2e\x31\x37\x33\x2c\x32\x48\x34\x43\x32\x2e\x38\x39\x39\x2c\ +\x32\x2c\x32\x2c\x32\x2e\x39\x2c\x32\x2c\x34\x76\x31\x32\x63\x30\ +\x2c\x31\x2e\x31\x2c\x30\x2e\x38\x39\x39\x2c\x32\x2c\x32\x2c\x32\ +\x68\x31\x32\x63\x31\x2e\x31\x30\x31\x2c\x30\x2c\x32\x2d\x30\x2e\ +\x39\x2c\x32\x2d\x32\x56\x35\x2e\x31\x32\x37\x4c\x31\x35\x2e\x31\ +\x37\x33\x2c\x32\x7a\x20\x4d\x31\x34\x2c\x38\x63\x30\x2c\x30\x2e\ +\x35\x34\x39\x2d\x30\x2e\x34\x35\x2c\x31\x2d\x31\x2c\x31\x48\x37\ +\x0d\x0a\x09\x43\x36\x2e\x34\x35\x2c\x39\x2c\x36\x2c\x38\x2e\x35\ +\x34\x39\x2c\x36\x2c\x38\x56\x33\x68\x38\x56\x38\x7a\x20\x4d\x31\ +\x33\x2c\x34\x68\x2d\x32\x76\x34\x68\x32\x56\x34\x7a\x22\x2f\x3e\ +\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\ +\x00\x00\x03\x6c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ +\x0d\x0a\x09\x09\x3c\x72\x65\x63\x74\x20\x78\x3d\x22\x31\x37\x38\ +\x2e\x38\x34\x36\x22\x20\x79\x3d\x22\x39\x32\x2e\x30\x38\x37\x22\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\ +\x69\x78\x28\x2d\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\ +\x37\x31\x20\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\x37\ +\x31\x20\x32\x32\x34\x2e\x33\x34\x37\x36\x20\x36\x33\x31\x2e\x31\ +\x34\x39\x38\x29\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\ +\x2e\x30\x38\x35\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x35\ +\x34\x2e\x30\x34\x39\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x34\x37\x31\x2e\x37\x32\x33\x2c\x38\x38\x2e\ +\x33\x39\x33\x6c\x2d\x34\x38\x2e\x31\x31\x35\x2d\x34\x38\x2e\x31\ +\x31\x34\x63\x2d\x31\x31\x2e\x37\x32\x33\x2d\x31\x31\x2e\x37\x32\ +\x34\x2d\x33\x31\x2e\x35\x35\x38\x2d\x31\x30\x2e\x38\x39\x36\x2d\ +\x34\x34\x2e\x33\x30\x34\x2c\x31\x2e\x38\x35\x6c\x2d\x34\x35\x2e\ +\x32\x30\x32\x2c\x34\x35\x2e\x32\x30\x33\x6c\x39\x30\x2e\x35\x36\ +\x39\x2c\x39\x30\x2e\x35\x36\x38\x6c\x34\x35\x2e\x32\x30\x32\x2d\ +\x34\x35\x2e\x32\x30\x32\x0d\x0a\x09\x09\x43\x34\x38\x32\x2e\x36\ +\x31\x36\x2c\x31\x31\x39\x2e\x39\x35\x32\x2c\x34\x38\x33\x2e\x34\ +\x34\x35\x2c\x31\x30\x30\x2e\x31\x31\x36\x2c\x34\x37\x31\x2e\x37\ +\x32\x33\x2c\x38\x38\x2e\x33\x39\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\ +\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\ +\x22\x36\x34\x2e\x30\x32\x31\x2c\x33\x36\x33\x2e\x32\x35\x32\x20\ +\x33\x32\x2c\x34\x38\x30\x20\x31\x34\x38\x2e\x37\x33\x37\x2c\x34\ +\x34\x37\x2e\x39\x37\x39\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\ +\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x02\x7d\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ +\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ +\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\ +\x2c\x32\x37\x37\x2e\x33\x37\x35\x68\x32\x35\x39\x2e\x37\x30\x34\ +\x4c\x32\x32\x35\x2e\x30\x30\x32\x2c\x33\x39\x37\x2e\x30\x37\x37\ +\x4c\x32\x35\x36\x2c\x34\x32\x37\x6c\x31\x37\x31\x2d\x31\x37\x31\ +\x4c\x32\x35\x36\x2c\x38\x35\x6c\x2d\x32\x39\x2e\x39\x32\x32\x2c\ +\x32\x39\x2e\x39\x32\x34\x6c\x31\x31\x38\x2e\x36\x32\x36\x2c\x31\ +\x31\x39\x2e\x37\x30\x31\x48\x38\x35\x56\x32\x37\x37\x2e\x33\x37\ +\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ +\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x04\x64\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ +\x22\x49\x63\x6f\x6e\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\x09\ +\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x31\ +\x37\x36\x63\x2d\x34\x34\x2e\x30\x30\x34\x2c\x30\x2d\x38\x30\x2e\ +\x30\x30\x31\x2c\x33\x36\x2d\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\ +\x63\x30\x2c\x34\x34\x2e\x30\x30\x34\x2c\x33\x35\x2e\x39\x39\x37\ +\x2c\x38\x30\x2c\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\x63\x34\x34\ +\x2e\x30\x30\x35\x2c\x30\x2c\x37\x39\x2e\x39\x39\x39\x2d\x33\x35\ +\x2e\x39\x39\x36\x2c\x37\x39\x2e\x39\x39\x39\x2d\x38\x30\x0d\x0a\ +\x09\x09\x09\x43\x33\x33\x35\x2e\x39\x39\x39\x2c\x32\x31\x32\x2c\ +\x33\x30\x30\x2e\x30\x30\x35\x2c\x31\x37\x36\x2c\x32\x35\x36\x2c\ +\x31\x37\x36\x7a\x20\x4d\x34\x34\x36\x2e\x39\x33\x38\x2c\x32\x33\ +\x34\x2e\x36\x36\x37\x63\x2d\x39\x2e\x36\x30\x35\x2d\x38\x38\x2e\ +\x35\x33\x31\x2d\x38\x31\x2e\x30\x37\x34\x2d\x31\x36\x30\x2d\x31\ +\x36\x39\x2e\x36\x30\x35\x2d\x31\x36\x39\x2e\x35\x39\x39\x56\x33\ +\x32\x68\x2d\x34\x32\x2e\x36\x36\x36\x76\x33\x33\x2e\x30\x36\x37\ +\x0d\x0a\x09\x09\x09\x63\x2d\x38\x38\x2e\x35\x33\x31\x2c\x39\x2e\ +\x35\x39\x39\x2d\x31\x36\x30\x2c\x38\x31\x2e\x30\x36\x38\x2d\x31\ +\x36\x39\x2e\x36\x30\x34\x2c\x31\x36\x39\x2e\x35\x39\x39\x48\x33\ +\x32\x76\x34\x32\x2e\x36\x36\x37\x68\x33\x33\x2e\x30\x36\x32\x63\ +\x39\x2e\x36\x30\x34\x2c\x38\x38\x2e\x35\x33\x31\x2c\x38\x31\x2e\ +\x30\x37\x32\x2c\x31\x36\x30\x2c\x31\x36\x39\x2e\x36\x30\x34\x2c\ +\x31\x36\x39\x2e\x36\x30\x34\x56\x34\x38\x30\x68\x34\x32\x2e\x36\ +\x36\x36\x76\x2d\x33\x33\x2e\x30\x36\x32\x0d\x0a\x09\x09\x09\x63\ +\x38\x38\x2e\x35\x33\x31\x2d\x39\x2e\x36\x30\x34\x2c\x31\x36\x30\ +\x2d\x38\x31\x2e\x30\x37\x33\x2c\x31\x36\x39\x2e\x36\x30\x35\x2d\ +\x31\x36\x39\x2e\x36\x30\x34\x48\x34\x38\x30\x76\x2d\x34\x32\x2e\ +\x36\x36\x37\x48\x34\x34\x36\x2e\x39\x33\x38\x7a\x20\x4d\x32\x35\ +\x36\x2c\x34\x30\x35\x2e\x33\x33\x33\x63\x2d\x38\x32\x2e\x31\x33\ +\x37\x2c\x30\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x36\x37\x2e\x31\ +\x39\x38\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\ +\x33\x33\x0d\x0a\x09\x09\x09\x63\x30\x2d\x38\x32\x2e\x31\x33\x36\ +\x2c\x36\x37\x2e\x31\x39\x37\x2d\x31\x34\x39\x2e\x33\x33\x33\x2c\ +\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\x33\x33\x63\ +\x38\x32\x2e\x31\x33\x35\x2c\x30\x2c\x31\x34\x39\x2e\x33\x33\x32\ +\x2c\x36\x37\x2e\x31\x39\x38\x2c\x31\x34\x39\x2e\x33\x33\x32\x2c\ +\x31\x34\x39\x2e\x33\x33\x33\x43\x34\x30\x35\x2e\x33\x33\x32\x2c\ +\x33\x33\x38\x2e\x31\x33\x35\x2c\x33\x33\x38\x2e\x31\x33\x35\x2c\ +\x34\x30\x35\x2e\x33\x33\x33\x2c\x32\x35\x36\x2c\x34\x30\x35\x2e\ +\x33\x33\x33\x7a\x0d\x0a\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x3c\ +\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\ +\x3e\x0d\x0a\ +\x00\x00\x03\x52\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ +\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ +\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x48\ +\x32\x35\x36\x2e\x30\x30\x36\x6c\x2d\x34\x32\x2e\x36\x36\x38\x2d\ +\x34\x38\x48\x37\x34\x2e\x36\x36\x36\x43\x35\x31\x2e\x31\x39\x37\ +\x2c\x39\x36\x2c\x33\x32\x2c\x31\x31\x35\x2e\x31\x39\x38\x2c\x33\ +\x32\x2c\x31\x33\x38\x2e\x36\x36\x37\x76\x32\x33\x34\x2e\x36\x36\ +\x36\x43\x33\x32\x2c\x33\x39\x36\x2e\x38\x30\x32\x2c\x35\x31\x2e\ +\x31\x39\x37\x2c\x34\x31\x36\x2c\x37\x34\x2e\x36\x36\x36\x2c\x34\ +\x31\x36\x68\x33\x36\x32\x2e\x36\x36\x38\x0d\x0a\x09\x43\x34\x36\ +\x30\x2e\x38\x30\x33\x2c\x34\x31\x36\x2c\x34\x38\x30\x2c\x33\x39\ +\x36\x2e\x38\x30\x32\x2c\x34\x38\x30\x2c\x33\x37\x33\x2e\x33\x33\ +\x33\x56\x31\x38\x36\x2e\x36\x36\x37\x43\x34\x38\x30\x2c\x31\x36\ +\x33\x2e\x31\x39\x38\x2c\x34\x36\x30\x2e\x38\x30\x33\x2c\x31\x34\ +\x34\x2c\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x7a\x20\x4d\ +\x34\x34\x38\x2c\x33\x37\x33\x2e\x33\x33\x33\x0d\x0a\x09\x63\x30\ +\x2c\x35\x2e\x37\x38\x32\x2d\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\ +\x36\x36\x37\x2d\x31\x30\x2e\x36\x36\x36\x2c\x31\x30\x2e\x36\x36\ +\x37\x48\x37\x34\x2e\x36\x36\x36\x43\x36\x38\x2e\x38\x38\x34\x2c\ +\x33\x38\x34\x2c\x36\x34\x2c\x33\x37\x39\x2e\x31\x31\x35\x2c\x36\ +\x34\x2c\x33\x37\x33\x2e\x33\x33\x33\x56\x31\x37\x36\x68\x33\x37\ +\x33\x2e\x33\x33\x34\x63\x35\x2e\x37\x38\x31\x2c\x30\x2c\x31\x30\ +\x2e\x36\x36\x36\x2c\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\x36\x36\ +\x36\x2c\x31\x30\x2e\x36\x36\x37\x0d\x0a\x09\x56\x33\x37\x33\x2e\ +\x33\x33\x33\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\ +\x0a\ +\x00\x00\x03\xe6\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ +\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ +\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\ +\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ +\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ +\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ +\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ +\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ +\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ +\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ +\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ +\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ +\x3d\x22\x43\x68\x65\x76\x72\x6f\x6e\x5f\x63\x69\x72\x63\x6c\x65\ +\x64\x5f\x72\x69\x67\x68\x74\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ +\x78\x6c\x69\x6e\x6b\x22\x0d\x0a\x09\x20\x78\x3d\x22\x30\x70\x78\ +\x22\x20\x79\x3d\x22\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\ +\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\ +\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\ +\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\ +\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\ +\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\ +\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\ +\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x2c\x31\ +\x30\x4c\x38\x2e\x36\x39\x38\x2c\x37\x2e\x34\x39\x34\x63\x2d\x30\ +\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x38\x2d\x30\x2e\x31\x39\x36\ +\x2d\x30\x2e\x35\x31\x39\x2c\x30\x2d\x30\x2e\x37\x31\x38\x63\x30\ +\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x35\x31\x35\ +\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x37\x31\x2c\x30\x6c\x32\x2e\ +\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\x0a\x09\x63\x30\x2e\x31\ +\x39\x36\x2c\x30\x2e\x31\x39\x39\x2c\x30\x2e\x31\x39\x36\x2c\x30\ +\x2e\x35\x32\x2c\x30\x2c\x30\x2e\x37\x31\x37\x6c\x2d\x32\x2e\x38\ +\x30\x37\x2c\x32\x2e\x38\x36\x34\x63\x2d\x30\x2e\x31\x39\x35\x2c\ +\x30\x2e\x31\x39\x39\x2d\x30\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\ +\x38\x2d\x30\x2e\x37\x31\x2c\x30\x63\x2d\x30\x2e\x31\x39\x36\x2d\ +\x30\x2e\x31\x39\x37\x2d\x30\x2e\x31\x39\x36\x2d\x30\x2e\x35\x31\ +\x38\x2c\x30\x2d\x30\x2e\x37\x31\x37\x4c\x31\x31\x2c\x31\x30\x7a\ +\x20\x4d\x31\x30\x2c\x30\x2e\x34\x0d\x0a\x09\x63\x35\x2e\x33\x30\ +\x32\x2c\x30\x2c\x39\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2c\x39\x2e\ +\x36\x2c\x39\x2e\x36\x63\x30\x2c\x35\x2e\x33\x30\x33\x2d\x34\x2e\ +\x32\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x2c\x39\x2e\x36\x53\ +\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x33\x2c\x30\x2e\x34\x2c\x31\ +\x30\x43\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x34\x2e\x36\x39\ +\x38\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\ +\x30\x2c\x31\x38\x2e\x33\x35\x34\x0d\x0a\x09\x63\x34\x2e\x36\x31\ +\x33\x2c\x30\x2c\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2c\x38\ +\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\ +\x31\x34\x2d\x33\x2e\x37\x34\x31\x2d\x38\x2e\x33\x35\x34\x2d\x38\ +\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x2d\x34\x2e\x36\x31\ +\x35\x2c\x30\x2d\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2d\x38\ +\x2e\x33\x35\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x2e\ +\x36\x34\x35\x2c\x31\x34\x2e\x36\x31\x34\x2c\x35\x2e\x33\x38\x35\ +\x2c\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\ +\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\x0d\x0a\ \x00\x00\x07\x80\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -556,147 +1439,7 @@ qt_resource_data = b"\ \x38\x2e\x32\x37\x34\x2c\x33\x38\x32\x2e\x38\x32\x2c\x33\x30\x37\ \x2e\x38\x36\x37\x2c\x33\x38\x32\x2e\x38\x32\x7a\x22\x2f\x3e\x0d\ \x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x03\xc4\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4d\x61\x67\x6e\x69\x66\x79\x69\x6e\x67\x5f\x67\x6c\x61\ -\x73\x73\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ -\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\ -\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ -\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\ -\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x79\x3d\x22\ -\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ -\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\x6e\x61\x62\x6c\ -\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\ -\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x78\ -\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\ -\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ -\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x32\x34\x20\x30\x20\ -\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\x0d\x0a\x3c\x70\x61\ -\x74\x68\x20\x64\x3d\x22\x4d\x31\x37\x2e\x35\x34\x35\x2c\x31\x35\ -\x2e\x34\x36\x37\x6c\x2d\x33\x2e\x37\x37\x39\x2d\x33\x2e\x37\x37\ -\x39\x63\x30\x2e\x35\x37\x2d\x30\x2e\x39\x33\x35\x2c\x30\x2e\x38\ -\x39\x38\x2d\x32\x2e\x30\x33\x35\x2c\x30\x2e\x38\x39\x38\x2d\x33\ -\x2e\x32\x31\x63\x30\x2d\x33\x2e\x34\x31\x37\x2d\x32\x2e\x39\x36\ -\x31\x2d\x36\x2e\x33\x37\x37\x2d\x36\x2e\x33\x37\x38\x2d\x36\x2e\ -\x33\x37\x37\x0d\x0a\x09\x43\x34\x2e\x38\x36\x39\x2c\x32\x2e\x31\ -\x2c\x32\x2e\x31\x2c\x34\x2e\x38\x37\x2c\x32\x2e\x31\x2c\x38\x2e\ -\x32\x38\x37\x63\x30\x2c\x33\x2e\x34\x31\x36\x2c\x32\x2e\x39\x36\ -\x31\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\ -\x33\x37\x37\x63\x31\x2e\x31\x33\x37\x2c\x30\x2c\x32\x2e\x32\x2d\ -\x30\x2e\x33\x30\x39\x2c\x33\x2e\x31\x31\x35\x2d\x30\x2e\x38\x34\ -\x34\x6c\x33\x2e\x37\x39\x39\x2c\x33\x2e\x38\x30\x31\x0d\x0a\x09\ -\x63\x30\x2e\x33\x37\x32\x2c\x30\x2e\x33\x37\x31\x2c\x30\x2e\x39\ -\x37\x35\x2c\x30\x2e\x33\x37\x31\x2c\x31\x2e\x33\x34\x36\x2c\x30\ -\x6c\x30\x2e\x39\x34\x33\x2d\x30\x2e\x39\x34\x33\x43\x31\x38\x2e\ -\x30\x35\x31\x2c\x31\x36\x2e\x33\x30\x37\x2c\x31\x37\x2e\x39\x31\ -\x36\x2c\x31\x35\x2e\x38\x33\x38\x2c\x31\x37\x2e\x35\x34\x35\x2c\ -\x31\x35\x2e\x34\x36\x37\x7a\x20\x4d\x34\x2e\x30\x30\x34\x2c\x38\ -\x2e\x32\x38\x37\x0d\x0a\x09\x63\x30\x2d\x32\x2e\x33\x36\x36\x2c\ -\x31\x2e\x39\x31\x37\x2d\x34\x2e\x32\x38\x33\x2c\x34\x2e\x32\x38\ -\x32\x2d\x34\x2e\x32\x38\x33\x63\x32\x2e\x33\x36\x36\x2c\x30\x2c\ -\x34\x2e\x34\x37\x34\x2c\x32\x2e\x31\x30\x37\x2c\x34\x2e\x34\x37\ -\x34\x2c\x34\x2e\x34\x37\x34\x63\x30\x2c\x32\x2e\x33\x36\x35\x2d\ -\x31\x2e\x39\x31\x38\x2c\x34\x2e\x32\x38\x33\x2d\x34\x2e\x32\x38\ -\x33\x2c\x34\x2e\x32\x38\x33\x0d\x0a\x09\x43\x36\x2e\x31\x31\x31\ -\x2c\x31\x32\x2e\x37\x36\x2c\x34\x2e\x30\x30\x34\x2c\x31\x30\x2e\ -\x36\x35\x32\x2c\x34\x2e\x30\x30\x34\x2c\x38\x2e\x32\x38\x37\x7a\ -\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\ -\x3e\x0d\x0a\ -\x00\x00\x04\xaa\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x43\x6f\x64\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ -\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ -\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ -\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ -\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x32\x34\x70\x78\x22\x20\x79\ -\x3d\x22\x32\x34\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\ -\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\ -\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\ -\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\ -\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\ -\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\ -\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\ -\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\ -\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x2e\x37\x31\x39\ -\x2c\x31\x34\x2e\x37\x35\x63\x2d\x30\x2e\x32\x33\x36\x2c\x30\x2d\ -\x30\x2e\x34\x37\x34\x2d\x30\x2e\x30\x38\x33\x2d\x30\x2e\x36\x36\ -\x34\x2d\x30\x2e\x32\x35\x32\x4c\x2d\x30\x2e\x30\x30\x35\x2c\x31\ -\x30\x6c\x35\x2e\x33\x34\x31\x2d\x34\x2e\x37\x34\x38\x43\x35\x2e\ -\x37\x34\x38\x2c\x34\x2e\x38\x38\x37\x2c\x36\x2e\x33\x38\x2c\x34\ -\x2e\x39\x32\x32\x2c\x36\x2e\x37\x34\x37\x2c\x35\x2e\x33\x33\x35\ -\x0d\x0a\x09\x63\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\x2c\ -\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2d\x30\x2e\x30\x38\x33\ -\x2c\x31\x2e\x34\x31\x32\x4c\x33\x2e\x30\x30\x35\x2c\x31\x30\x6c\ -\x33\x2e\x33\x37\x38\x2c\x33\x2e\x30\x30\x32\x63\x30\x2e\x34\x31\ -\x33\x2c\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x35\x2c\x30\x2e\x39\ -\x39\x39\x2c\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\x31\x32\x0d\x0a\ -\x09\x43\x36\x2e\x32\x36\x39\x2c\x31\x34\x2e\x36\x33\x37\x2c\x35\ -\x2e\x39\x39\x34\x2c\x31\x34\x2e\x37\x35\x2c\x35\x2e\x37\x31\x39\ -\x2c\x31\x34\x2e\x37\x35\x7a\x20\x4d\x31\x34\x2e\x36\x36\x34\x2c\ -\x31\x34\x2e\x37\x34\x38\x4c\x32\x30\x2e\x30\x30\x35\x2c\x31\x30\ -\x6c\x2d\x35\x2e\x30\x36\x2d\x34\x2e\x34\x39\x38\x63\x2d\x30\x2e\ -\x34\x31\x33\x2d\x30\x2e\x33\x36\x37\x2d\x31\x2e\x30\x34\x35\x2d\ -\x30\x2e\x33\x33\x2d\x31\x2e\x34\x31\x31\x2c\x30\x2e\x30\x38\x33\ -\x0d\x0a\x09\x63\x2d\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\ -\x2d\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2c\x30\x2e\x30\x38\ -\x33\x2c\x31\x2e\x34\x31\x32\x4c\x31\x36\x2e\x39\x39\x35\x2c\x31\ -\x30\x6c\x2d\x33\x2e\x36\x35\x39\x2c\x33\x2e\x32\x35\x32\x63\x2d\ -\x30\x2e\x34\x31\x33\x2c\x30\x2e\x33\x36\x37\x2d\x30\x2e\x34\x35\ -\x2c\x30\x2e\x39\x39\x39\x2d\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\ -\x31\x32\x43\x31\x33\x2e\x34\x35\x2c\x31\x34\x2e\x38\x38\x37\x2c\ -\x31\x33\x2e\x37\x32\x35\x2c\x31\x35\x2c\x31\x34\x2c\x31\x35\x0d\ -\x0a\x09\x43\x31\x34\x2e\x32\x33\x36\x2c\x31\x35\x2c\x31\x34\x2e\ -\x34\x37\x34\x2c\x31\x34\x2e\x39\x31\x37\x2c\x31\x34\x2e\x36\x36\ -\x34\x2c\x31\x34\x2e\x37\x34\x38\x7a\x20\x4d\x39\x2e\x39\x38\x36\ -\x2c\x31\x36\x2e\x31\x36\x35\x6c\x32\x2d\x31\x32\x63\x30\x2e\x30\ -\x39\x31\x2d\x30\x2e\x35\x34\x35\x2d\x30\x2e\x32\x37\x37\x2d\x31\ -\x2e\x30\x36\x2d\x30\x2e\x38\x32\x32\x2d\x31\x2e\x31\x35\x31\x0d\ -\x0a\x09\x63\x2d\x30\x2e\x35\x34\x37\x2d\x30\x2e\x30\x39\x32\x2d\ -\x31\x2e\x30\x36\x31\x2c\x30\x2e\x32\x37\x37\x2d\x31\x2e\x31\x35\ -\x2c\x30\x2e\x38\x32\x32\x6c\x2d\x32\x2c\x31\x32\x63\x2d\x30\x2e\ -\x30\x39\x31\x2c\x30\x2e\x35\x34\x35\x2c\x30\x2e\x32\x37\x37\x2c\ -\x31\x2e\x30\x36\x2c\x30\x2e\x38\x32\x32\x2c\x31\x2e\x31\x35\x31\ -\x43\x38\x2e\x38\x39\x32\x2c\x31\x36\x2e\x39\x39\x36\x2c\x38\x2e\ -\x39\x34\x36\x2c\x31\x37\x2c\x39\x2e\x30\x30\x31\x2c\x31\x37\x0d\ -\x0a\x09\x43\x39\x2e\x34\x38\x31\x2c\x31\x37\x2c\x39\x2e\x39\x30\ -\x35\x2c\x31\x36\x2e\x36\x35\x33\x2c\x39\x2e\x39\x38\x36\x2c\x31\ -\x36\x2e\x31\x36\x35\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\ -\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x03\x26\ +\x00\x00\x03\xeb\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ @@ -723,32 +1466,44 @@ qt_resource_data = b"\ \x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ \x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ \x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ -\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x33\x38\ -\x38\x63\x2d\x37\x32\x2e\x35\x39\x37\x2c\x30\x2d\x31\x33\x32\x2d\ -\x35\x39\x2e\x34\x30\x35\x2d\x31\x33\x32\x2d\x31\x33\x32\x63\x30\ -\x2d\x37\x32\x2e\x36\x30\x31\x2c\x35\x39\x2e\x34\x30\x33\x2d\x31\ -\x33\x32\x2c\x31\x33\x32\x2d\x31\x33\x32\x63\x33\x36\x2e\x33\x2c\ -\x30\x2c\x36\x39\x2e\x32\x39\x39\x2c\x31\x35\x2e\x34\x2c\x39\x32\ -\x2e\x34\x30\x36\x2c\x33\x39\x2e\x36\x30\x31\x4c\x32\x37\x38\x2c\ -\x32\x33\x34\x68\x31\x35\x34\x56\x38\x30\x0d\x0a\x09\x09\x6c\x2d\ -\x35\x31\x2e\x36\x39\x38\x2c\x35\x31\x2e\x37\x30\x32\x43\x33\x34\ -\x38\x2e\x34\x30\x36\x2c\x39\x39\x2e\x37\x39\x38\x2c\x33\x30\x34\ -\x2e\x34\x30\x36\x2c\x38\x30\x2c\x32\x35\x36\x2c\x38\x30\x63\x2d\ -\x39\x36\x2e\x37\x39\x37\x2c\x30\x2d\x31\x37\x36\x2c\x37\x39\x2e\ -\x32\x30\x33\x2d\x31\x37\x36\x2c\x31\x37\x36\x73\x37\x38\x2e\x30\ -\x39\x34\x2c\x31\x37\x36\x2c\x31\x37\x36\x2c\x31\x37\x36\x0d\x0a\ -\x09\x09\x63\x38\x31\x2e\x30\x34\x35\x2c\x30\x2c\x31\x34\x38\x2e\ -\x32\x38\x37\x2d\x35\x34\x2e\x31\x33\x34\x2c\x31\x36\x39\x2e\x34\ -\x30\x31\x2d\x31\x32\x38\x48\x33\x37\x38\x2e\x38\x35\x43\x33\x36\ -\x30\x2e\x31\x30\x35\x2c\x33\x35\x33\x2e\x35\x36\x31\x2c\x33\x31\ -\x31\x2e\x37\x31\x32\x2c\x33\x38\x38\x2c\x32\x35\x36\x2c\x33\x38\ -\x38\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\ -\x76\x67\x3e\x0d\x0a\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ +\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ +\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ +\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ +\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x32\x35\x36\x2c\x31\x32\x38\x63\x2d\x38\x31\x2e\x39\x2c\x30\ +\x2d\x31\x34\x35\x2e\x37\x2c\x34\x38\x2e\x38\x2d\x32\x32\x34\x2c\ +\x31\x32\x38\x63\x36\x37\x2e\x34\x2c\x36\x37\x2e\x37\x2c\x31\x32\ +\x34\x2c\x31\x32\x38\x2c\x32\x32\x34\x2c\x31\x32\x38\x63\x39\x39\ +\x2e\x39\x2c\x30\x2c\x31\x37\x33\x2e\x34\x2d\x37\x36\x2e\x34\x2c\ +\x32\x32\x34\x2d\x31\x32\x36\x2e\x36\x0d\x0a\x09\x09\x43\x34\x32\ +\x38\x2e\x32\x2c\x31\x39\x38\x2e\x36\x2c\x33\x35\x34\x2e\x38\x2c\ +\x31\x32\x38\x2c\x32\x35\x36\x2c\x31\x32\x38\x7a\x20\x4d\x32\x35\ +\x36\x2c\x33\x34\x37\x2e\x33\x63\x2d\x34\x39\x2e\x34\x2c\x30\x2d\ +\x38\x39\x2e\x36\x2d\x34\x31\x2d\x38\x39\x2e\x36\x2d\x39\x31\x2e\ +\x33\x63\x30\x2d\x35\x30\x2e\x34\x2c\x34\x30\x2e\x32\x2d\x39\x31\ +\x2e\x33\x2c\x38\x39\x2e\x36\x2d\x39\x31\x2e\x33\x73\x38\x39\x2e\ +\x36\x2c\x34\x31\x2c\x38\x39\x2e\x36\x2c\x39\x31\x2e\x33\x0d\x0a\ +\x09\x09\x43\x33\x34\x35\x2e\x36\x2c\x33\x30\x36\x2e\x34\x2c\x33\ +\x30\x35\x2e\x34\x2c\x33\x34\x37\x2e\x33\x2c\x32\x35\x36\x2c\x33\ +\x34\x37\x2e\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\ +\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\ +\x32\x32\x34\x63\x30\x2d\x37\x2e\x39\x2c\x32\x2e\x39\x2d\x31\x35\ +\x2e\x31\x2c\x37\x2e\x36\x2d\x32\x30\x2e\x37\x63\x2d\x32\x2e\x35\ +\x2d\x30\x2e\x34\x2d\x35\x2d\x30\x2e\x36\x2d\x37\x2e\x36\x2d\x30\ +\x2e\x36\x63\x2d\x32\x38\x2e\x38\x2c\x30\x2d\x35\x32\x2e\x33\x2c\ +\x32\x33\x2e\x39\x2d\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x63\x30\ +\x2c\x32\x39\x2e\x34\x2c\x32\x33\x2e\x35\x2c\x35\x33\x2e\x33\x2c\ +\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x0d\x0a\x09\x09\x09\x73\x35\ +\x32\x2e\x33\x2d\x32\x33\x2e\x39\x2c\x35\x32\x2e\x33\x2d\x35\x33\ +\x2e\x33\x63\x30\x2d\x32\x2e\x33\x2d\x30\x2e\x32\x2d\x34\x2e\x36\ +\x2d\x30\x2e\x34\x2d\x36\x2e\x39\x63\x2d\x35\x2e\x35\x2c\x34\x2e\ +\x33\x2d\x31\x32\x2e\x33\x2c\x36\x2e\x39\x2d\x31\x39\x2e\x38\x2c\ +\x36\x2e\x39\x43\x32\x37\x30\x2e\x33\x2c\x32\x35\x36\x2c\x32\x35\ +\x36\x2c\x32\x34\x31\x2e\x37\x2c\x32\x35\x36\x2c\x32\x32\x34\x7a\ +\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\ +\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ \x00\x00\x02\xa2\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -794,182 +1549,26 @@ qt_resource_data = b"\ \x48\x39\x36\x76\x33\x32\x68\x33\x32\x30\x56\x39\x36\x7a\x22\x2f\ \x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\ \x0a\ -\x00\x00\x04\xd5\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ -\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ -\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ -\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ -\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ -\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ -\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ -\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ -\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ -\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ -\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ -\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ -\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ -\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ -\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ -\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ -\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ -\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ -\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x32\ -\x2e\x32\x38\x39\x32\x32\x20\x2d\x33\x39\x2e\x33\x31\x31\x33\x20\ -\x36\x2e\x33\x36\x37\x30\x32\x20\x2d\x34\x36\x2e\x32\x33\x38\x36\ -\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\ -\x39\x43\x20\x32\x39\x2e\x36\x36\x38\x37\x20\x2d\x36\x37\x2e\x35\ -\x35\x36\x38\x20\x35\x35\x2e\x32\x32\x39\x32\x20\x2d\x36\x30\x2e\ -\x36\x34\x32\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\ -\x35\x30\x32\x32\x43\x20\x35\x36\x2e\x36\x31\x33\x36\x20\x2d\x33\ -\x33\x2e\x34\x33\x38\x31\x20\x34\x39\x2e\x31\x31\x33\x32\x20\x2d\ -\x32\x36\x2e\x35\x39\x35\x39\x20\x34\x30\x2e\x36\x37\x39\x34\x20\ -\x2d\x32\x32\x2e\x35\x32\x38\x31\x43\x20\x32\x35\x2e\x33\x39\x39\ -\x35\x20\x2d\x31\x35\x2e\x31\x35\x38\x32\x20\x37\x2e\x31\x39\x39\ -\x33\x35\x20\x2d\x31\x38\x2e\x31\x34\x33\x36\x20\x33\x2e\x39\x35\ -\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\ -\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\ -\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\ -\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\ -\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\ -\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\ -\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\ -\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ -\x68\x3d\x27\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\ -\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ -\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\ -\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\ -\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\ -\x35\x37\x33\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\ -\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\ -\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\ -\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ -\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\ -\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\ -\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\ -\x39\x30\x33\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\ -\x33\x39\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\ -\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\ -\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\ -\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\ -\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\ -\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\ -\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\ -\x36\x2e\x31\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\ -\x35\x30\x32\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\ -\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\ -\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\ -\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\ -\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\ -\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\ -\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\ -\x27\x34\x30\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\ -\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\ -\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\ -\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\ -\x73\x76\x67\x3e\ -\x00\x00\x03\x36\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ -\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\ -\x22\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x39\x36\x2e\x38\x20\x33\ -\x32\x30\x2c\x33\x39\x36\x2e\x38\x20\x33\x32\x30\x2c\x34\x34\x38\ -\x20\x34\x34\x38\x2c\x34\x34\x38\x20\x34\x34\x38\x2c\x33\x32\x30\ -\x20\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x32\x30\x20\x09\x22\x2f\ -\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\ -\x6e\x74\x73\x3d\x22\x33\x39\x36\x2e\x38\x2c\x31\x31\x35\x2e\x32\ -\x30\x35\x20\x33\x39\x36\x2e\x38\x2c\x31\x39\x32\x20\x34\x34\x38\ -\x2c\x31\x39\x32\x20\x34\x34\x38\x2c\x36\x34\x20\x33\x32\x30\x2c\ -\x36\x34\x20\x33\x32\x30\x2c\x31\x31\x35\x2e\x32\x30\x35\x20\x09\ -\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\ -\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\ -\x31\x35\x2e\x32\x20\x31\x39\x32\x2c\x31\x31\x35\x2e\x32\x20\x31\ -\x39\x32\x2c\x36\x34\x20\x36\x34\x2c\x36\x34\x20\x36\x34\x2c\x31\ -\x39\x32\x20\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\x39\x32\x20\x09\ -\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\ -\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x2c\x33\x39\x36\ -\x2e\x37\x39\x35\x20\x31\x31\x35\x2e\x32\x2c\x33\x32\x30\x20\x36\ -\x34\x2c\x33\x32\x30\x20\x36\x34\x2c\x34\x34\x38\x20\x31\x39\x32\ -\x2c\x34\x34\x38\x20\x31\x39\x32\x2c\x33\x39\x36\x2e\x37\x39\x35\ -\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\ -\x76\x67\x3e\x0d\x0a\ -\x00\x00\x02\x7d\ +\x00\x00\x01\x1c\ \x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ -\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\ -\x37\x2c\x32\x33\x34\x2e\x36\x32\x35\x48\x31\x36\x37\x2e\x32\x39\ -\x36\x6c\x31\x31\x39\x2e\x37\x30\x32\x2d\x31\x31\x39\x2e\x37\x30\ -\x32\x4c\x32\x35\x36\x2c\x38\x35\x4c\x38\x35\x2c\x32\x35\x36\x6c\ -\x31\x37\x31\x2c\x31\x37\x31\x6c\x32\x39\x2e\x39\x32\x32\x2d\x32\ -\x39\x2e\x39\x32\x34\x4c\x31\x36\x37\x2e\x32\x39\x36\x2c\x32\x37\ -\x37\x2e\x33\x37\x35\x48\x34\x32\x37\x56\x32\x33\x34\x2e\x36\x32\ -\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ -\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\ +\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\ +\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x0a\ +\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ +\x74\x72\x69\x78\x28\x34\x38\x20\x30\x20\x30\x20\x34\x38\x20\x34\ +\x38\x20\x34\x38\x29\x27\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x30\x20\x30\x76\x32\x68\x2e\x35\x63\x30\x2d\x2e\ +\x35\x35\x2e\x34\x35\x2d\x31\x20\x31\x2d\x31\x68\x31\x2e\x35\x76\ +\x35\x2e\x35\x63\x30\x20\x2e\x32\x38\x2d\x2e\x32\x32\x2e\x35\x2d\ +\x2e\x35\x2e\x35\x68\x2d\x2e\x35\x76\x31\x68\x34\x76\x2d\x31\x68\ +\x2d\x2e\x35\x63\x2d\x2e\x32\x38\x20\x30\x2d\x2e\x35\x2d\x2e\x32\ +\x32\x2d\x2e\x35\x2d\x2e\x35\x76\x2d\x35\x2e\x35\x68\x31\x2e\x35\ +\x63\x2e\x35\x35\x20\x30\x20\x31\x20\x2e\x34\x35\x20\x31\x20\x31\ +\x68\x2e\x35\x76\x2d\x32\x68\x2d\x38\x7a\x22\x20\x2f\x3e\x0a\x3c\ +\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \x00\x00\x05\x27\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -1055,7 +1654,44 @@ qt_resource_data = b"\ \x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x7a\x22\x2f\x3e\x0d\ \x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ \x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x02\x7d\ +\x00\x00\x02\x21\ +\x00\ +\x00\x07\xaf\x78\x9c\xdd\x55\x4d\x6f\x9c\x30\x10\xbd\xf7\x57\x4c\ +\xd5\x83\xdb\x03\xc6\xdf\x86\x28\x24\x52\x57\xea\x29\xbd\x25\x97\ +\xde\x68\xf0\x82\x9b\x5d\x58\x01\x5d\xb6\xff\xbe\x66\xd7\x60\x4a\ +\xaa\xf4\x92\x43\x15\x90\x30\xf3\x18\xbf\x99\xe7\xf1\x98\xeb\xdb\ +\xd3\x7e\x07\x47\xd3\x76\xb6\xa9\x33\x44\x31\x41\x60\xea\xc7\xa6\ +\xb0\x75\x99\xa1\x87\xfb\x2f\x51\x82\x6e\x6f\xde\x5d\xbf\x8f\x22\ +\xb8\xaf\x6c\x07\x5b\xbb\x33\x30\xe4\x1d\x94\xa6\x36\x6d\xde\x9b\ +\x02\xbe\xff\x82\xe2\x68\xbb\x63\xb9\x07\x86\x13\x88\x22\xe7\xef\ +\xac\x25\x2b\x45\xe0\xe2\xd4\x5d\x86\xaa\xbe\x3f\x5c\xc5\xf1\x30\ +\x0c\x78\xe0\xb8\x69\xcb\x98\x11\x42\x62\xe7\xef\x5d\xae\x4e\x3b\ +\x5b\x3f\xfd\xcd\x91\xa6\x69\x1a\x9f\xbf\x22\x18\x6c\xd1\x57\x19\ +\x52\x1c\x3b\x50\x1d\x7a\x04\x95\xb1\x65\xd5\x4f\x90\x1e\xa1\xa3\ +\x35\xc3\xe7\xe6\x94\x21\xa9\xb0\x20\xa9\x00\xc9\x71\x22\x13\x0e\ +\x7e\x9a\x1f\x35\x72\x09\x97\x60\x8b\x0c\x1d\xf2\xd2\xd0\x8b\xd9\ +\xb7\x79\xdd\x6d\x9b\x76\x9f\xa1\x7d\xde\xb7\xf6\xf4\x91\x38\x67\ +\xc5\x94\x00\x32\xde\x93\x31\x71\x53\xaa\x47\xf2\x4f\xe3\xec\x43\ +\xde\x57\xe0\xe8\xbe\x42\x8a\xb9\xd0\x82\x41\xc4\x38\x26\x94\xde\ +\x05\xc0\xbf\x3c\x47\x36\xcf\x90\x7f\x03\x8b\x39\x12\x53\x29\x29\ +\x05\x9a\x62\x29\x38\x85\x88\x62\x2d\x95\x54\xc0\x19\xa6\x6c\x36\ +\x37\x20\x04\x56\xa9\x4a\x83\x83\x14\x38\x49\x99\x0a\x14\x33\x30\ +\xe7\xfa\x02\x32\x09\x9c\x01\xae\xb0\xd2\x42\x6e\x02\x22\x08\x4e\ +\x94\x4a\x42\x64\xf7\xc2\x94\x14\x53\x6a\xde\xdc\x84\xdc\x27\x87\ +\x59\xdd\x44\x31\x03\x3e\xca\xdd\x7a\xa5\xbf\xa1\x71\xab\xee\x32\ +\xf4\x41\x6f\xc7\x1b\xc5\xae\x2e\x71\xf9\x8a\xa5\x0d\x42\x53\xac\ +\x29\x49\x97\x42\xdd\xbe\x22\x9c\x2d\x84\x6a\xcc\x09\xd5\xb3\xd0\ +\x8b\xb9\x14\xea\x1d\x82\x50\x4f\x11\x84\x4e\x51\x02\x22\xb1\xa4\ +\x89\x0c\x24\x17\x76\x1f\xe3\x3c\x2c\xaa\x7c\x81\x43\xd2\x7e\xf2\ +\x5a\xc5\xbc\x6e\x75\x53\x1b\x04\x5d\xdf\x36\x4f\xc6\xad\x22\x39\ +\x5f\x13\x10\xb9\x2e\x34\x8f\xf9\x21\x43\x6d\xf3\xb3\x2e\xfe\x80\ +\x7f\x34\xb6\x5e\xe3\x7b\xdb\x9b\x76\x67\xdd\xe0\x4e\x03\x82\x09\ +\xd7\x72\xfe\xe6\x5b\x99\xbb\x7c\x38\x65\xaf\x5f\xa7\xf5\x0a\xbe\ +\xe1\x1e\xf4\x0a\xdf\x5c\x09\x5f\x68\x35\xc9\x30\x4b\xf4\xe2\x4c\ +\x51\x0c\x8b\x84\xcf\x67\x8a\x37\x17\xad\x36\x39\x84\x6a\x79\x8a\ +\xf5\x46\xf9\x6f\x96\xf1\xf2\x70\xbf\xc8\x9b\xdf\xf9\x80\xe2\xe1\ +\ +\x00\x00\x03\x36\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ @@ -1086,18 +1722,62 @@ qt_resource_data = b"\ \x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ \x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ \x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ -\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\ -\x2c\x32\x37\x37\x2e\x33\x37\x35\x68\x32\x35\x39\x2e\x37\x30\x34\ -\x4c\x32\x32\x35\x2e\x30\x30\x32\x2c\x33\x39\x37\x2e\x30\x37\x37\ -\x4c\x32\x35\x36\x2c\x34\x32\x37\x6c\x31\x37\x31\x2d\x31\x37\x31\ -\x4c\x32\x35\x36\x2c\x38\x35\x6c\x2d\x32\x39\x2e\x39\x32\x32\x2c\ -\x32\x39\x2e\x39\x32\x34\x6c\x31\x31\x38\x2e\x36\x32\x36\x2c\x31\ -\x31\x39\x2e\x37\x30\x31\x48\x38\x35\x56\x32\x37\x37\x2e\x33\x37\ -\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ -\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x03\x52\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ +\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\ +\x22\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x39\x36\x2e\x38\x20\x33\ +\x32\x30\x2c\x33\x39\x36\x2e\x38\x20\x33\x32\x30\x2c\x34\x34\x38\ +\x20\x34\x34\x38\x2c\x34\x34\x38\x20\x34\x34\x38\x2c\x33\x32\x30\ +\x20\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x32\x30\x20\x09\x22\x2f\ +\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\ +\x6e\x74\x73\x3d\x22\x33\x39\x36\x2e\x38\x2c\x31\x31\x35\x2e\x32\ +\x30\x35\x20\x33\x39\x36\x2e\x38\x2c\x31\x39\x32\x20\x34\x34\x38\ +\x2c\x31\x39\x32\x20\x34\x34\x38\x2c\x36\x34\x20\x33\x32\x30\x2c\ +\x36\x34\x20\x33\x32\x30\x2c\x31\x31\x35\x2e\x32\x30\x35\x20\x09\ +\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\ +\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\ +\x31\x35\x2e\x32\x20\x31\x39\x32\x2c\x31\x31\x35\x2e\x32\x20\x31\ +\x39\x32\x2c\x36\x34\x20\x36\x34\x2c\x36\x34\x20\x36\x34\x2c\x31\ +\x39\x32\x20\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\x39\x32\x20\x09\ +\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\ +\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x2c\x33\x39\x36\ +\x2e\x37\x39\x35\x20\x31\x31\x35\x2e\x32\x2c\x33\x32\x30\x20\x36\ +\x34\x2c\x33\x32\x30\x20\x36\x34\x2c\x34\x34\x38\x20\x31\x39\x32\ +\x2c\x34\x34\x38\x20\x31\x39\x32\x2c\x33\x39\x36\x2e\x37\x39\x35\ +\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\x0d\x0a\ +\x00\x00\x01\xdd\ +\x00\ +\x00\x06\xe4\x78\x9c\xcd\x54\x4d\x6f\x9b\x40\x10\x3d\x13\x29\xff\ +\x61\xba\xb7\x4a\xec\x17\xc4\xd4\xa6\xa6\x51\xfd\x21\xcb\x52\x9a\ +\x58\x6a\xea\xaa\xa7\x0a\xc3\x16\x50\x28\x20\x58\xc0\xce\xaf\xef\ +\xee\x92\x54\x51\x95\xfa\x18\xfb\xb0\x33\xda\x79\x6f\xde\xbc\x65\ +\x24\xa6\xd7\xfb\xdf\x39\x74\xa2\x6e\xb2\xb2\x08\x10\x27\x0c\x81\ +\x28\xa2\x32\xce\x8a\x24\x40\xad\xfc\x85\xc7\xe8\xfa\xd3\xe5\xc5\ +\xf4\x1d\xc6\xb0\x12\x85\xa8\x43\x59\xd6\x3e\x7c\x8e\xcb\x9d\x80\ +\x75\x9e\xb7\x8d\x34\x25\xe0\x1e\x71\x08\xb7\xe1\xeb\x76\x05\xcb\ +\x7d\x55\xd6\x12\x36\x79\x9b\xe0\x75\x01\xc4\x14\xb7\xc3\x10\x1f\ +\x3c\xc2\x18\xcc\xda\x2c\x8f\x81\xbd\x07\xc0\xd8\xe8\x2f\xee\xe6\ +\xf7\x3f\x36\x4b\x68\xba\x04\x36\xdf\x66\x37\xeb\x39\x20\x4c\xe9\ +\x77\x77\x4e\xe9\xe2\x7e\x61\x24\x38\xe1\x94\x2e\x6f\x11\xa0\x54\ +\xca\xca\xa7\xb4\xef\x7b\xd2\xbb\xa4\xac\x13\xba\xaa\xc3\x2a\xcd\ +\xa2\x86\x2a\x22\xd5\x44\xd5\x44\x95\x18\xe7\x24\x96\x31\xd2\x33\ +\xb4\xf4\x8b\xa7\x72\x04\x59\x1c\xa0\x9b\xf0\x20\xea\x9f\xea\xa2\ +\xbe\x44\xd1\x04\xaf\x48\x3b\x8c\x31\x2d\xf5\x44\xf1\xf7\x79\x56\ +\x3c\xbc\x46\xe4\x93\xc9\x84\x1a\x54\x51\x03\xc4\xaa\x3d\x82\xc3\ +\x90\x2f\x2f\x2c\xe8\xb3\x58\xa6\x01\x1a\x71\x47\x03\xa9\xc8\x92\ +\x54\xfe\xbd\x76\x99\xe8\x67\xa5\xee\x02\x06\xaa\xa6\x0f\x82\x46\ +\x1e\x72\x11\x20\x51\x84\xbb\x5c\xe0\x5d\x18\x3d\x24\x75\xd9\x16\ +\xb1\x5f\x88\x1e\x5e\x30\x3f\x1a\x6f\x7e\x53\x85\x91\xa2\x57\xb5\ +\x68\x44\xdd\x09\xf3\xea\x44\x05\x6b\x88\xd6\xb4\x0a\x65\x0a\xea\ +\xd1\x5f\xb8\xc7\x6c\x3e\x72\x89\x1b\x31\xdb\x25\x1f\xb0\x6b\x7b\ +\x2a\xaa\xa3\x73\x8a\x47\x8c\x8c\x22\xac\x00\x9b\xe9\x22\x76\xf1\ +\x13\xdc\x0d\x10\x33\x98\xfb\xdc\xa0\x73\x6a\x00\xd3\xa2\x4b\xb6\ +\x51\xd4\x67\x6b\xe6\x3c\xea\x4f\x60\x59\xf4\x1f\x1f\xce\x78\x7c\ +\x16\x3e\xae\xb8\x77\x3a\x1f\x53\xfa\xff\x25\x39\x63\xfe\x26\xa6\ +\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x71\x6c\x49\x57\x6c\ +\xf2\x26\xa6\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x31\x2c\ +\xe9\x39\xaa\x7f\xb6\xca\x7f\x00\x99\x18\x96\x19\ +\x00\x00\x02\xb7\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ @@ -1128,69 +1808,22 @@ qt_resource_data = b"\ \x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ \x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ \x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\ -\x64\x3d\x22\x4d\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x48\ -\x32\x35\x36\x2e\x30\x30\x36\x6c\x2d\x34\x32\x2e\x36\x36\x38\x2d\ -\x34\x38\x48\x37\x34\x2e\x36\x36\x36\x43\x35\x31\x2e\x31\x39\x37\ -\x2c\x39\x36\x2c\x33\x32\x2c\x31\x31\x35\x2e\x31\x39\x38\x2c\x33\ -\x32\x2c\x31\x33\x38\x2e\x36\x36\x37\x76\x32\x33\x34\x2e\x36\x36\ -\x36\x43\x33\x32\x2c\x33\x39\x36\x2e\x38\x30\x32\x2c\x35\x31\x2e\ -\x31\x39\x37\x2c\x34\x31\x36\x2c\x37\x34\x2e\x36\x36\x36\x2c\x34\ -\x31\x36\x68\x33\x36\x32\x2e\x36\x36\x38\x0d\x0a\x09\x43\x34\x36\ -\x30\x2e\x38\x30\x33\x2c\x34\x31\x36\x2c\x34\x38\x30\x2c\x33\x39\ -\x36\x2e\x38\x30\x32\x2c\x34\x38\x30\x2c\x33\x37\x33\x2e\x33\x33\ -\x33\x56\x31\x38\x36\x2e\x36\x36\x37\x43\x34\x38\x30\x2c\x31\x36\ -\x33\x2e\x31\x39\x38\x2c\x34\x36\x30\x2e\x38\x30\x33\x2c\x31\x34\ -\x34\x2c\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x7a\x20\x4d\ -\x34\x34\x38\x2c\x33\x37\x33\x2e\x33\x33\x33\x0d\x0a\x09\x63\x30\ -\x2c\x35\x2e\x37\x38\x32\x2d\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\ -\x36\x36\x37\x2d\x31\x30\x2e\x36\x36\x36\x2c\x31\x30\x2e\x36\x36\ -\x37\x48\x37\x34\x2e\x36\x36\x36\x43\x36\x38\x2e\x38\x38\x34\x2c\ -\x33\x38\x34\x2c\x36\x34\x2c\x33\x37\x39\x2e\x31\x31\x35\x2c\x36\ -\x34\x2c\x33\x37\x33\x2e\x33\x33\x33\x56\x31\x37\x36\x68\x33\x37\ -\x33\x2e\x33\x33\x34\x63\x35\x2e\x37\x38\x31\x2c\x30\x2c\x31\x30\ -\x2e\x36\x36\x36\x2c\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\x36\x36\ -\x36\x2c\x31\x30\x2e\x36\x36\x37\x0d\x0a\x09\x56\x33\x37\x33\x2e\ -\x33\x33\x33\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\ -\x0a\ -\x00\x00\x02\x21\ -\x00\ -\x00\x07\xaf\x78\x9c\xdd\x55\x4d\x6f\x9c\x30\x10\xbd\xf7\x57\x4c\ -\xd5\x83\xdb\x03\xc6\xdf\x86\x28\x24\x52\x57\xea\x29\xbd\x25\x97\ -\xde\x68\xf0\x82\x9b\x5d\x58\x01\x5d\xb6\xff\xbe\x66\xd7\x60\x4a\ -\xaa\xf4\x92\x43\x15\x90\x30\xf3\x18\xbf\x99\xe7\xf1\x98\xeb\xdb\ -\xd3\x7e\x07\x47\xd3\x76\xb6\xa9\x33\x44\x31\x41\x60\xea\xc7\xa6\ -\xb0\x75\x99\xa1\x87\xfb\x2f\x51\x82\x6e\x6f\xde\x5d\xbf\x8f\x22\ -\xb8\xaf\x6c\x07\x5b\xbb\x33\x30\xe4\x1d\x94\xa6\x36\x6d\xde\x9b\ -\x02\xbe\xff\x82\xe2\x68\xbb\x63\xb9\x07\x86\x13\x88\x22\xe7\xef\ -\xac\x25\x2b\x45\xe0\xe2\xd4\x5d\x86\xaa\xbe\x3f\x5c\xc5\xf1\x30\ -\x0c\x78\xe0\xb8\x69\xcb\x98\x11\x42\x62\xe7\xef\x5d\xae\x4e\x3b\ -\x5b\x3f\xfd\xcd\x91\xa6\x69\x1a\x9f\xbf\x22\x18\x6c\xd1\x57\x19\ -\x52\x1c\x3b\x50\x1d\x7a\x04\x95\xb1\x65\xd5\x4f\x90\x1e\xa1\xa3\ -\x35\xc3\xe7\xe6\x94\x21\xa9\xb0\x20\xa9\x00\xc9\x71\x22\x13\x0e\ -\x7e\x9a\x1f\x35\x72\x09\x97\x60\x8b\x0c\x1d\xf2\xd2\xd0\x8b\xd9\ -\xb7\x79\xdd\x6d\x9b\x76\x9f\xa1\x7d\xde\xb7\xf6\xf4\x91\x38\x67\ -\xc5\x94\x00\x32\xde\x93\x31\x71\x53\xaa\x47\xf2\x4f\xe3\xec\x43\ -\xde\x57\xe0\xe8\xbe\x42\x8a\xb9\xd0\x82\x41\xc4\x38\x26\x94\xde\ -\x05\xc0\xbf\x3c\x47\x36\xcf\x90\x7f\x03\x8b\x39\x12\x53\x29\x29\ -\x05\x9a\x62\x29\x38\x85\x88\x62\x2d\x95\x54\xc0\x19\xa6\x6c\x36\ -\x37\x20\x04\x56\xa9\x4a\x83\x83\x14\x38\x49\x99\x0a\x14\x33\x30\ -\xe7\xfa\x02\x32\x09\x9c\x01\xae\xb0\xd2\x42\x6e\x02\x22\x08\x4e\ -\x94\x4a\x42\x64\xf7\xc2\x94\x14\x53\x6a\xde\xdc\x84\xdc\x27\x87\ -\x59\xdd\x44\x31\x03\x3e\xca\xdd\x7a\xa5\xbf\xa1\x71\xab\xee\x32\ -\xf4\x41\x6f\xc7\x1b\xc5\xae\x2e\x71\xf9\x8a\xa5\x0d\x42\x53\xac\ -\x29\x49\x97\x42\xdd\xbe\x22\x9c\x2d\x84\x6a\xcc\x09\xd5\xb3\xd0\ -\x8b\xb9\x14\xea\x1d\x82\x50\x4f\x11\x84\x4e\x51\x02\x22\xb1\xa4\ -\x89\x0c\x24\x17\x76\x1f\xe3\x3c\x2c\xaa\x7c\x81\x43\xd2\x7e\xf2\ -\x5a\xc5\xbc\x6e\x75\x53\x1b\x04\x5d\xdf\x36\x4f\xc6\xad\x22\x39\ -\x5f\x13\x10\xb9\x2e\x34\x8f\xf9\x21\x43\x6d\xf3\xb3\x2e\xfe\x80\ -\x7f\x34\xb6\x5e\xe3\x7b\xdb\x9b\x76\x67\xdd\xe0\x4e\x03\x82\x09\ -\xd7\x72\xfe\xe6\x5b\x99\xbb\x7c\x38\x65\xaf\x5f\xa7\xf5\x0a\xbe\ -\xe1\x1e\xf4\x0a\xdf\x5c\x09\x5f\x68\x35\xc9\x30\x4b\xf4\xe2\x4c\ -\x51\x0c\x8b\x84\xcf\x67\x8a\x37\x17\xad\x36\x39\x84\x6a\x79\x8a\ -\xf5\x46\xf9\x6f\x96\xf1\xf2\x70\xbf\xc8\x9b\xdf\xf9\x80\xe2\xe1\ -\ -\x00\x00\x04\x3d\ +\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ +\x22\x49\x63\x6f\x6e\x5f\x35\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ +\x0d\x0a\x09\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\ +\x6e\x74\x73\x3d\x22\x34\x30\x35\x2c\x31\x33\x36\x2e\x37\x39\x38\ +\x20\x33\x37\x35\x2e\x32\x30\x32\x2c\x31\x30\x37\x20\x32\x35\x36\ +\x2c\x32\x32\x36\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\ +\x2c\x31\x30\x37\x20\x31\x30\x37\x2c\x31\x33\x36\x2e\x37\x39\x38\ +\x20\x32\x32\x36\x2e\x32\x30\x32\x2c\x32\x35\x36\x20\x31\x30\x37\ +\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\ +\x2c\x34\x30\x35\x20\x32\x35\x36\x2c\x32\x38\x35\x2e\x37\x39\x38\ +\x20\x0d\x0a\x09\x09\x09\x33\x37\x35\x2e\x32\x30\x32\x2c\x34\x30\ +\x35\x20\x34\x30\x35\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x32\x38\ +\x35\x2e\x37\x39\x38\x2c\x32\x35\x36\x20\x09\x09\x22\x2f\x3e\x0d\ +\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ +\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x04\xd5\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ \x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ @@ -1214,59 +1847,69 @@ qt_resource_data = b"\ \x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ \x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ \x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ -\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\ -\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\ -\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\ -\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\ -\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\ -\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\ -\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\ +\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x32\ +\x2e\x32\x38\x39\x32\x32\x20\x2d\x33\x39\x2e\x33\x31\x31\x33\x20\ +\x36\x2e\x33\x36\x37\x30\x32\x20\x2d\x34\x36\x2e\x32\x33\x38\x36\ +\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\ +\x39\x43\x20\x32\x39\x2e\x36\x36\x38\x37\x20\x2d\x36\x37\x2e\x35\ +\x35\x36\x38\x20\x35\x35\x2e\x32\x32\x39\x32\x20\x2d\x36\x30\x2e\ +\x36\x34\x32\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\ +\x35\x30\x32\x32\x43\x20\x35\x36\x2e\x36\x31\x33\x36\x20\x2d\x33\ +\x33\x2e\x34\x33\x38\x31\x20\x34\x39\x2e\x31\x31\x33\x32\x20\x2d\ +\x32\x36\x2e\x35\x39\x35\x39\x20\x34\x30\x2e\x36\x37\x39\x34\x20\ +\x2d\x32\x32\x2e\x35\x32\x38\x31\x43\x20\x32\x35\x2e\x33\x39\x39\ +\x35\x20\x2d\x31\x35\x2e\x31\x35\x38\x32\x20\x37\x2e\x31\x39\x39\ +\x33\x35\x20\x2d\x31\x38\x2e\x31\x34\x33\x36\x20\x33\x2e\x39\x35\ +\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\ +\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\ +\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\ +\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\ \x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\ -\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\ -\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ -\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\ -\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\x39\ -\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\ -\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\ -\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\ -\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\ -\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\ -\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\x79\ -\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\ -\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\ -\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\ -\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\ -\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\ -\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\ -\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\ -\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\x79\ -\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\x6c\ -\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\ -\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\ -\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\ -\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\ -\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\ -\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\ -\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\x20\ -\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\x69\ -\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\ -\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\ -\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\ -\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\ -\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\ -\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\ -\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\x34\ -\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\ -\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\ -\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\ -\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ -\x00\x00\x02\xc9\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\ +\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3d\x27\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\ +\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ +\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\ +\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\ +\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\ +\x35\x37\x33\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\ +\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\ +\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\ +\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ +\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\ +\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\ +\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\ +\x39\x30\x33\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\ +\x33\x39\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\ +\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\ +\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\ +\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\ +\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\ +\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\ +\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\ +\x36\x2e\x31\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\ +\x35\x30\x32\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\ +\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\ +\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\ +\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\ +\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\ +\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\ +\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\ +\x27\x34\x30\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\ +\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\ +\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\ +\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\ +\x73\x76\x67\x3e\ +\x00\x00\x03\xc4\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ \x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ \x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\ \x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ \x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ \x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ @@ -1278,42 +1921,58 @@ qt_resource_data = b"\ \x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ \x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ \x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\ -\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ -\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ -\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ -\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ -\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\ -\x3d\x22\x34\x38\x30\x2c\x32\x35\x36\x20\x33\x38\x34\x2c\x31\x36\ -\x30\x20\x33\x38\x34\x2c\x32\x33\x36\x20\x32\x37\x36\x2c\x32\x33\ -\x36\x20\x32\x37\x36\x2c\x31\x32\x38\x20\x33\x35\x32\x2c\x31\x32\ -\x38\x20\x32\x35\x36\x2c\x33\x32\x20\x31\x36\x30\x2c\x31\x32\x38\ -\x20\x32\x33\x36\x2c\x31\x32\x38\x20\x32\x33\x36\x2c\x32\x33\x36\ -\x20\x31\x32\x38\x2c\x32\x33\x36\x20\x31\x32\x38\x2c\x31\x36\x30\ -\x20\x33\x32\x2c\x32\x35\x36\x20\x31\x32\x38\x2c\x33\x35\x32\x20\ -\x0d\x0a\x09\x31\x32\x38\x2c\x32\x37\x36\x20\x32\x33\x36\x2c\x32\ -\x37\x36\x20\x32\x33\x36\x2c\x33\x38\x34\x20\x31\x36\x30\x2c\x33\ -\x38\x34\x20\x32\x35\x36\x2c\x34\x38\x30\x20\x33\x35\x32\x2c\x33\ -\x38\x34\x20\x32\x37\x35\x2e\x38\x2c\x33\x38\x34\x20\x32\x37\x35\ -\x2e\x34\x2c\x32\x37\x35\x2e\x35\x20\x33\x38\x34\x2c\x32\x37\x35\ -\x2e\x38\x20\x33\x38\x34\x2c\x33\x35\x32\x20\x22\x2f\x3e\x0d\x0a\ -\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x02\xfc\ +\x3d\x22\x4d\x61\x67\x6e\x69\x66\x79\x69\x6e\x67\x5f\x67\x6c\x61\ +\x73\x73\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\ +\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\ +\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x79\x3d\x22\ +\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\x6e\x61\x62\x6c\ +\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\ +\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x78\ +\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\ +\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x32\x34\x20\x30\x20\ +\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\x0d\x0a\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x31\x37\x2e\x35\x34\x35\x2c\x31\x35\ +\x2e\x34\x36\x37\x6c\x2d\x33\x2e\x37\x37\x39\x2d\x33\x2e\x37\x37\ +\x39\x63\x30\x2e\x35\x37\x2d\x30\x2e\x39\x33\x35\x2c\x30\x2e\x38\ +\x39\x38\x2d\x32\x2e\x30\x33\x35\x2c\x30\x2e\x38\x39\x38\x2d\x33\ +\x2e\x32\x31\x63\x30\x2d\x33\x2e\x34\x31\x37\x2d\x32\x2e\x39\x36\ +\x31\x2d\x36\x2e\x33\x37\x37\x2d\x36\x2e\x33\x37\x38\x2d\x36\x2e\ +\x33\x37\x37\x0d\x0a\x09\x43\x34\x2e\x38\x36\x39\x2c\x32\x2e\x31\ +\x2c\x32\x2e\x31\x2c\x34\x2e\x38\x37\x2c\x32\x2e\x31\x2c\x38\x2e\ +\x32\x38\x37\x63\x30\x2c\x33\x2e\x34\x31\x36\x2c\x32\x2e\x39\x36\ +\x31\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\x33\x37\x37\x2c\x36\x2e\ +\x33\x37\x37\x63\x31\x2e\x31\x33\x37\x2c\x30\x2c\x32\x2e\x32\x2d\ +\x30\x2e\x33\x30\x39\x2c\x33\x2e\x31\x31\x35\x2d\x30\x2e\x38\x34\ +\x34\x6c\x33\x2e\x37\x39\x39\x2c\x33\x2e\x38\x30\x31\x0d\x0a\x09\ +\x63\x30\x2e\x33\x37\x32\x2c\x30\x2e\x33\x37\x31\x2c\x30\x2e\x39\ +\x37\x35\x2c\x30\x2e\x33\x37\x31\x2c\x31\x2e\x33\x34\x36\x2c\x30\ +\x6c\x30\x2e\x39\x34\x33\x2d\x30\x2e\x39\x34\x33\x43\x31\x38\x2e\ +\x30\x35\x31\x2c\x31\x36\x2e\x33\x30\x37\x2c\x31\x37\x2e\x39\x31\ +\x36\x2c\x31\x35\x2e\x38\x33\x38\x2c\x31\x37\x2e\x35\x34\x35\x2c\ +\x31\x35\x2e\x34\x36\x37\x7a\x20\x4d\x34\x2e\x30\x30\x34\x2c\x38\ +\x2e\x32\x38\x37\x0d\x0a\x09\x63\x30\x2d\x32\x2e\x33\x36\x36\x2c\ +\x31\x2e\x39\x31\x37\x2d\x34\x2e\x32\x38\x33\x2c\x34\x2e\x32\x38\ +\x32\x2d\x34\x2e\x32\x38\x33\x63\x32\x2e\x33\x36\x36\x2c\x30\x2c\ +\x34\x2e\x34\x37\x34\x2c\x32\x2e\x31\x30\x37\x2c\x34\x2e\x34\x37\ +\x34\x2c\x34\x2e\x34\x37\x34\x63\x30\x2c\x32\x2e\x33\x36\x35\x2d\ +\x31\x2e\x39\x31\x38\x2c\x34\x2e\x32\x38\x33\x2d\x34\x2e\x32\x38\ +\x33\x2c\x34\x2e\x32\x38\x33\x0d\x0a\x09\x43\x36\x2e\x31\x31\x31\ +\x2c\x31\x32\x2e\x37\x36\x2c\x34\x2e\x30\x30\x34\x2c\x31\x30\x2e\ +\x36\x35\x32\x2c\x34\x2e\x30\x30\x34\x2c\x38\x2e\x32\x38\x37\x7a\ +\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\ +\x3e\x0d\x0a\ +\x00\x00\x04\xaa\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ \x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ \x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ +\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\ \x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ \x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ \x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ @@ -1325,39 +1984,162 @@ qt_resource_data = b"\ \x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ \x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ \x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x5f\x32\x30\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\ -\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\ -\x35\x36\x2c\x34\x38\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\ -\x2c\x34\x38\x2c\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\ -\x35\x36\x73\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\ -\x38\x2c\x32\x30\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\ -\x2c\x32\x30\x38\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\ -\x2c\x34\x38\x2c\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\ -\x2c\x34\x32\x32\x2e\x33\x39\x39\x0d\x0a\x09\x09\x09\x63\x2d\x39\ -\x31\x2e\x35\x31\x38\x2c\x30\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\ -\x37\x34\x2e\x38\x38\x32\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\x31\ -\x36\x36\x2e\x33\x39\x39\x53\x31\x36\x34\x2e\x34\x38\x32\x2c\x38\ -\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\x53\x34\x32\x32\ -\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\x32\x32\x2e\x34\ -\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\x2c\x34\x32\x32\ -\x2e\x33\x39\x39\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x33\x39\x39\ -\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\ -\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x03\x6c\ +\x3d\x22\x43\x6f\x64\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ +\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ +\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ +\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ +\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x32\x34\x70\x78\x22\x20\x79\ +\x3d\x22\x32\x34\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\ +\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\ +\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\ +\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\ +\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\ +\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\ +\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x2e\x37\x31\x39\ +\x2c\x31\x34\x2e\x37\x35\x63\x2d\x30\x2e\x32\x33\x36\x2c\x30\x2d\ +\x30\x2e\x34\x37\x34\x2d\x30\x2e\x30\x38\x33\x2d\x30\x2e\x36\x36\ +\x34\x2d\x30\x2e\x32\x35\x32\x4c\x2d\x30\x2e\x30\x30\x35\x2c\x31\ +\x30\x6c\x35\x2e\x33\x34\x31\x2d\x34\x2e\x37\x34\x38\x43\x35\x2e\ +\x37\x34\x38\x2c\x34\x2e\x38\x38\x37\x2c\x36\x2e\x33\x38\x2c\x34\ +\x2e\x39\x32\x32\x2c\x36\x2e\x37\x34\x37\x2c\x35\x2e\x33\x33\x35\ +\x0d\x0a\x09\x63\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\x2c\ +\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2d\x30\x2e\x30\x38\x33\ +\x2c\x31\x2e\x34\x31\x32\x4c\x33\x2e\x30\x30\x35\x2c\x31\x30\x6c\ +\x33\x2e\x33\x37\x38\x2c\x33\x2e\x30\x30\x32\x63\x30\x2e\x34\x31\ +\x33\x2c\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x35\x2c\x30\x2e\x39\ +\x39\x39\x2c\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\x31\x32\x0d\x0a\ +\x09\x43\x36\x2e\x32\x36\x39\x2c\x31\x34\x2e\x36\x33\x37\x2c\x35\ +\x2e\x39\x39\x34\x2c\x31\x34\x2e\x37\x35\x2c\x35\x2e\x37\x31\x39\ +\x2c\x31\x34\x2e\x37\x35\x7a\x20\x4d\x31\x34\x2e\x36\x36\x34\x2c\ +\x31\x34\x2e\x37\x34\x38\x4c\x32\x30\x2e\x30\x30\x35\x2c\x31\x30\ +\x6c\x2d\x35\x2e\x30\x36\x2d\x34\x2e\x34\x39\x38\x63\x2d\x30\x2e\ +\x34\x31\x33\x2d\x30\x2e\x33\x36\x37\x2d\x31\x2e\x30\x34\x35\x2d\ +\x30\x2e\x33\x33\x2d\x31\x2e\x34\x31\x31\x2c\x30\x2e\x30\x38\x33\ +\x0d\x0a\x09\x63\x2d\x30\x2e\x33\x36\x37\x2c\x30\x2e\x34\x31\x33\ +\x2d\x30\x2e\x33\x33\x2c\x31\x2e\x30\x34\x35\x2c\x30\x2e\x30\x38\ +\x33\x2c\x31\x2e\x34\x31\x32\x4c\x31\x36\x2e\x39\x39\x35\x2c\x31\ +\x30\x6c\x2d\x33\x2e\x36\x35\x39\x2c\x33\x2e\x32\x35\x32\x63\x2d\ +\x30\x2e\x34\x31\x33\x2c\x30\x2e\x33\x36\x37\x2d\x30\x2e\x34\x35\ +\x2c\x30\x2e\x39\x39\x39\x2d\x30\x2e\x30\x38\x33\x2c\x31\x2e\x34\ +\x31\x32\x43\x31\x33\x2e\x34\x35\x2c\x31\x34\x2e\x38\x38\x37\x2c\ +\x31\x33\x2e\x37\x32\x35\x2c\x31\x35\x2c\x31\x34\x2c\x31\x35\x0d\ +\x0a\x09\x43\x31\x34\x2e\x32\x33\x36\x2c\x31\x35\x2c\x31\x34\x2e\ +\x34\x37\x34\x2c\x31\x34\x2e\x39\x31\x37\x2c\x31\x34\x2e\x36\x36\ +\x34\x2c\x31\x34\x2e\x37\x34\x38\x7a\x20\x4d\x39\x2e\x39\x38\x36\ +\x2c\x31\x36\x2e\x31\x36\x35\x6c\x32\x2d\x31\x32\x63\x30\x2e\x30\ +\x39\x31\x2d\x30\x2e\x35\x34\x35\x2d\x30\x2e\x32\x37\x37\x2d\x31\ +\x2e\x30\x36\x2d\x30\x2e\x38\x32\x32\x2d\x31\x2e\x31\x35\x31\x0d\ +\x0a\x09\x63\x2d\x30\x2e\x35\x34\x37\x2d\x30\x2e\x30\x39\x32\x2d\ +\x31\x2e\x30\x36\x31\x2c\x30\x2e\x32\x37\x37\x2d\x31\x2e\x31\x35\ +\x2c\x30\x2e\x38\x32\x32\x6c\x2d\x32\x2c\x31\x32\x63\x2d\x30\x2e\ +\x30\x39\x31\x2c\x30\x2e\x35\x34\x35\x2c\x30\x2e\x32\x37\x37\x2c\ +\x31\x2e\x30\x36\x2c\x30\x2e\x38\x32\x32\x2c\x31\x2e\x31\x35\x31\ +\x43\x38\x2e\x38\x39\x32\x2c\x31\x36\x2e\x39\x39\x36\x2c\x38\x2e\ +\x39\x34\x36\x2c\x31\x37\x2c\x39\x2e\x30\x30\x31\x2c\x31\x37\x0d\ +\x0a\x09\x43\x39\x2e\x34\x38\x31\x2c\x31\x37\x2c\x39\x2e\x39\x30\ +\x35\x2c\x31\x36\x2e\x36\x35\x33\x2c\x39\x2e\x39\x38\x36\x2c\x31\ +\x36\x2e\x31\x36\x35\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\ +\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ +\x00\x00\x05\xd4\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ +\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ +\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ +\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ +\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ +\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ +\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ +\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ +\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ +\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ +\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ +\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ +\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ +\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ +\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ +\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ +\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\ +\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\ +\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\ +\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x34\x33\x2e\x39\x30\x33\ +\x32\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x34\x37\x2e\x33\x30\ +\x31\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x33\x30\x31\ +\x37\x43\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x34\x37\x2e\x33\ +\x30\x31\x37\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x34\x33\x2e\ +\x39\x30\x33\x32\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\ +\x2e\x37\x31\x30\x39\x43\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\ +\x33\x35\x2e\x35\x31\x38\x35\x20\x31\x39\x2e\x35\x34\x33\x31\x20\ +\x2d\x33\x32\x2e\x31\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x33\x32\ +\x2e\x31\x32\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x33\x32\ +\x2e\x31\x32\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x35\x2e\ +\x35\x31\x38\x35\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x33\x39\ +\x2e\x37\x31\x30\x39\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\ +\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\ +\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\ +\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\ +\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\ +\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\ +\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\ +\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\ +\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x27\x4d\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\ +\x33\x39\x2e\x37\x31\x30\x39\x4c\x20\x39\x2e\x33\x34\x37\x34\x32\ +\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x39\x2e\x33\x34\x37\ +\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\x20\x39\x2e\x33\ +\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\x2e\ +\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x20\x39\ +\x2e\x33\x34\x37\x34\x32\x20\x2d\x39\x2e\x33\x34\x37\x34\x32\x43\ +\x20\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x2e\x31\x35\x35\x31\ +\x31\x20\x31\x39\x2e\x35\x34\x33\x31\x20\x2d\x31\x2e\x37\x35\x36\ +\x35\x36\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x2e\x37\x35\x36\x35\ +\x36\x43\x20\x34\x34\x2e\x36\x39\x36\x39\x20\x2d\x31\x2e\x37\x35\ +\x36\x35\x36\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x35\x2e\x31\ +\x35\x35\x31\x31\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\x39\x2e\ +\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\x20\x2d\ +\x39\x2e\x33\x34\x37\x34\x32\x4c\x20\x35\x34\x2e\x38\x39\x32\x36\ +\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x27\x20\x66\x69\x6c\x6c\x3d\ +\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\ +\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\ +\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\ +\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\ +\x27\x33\x2e\x35\x31\x33\x31\x32\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\ +\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\ +\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\ +\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x36\x2e\x34\ +\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x35\x34\x2e\x38\x39\x32\ +\x36\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\x43\x20\x35\x34\x2e\x38\ +\x39\x32\x36\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\x34\x34\x2e\ +\x36\x39\x36\x39\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x33\x32\ +\x2e\x31\x32\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x43\x20\x31\x39\ +\x2e\x35\x34\x33\x31\x20\x2d\x36\x32\x2e\x34\x38\x33\x34\x20\x39\ +\x2e\x33\x34\x37\x34\x32\x20\x2d\x35\x32\x2e\x32\x38\x37\x38\x20\ +\x39\x2e\x33\x34\x37\x34\x32\x20\x2d\x33\x39\x2e\x37\x31\x30\x39\ +\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\ +\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\ +\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ +\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\ +\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\x35\x31\x33\x31\x32\x27\ +\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\ +\x76\x67\x3e\ +\x00\x00\x03\x46\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ @@ -1384,107 +2166,43 @@ qt_resource_data = b"\ \x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ \x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ \x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ -\x0d\x0a\x09\x09\x3c\x72\x65\x63\x74\x20\x78\x3d\x22\x31\x37\x38\ -\x2e\x38\x34\x36\x22\x20\x79\x3d\x22\x39\x32\x2e\x30\x38\x37\x22\ -\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\ -\x69\x78\x28\x2d\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\ -\x37\x31\x20\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\x37\ -\x31\x20\x32\x32\x34\x2e\x33\x34\x37\x36\x20\x36\x33\x31\x2e\x31\ -\x34\x39\x38\x29\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\ -\x2e\x30\x38\x35\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x35\ -\x34\x2e\x30\x34\x39\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\ -\x20\x64\x3d\x22\x4d\x34\x37\x31\x2e\x37\x32\x33\x2c\x38\x38\x2e\ -\x33\x39\x33\x6c\x2d\x34\x38\x2e\x31\x31\x35\x2d\x34\x38\x2e\x31\ -\x31\x34\x63\x2d\x31\x31\x2e\x37\x32\x33\x2d\x31\x31\x2e\x37\x32\ -\x34\x2d\x33\x31\x2e\x35\x35\x38\x2d\x31\x30\x2e\x38\x39\x36\x2d\ -\x34\x34\x2e\x33\x30\x34\x2c\x31\x2e\x38\x35\x6c\x2d\x34\x35\x2e\ -\x32\x30\x32\x2c\x34\x35\x2e\x32\x30\x33\x6c\x39\x30\x2e\x35\x36\ -\x39\x2c\x39\x30\x2e\x35\x36\x38\x6c\x34\x35\x2e\x32\x30\x32\x2d\ -\x34\x35\x2e\x32\x30\x32\x0d\x0a\x09\x09\x43\x34\x38\x32\x2e\x36\ -\x31\x36\x2c\x31\x31\x39\x2e\x39\x35\x32\x2c\x34\x38\x33\x2e\x34\ -\x34\x35\x2c\x31\x30\x30\x2e\x31\x31\x36\x2c\x34\x37\x31\x2e\x37\ -\x32\x33\x2c\x38\x38\x2e\x33\x39\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\ -\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\ -\x22\x36\x34\x2e\x30\x32\x31\x2c\x33\x36\x33\x2e\x32\x35\x32\x20\ -\x33\x32\x2c\x34\x38\x30\x20\x31\x34\x38\x2e\x37\x33\x37\x2c\x34\ -\x34\x37\x2e\x39\x37\x39\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\ -\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x04\x4e\ +\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ +\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ +\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ +\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ +\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x37\x2e\x35\ +\x2c\x33\x38\x36\x2e\x36\x4c\x33\x30\x36\x2e\x39\x2c\x32\x35\x36\ +\x6c\x31\x33\x30\x2e\x36\x2d\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\ +\x31\x2d\x31\x34\x2e\x31\x2c\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\ +\x2c\x30\x2d\x35\x30\x2e\x39\x63\x2d\x31\x34\x2e\x31\x2d\x31\x34\ +\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\x2d\x35\x30\x2e\ +\x39\x2c\x30\x4c\x32\x35\x36\x2c\x32\x30\x35\x2e\x31\x4c\x31\x32\ +\x35\x2e\x34\x2c\x37\x34\x2e\x35\x0d\x0a\x09\x63\x2d\x31\x34\x2e\ +\x31\x2d\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\ +\x2d\x35\x30\x2e\x39\x2c\x30\x63\x2d\x31\x34\x2e\x31\x2c\x31\x34\ +\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\x35\ +\x30\x2e\x39\x4c\x32\x30\x35\x2e\x31\x2c\x32\x35\x36\x4c\x37\x34\ +\x2e\x35\x2c\x33\x38\x36\x2e\x36\x63\x2d\x31\x34\x2e\x31\x2c\x31\ +\x34\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\ +\x35\x30\x2e\x39\x0d\x0a\x09\x63\x31\x34\x2e\x31\x2c\x31\x34\x2e\ +\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\x39\ +\x2c\x30\x4c\x32\x35\x36\x2c\x33\x30\x36\x2e\x39\x6c\x31\x33\x30\ +\x2e\x36\x2c\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\x31\x2c\x31\x34\ +\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\ +\x39\x2c\x30\x43\x34\x35\x31\x2e\x35\x2c\x34\x32\x33\x2e\x34\x2c\ +\x34\x35\x31\x2e\x35\x2c\x34\x30\x30\x2e\x36\x2c\x34\x33\x37\x2e\ +\x35\x2c\x33\x38\x36\x2e\x36\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\x0d\x0a\ +\x00\x00\x00\x6c\ \x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ -\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ -\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ -\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ -\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ -\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ -\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ -\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ -\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ -\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ -\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ -\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ -\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ -\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ -\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ -\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ -\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ -\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ -\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\ -\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\ -\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\ -\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\ -\x32\x38\x31\x4c\x20\x33\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\ -\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\ -\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\ -\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\ -\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\ -\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\ -\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ -\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\ -\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\ -\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\ -\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\ -\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\ -\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\ -\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\ -\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\ -\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\ -\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\ -\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\ -\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\ -\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\ -\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\ -\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\ -\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\ -\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\ -\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\ -\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\ -\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\ -\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\ -\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\ -\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\ -\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\ -\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\ -\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\ -\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ -\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ -\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\ -\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\ -\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\ -\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\ -\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\ -\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\ -\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\ -\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\ +\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x3e\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x31\x38\x20\x31\x32\x76\x31\x48\x38\x76\x35\ +\x6c\x2d\x36\x2d\x36\x20\x36\x2d\x36\x76\x35\x68\x38\x56\x32\x68\ +\x32\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\ \x00\x00\x02\xf7\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -1535,57 +2253,6 @@ qt_resource_data = b"\ \x33\x38\x2e\x33\x2c\x34\x33\x34\x2e\x33\x2c\x32\x32\x34\x2c\x34\ \x31\x37\x2e\x34\x2c\x32\x32\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\ \x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x03\x0c\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x43\x68\x65\x63\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\ -\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ -\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\x79\ -\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\ -\x78\x3d\x22\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\x65\x6e\ -\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\ -\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\ -\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\ -\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ -\x4d\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x63\x2d\x30\ -\x2e\x34\x33\x35\x2c\x30\x2d\x30\x2e\x38\x34\x37\x2d\x30\x2e\x32\ -\x30\x33\x2d\x31\x2e\x31\x31\x31\x2d\x30\x2e\x35\x35\x33\x4c\x33\ -\x2e\x36\x31\x2c\x31\x31\x2e\x37\x32\x34\x63\x2d\x30\x2e\x34\x36\ -\x35\x2d\x30\x2e\x36\x31\x33\x2d\x30\x2e\x33\x34\x34\x2d\x31\x2e\ -\x34\x38\x36\x2c\x30\x2e\x32\x37\x2d\x31\x2e\x39\x35\x31\x0d\x0a\ -\x09\x63\x30\x2e\x36\x31\x35\x2d\x30\x2e\x34\x36\x37\x2c\x31\x2e\ -\x34\x38\x38\x2d\x30\x2e\x33\x34\x34\x2c\x31\x2e\x39\x35\x33\x2c\ -\x30\x2e\x32\x37\x6c\x32\x2e\x33\x35\x31\x2c\x33\x2e\x31\x30\x34\ -\x6c\x35\x2e\x39\x31\x31\x2d\x39\x2e\x34\x39\x32\x63\x30\x2e\x34\ -\x30\x37\x2d\x30\x2e\x36\x35\x32\x2c\x31\x2e\x32\x36\x37\x2d\x30\ -\x2e\x38\x35\x32\x2c\x31\x2e\x39\x32\x31\x2d\x30\x2e\x34\x34\x35\ -\x0d\x0a\x09\x63\x30\x2e\x36\x35\x33\x2c\x30\x2e\x34\x30\x36\x2c\ -\x30\x2e\x38\x35\x34\x2c\x31\x2e\x32\x36\x36\x2c\x30\x2e\x34\x34\ -\x36\x2c\x31\x2e\x39\x32\x4c\x39\x2e\x34\x37\x38\x2c\x31\x36\x2e\ -\x33\x34\x63\x2d\x30\x2e\x32\x34\x32\x2c\x30\x2e\x33\x39\x31\x2d\ -\x30\x2e\x36\x36\x31\x2c\x30\x2e\x36\x33\x35\x2d\x31\x2e\x31\x32\ -\x2c\x30\x2e\x36\x35\x36\x43\x38\x2e\x33\x33\x36\x2c\x31\x36\x2e\ -\x39\x39\x38\x2c\x38\x2e\x33\x31\x36\x2c\x31\x36\x2e\x39\x39\x38\ -\x2c\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x7a\x22\x2f\ -\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ \x00\x00\x03\xf5\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -1652,576 +2319,6 @@ qt_resource_data = b"\ \x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\x34\ \x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\ \x67\x3e\x0d\x0a\ -\x00\x00\x03\x22\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\ -\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x22\x32\x35\x36\x22\ -\x20\x63\x79\x3d\x22\x32\x38\x30\x22\x20\x72\x3d\x22\x36\x33\x22\ -\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\ -\x34\x30\x2c\x39\x36\x68\x2d\x38\x38\x6c\x2d\x33\x32\x2d\x33\x32\ -\x48\x31\x39\x32\x6c\x2d\x33\x32\x2c\x33\x32\x48\x37\x32\x63\x2d\ -\x32\x32\x2e\x30\x39\x32\x2c\x30\x2d\x34\x30\x2c\x31\x37\x2e\x39\ -\x30\x38\x2d\x34\x30\x2c\x34\x30\x76\x32\x37\x32\x63\x30\x2c\x32\ -\x32\x2e\x30\x39\x32\x2c\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2c\ -\x34\x30\x2c\x34\x30\x68\x33\x36\x38\x63\x32\x32\x2e\x30\x39\x32\ -\x2c\x30\x2c\x34\x30\x2d\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2d\ -\x34\x30\x0d\x0a\x09\x09\x56\x31\x33\x36\x43\x34\x38\x30\x2c\x31\ -\x31\x33\x2e\x39\x30\x38\x2c\x34\x36\x32\x2e\x30\x39\x32\x2c\x39\ -\x36\x2c\x34\x34\x30\x2c\x39\x36\x7a\x20\x4d\x32\x35\x36\x2c\x33\ -\x39\x32\x63\x2d\x36\x31\x2e\x38\x35\x35\x2c\x30\x2d\x31\x31\x32\ -\x2d\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2d\x31\x31\x32\x73\ -\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2c\x31\x31\x32\x2d\x31\ -\x31\x32\x73\x31\x31\x32\x2c\x35\x30\x2e\x31\x34\x35\x2c\x31\x31\ -\x32\x2c\x31\x31\x32\x0d\x0a\x09\x09\x53\x33\x31\x37\x2e\x38\x35\ -\x35\x2c\x33\x39\x32\x2c\x32\x35\x36\x2c\x33\x39\x32\x7a\x22\x2f\ -\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\ -\x0a\ -\x00\x00\x02\xb7\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x5f\x35\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ -\x0d\x0a\x09\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\ -\x6e\x74\x73\x3d\x22\x34\x30\x35\x2c\x31\x33\x36\x2e\x37\x39\x38\ -\x20\x33\x37\x35\x2e\x32\x30\x32\x2c\x31\x30\x37\x20\x32\x35\x36\ -\x2c\x32\x32\x36\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\ -\x2c\x31\x30\x37\x20\x31\x30\x37\x2c\x31\x33\x36\x2e\x37\x39\x38\ -\x20\x32\x32\x36\x2e\x32\x30\x32\x2c\x32\x35\x36\x20\x31\x30\x37\ -\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\ -\x2c\x34\x30\x35\x20\x32\x35\x36\x2c\x32\x38\x35\x2e\x37\x39\x38\ -\x20\x0d\x0a\x09\x09\x09\x33\x37\x35\x2e\x32\x30\x32\x2c\x34\x30\ -\x35\x20\x34\x30\x35\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x32\x38\ -\x35\x2e\x37\x39\x38\x2c\x32\x35\x36\x20\x09\x09\x22\x2f\x3e\x0d\ -\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\ -\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x02\x79\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x5f\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\ -\x0d\x0a\x09\x09\x3c\x67\x3e\x0d\x0a\x09\x09\x09\x3c\x70\x6f\x6c\ -\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\x22\x31\x38\x36\ -\x2e\x33\x30\x31\x2c\x33\x33\x39\x2e\x38\x39\x33\x20\x39\x36\x2c\ -\x32\x34\x39\x2e\x34\x36\x31\x20\x36\x34\x2c\x32\x37\x39\x2e\x39\ -\x36\x38\x20\x31\x38\x36\x2e\x33\x30\x31\x2c\x34\x30\x32\x20\x34\ -\x34\x38\x2c\x31\x34\x30\x2e\x35\x30\x36\x20\x34\x31\x36\x2c\x31\ -\x31\x30\x20\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x09\x3c\x2f\x67\ -\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\ -\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x03\xeb\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\ -\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ -\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ -\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ -\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ -\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ -\x4d\x32\x35\x36\x2c\x31\x32\x38\x63\x2d\x38\x31\x2e\x39\x2c\x30\ -\x2d\x31\x34\x35\x2e\x37\x2c\x34\x38\x2e\x38\x2d\x32\x32\x34\x2c\ -\x31\x32\x38\x63\x36\x37\x2e\x34\x2c\x36\x37\x2e\x37\x2c\x31\x32\ -\x34\x2c\x31\x32\x38\x2c\x32\x32\x34\x2c\x31\x32\x38\x63\x39\x39\ -\x2e\x39\x2c\x30\x2c\x31\x37\x33\x2e\x34\x2d\x37\x36\x2e\x34\x2c\ -\x32\x32\x34\x2d\x31\x32\x36\x2e\x36\x0d\x0a\x09\x09\x43\x34\x32\ -\x38\x2e\x32\x2c\x31\x39\x38\x2e\x36\x2c\x33\x35\x34\x2e\x38\x2c\ -\x31\x32\x38\x2c\x32\x35\x36\x2c\x31\x32\x38\x7a\x20\x4d\x32\x35\ -\x36\x2c\x33\x34\x37\x2e\x33\x63\x2d\x34\x39\x2e\x34\x2c\x30\x2d\ -\x38\x39\x2e\x36\x2d\x34\x31\x2d\x38\x39\x2e\x36\x2d\x39\x31\x2e\ -\x33\x63\x30\x2d\x35\x30\x2e\x34\x2c\x34\x30\x2e\x32\x2d\x39\x31\ -\x2e\x33\x2c\x38\x39\x2e\x36\x2d\x39\x31\x2e\x33\x73\x38\x39\x2e\ -\x36\x2c\x34\x31\x2c\x38\x39\x2e\x36\x2c\x39\x31\x2e\x33\x0d\x0a\ -\x09\x09\x43\x33\x34\x35\x2e\x36\x2c\x33\x30\x36\x2e\x34\x2c\x33\ -\x30\x35\x2e\x34\x2c\x33\x34\x37\x2e\x33\x2c\x32\x35\x36\x2c\x33\ -\x34\x37\x2e\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\ -\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\ -\x32\x32\x34\x63\x30\x2d\x37\x2e\x39\x2c\x32\x2e\x39\x2d\x31\x35\ -\x2e\x31\x2c\x37\x2e\x36\x2d\x32\x30\x2e\x37\x63\x2d\x32\x2e\x35\ -\x2d\x30\x2e\x34\x2d\x35\x2d\x30\x2e\x36\x2d\x37\x2e\x36\x2d\x30\ -\x2e\x36\x63\x2d\x32\x38\x2e\x38\x2c\x30\x2d\x35\x32\x2e\x33\x2c\ -\x32\x33\x2e\x39\x2d\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x63\x30\ -\x2c\x32\x39\x2e\x34\x2c\x32\x33\x2e\x35\x2c\x35\x33\x2e\x33\x2c\ -\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x0d\x0a\x09\x09\x09\x73\x35\ -\x32\x2e\x33\x2d\x32\x33\x2e\x39\x2c\x35\x32\x2e\x33\x2d\x35\x33\ -\x2e\x33\x63\x30\x2d\x32\x2e\x33\x2d\x30\x2e\x32\x2d\x34\x2e\x36\ -\x2d\x30\x2e\x34\x2d\x36\x2e\x39\x63\x2d\x35\x2e\x35\x2c\x34\x2e\ -\x33\x2d\x31\x32\x2e\x33\x2c\x36\x2e\x39\x2d\x31\x39\x2e\x38\x2c\ -\x36\x2e\x39\x43\x32\x37\x30\x2e\x33\x2c\x32\x35\x36\x2c\x32\x35\ -\x36\x2c\x32\x34\x31\x2e\x37\x2c\x32\x35\x36\x2c\x32\x32\x34\x7a\ -\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\ -\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x01\xdd\ -\x00\ -\x00\x06\xe4\x78\x9c\xcd\x54\x4d\x6f\x9b\x40\x10\x3d\x13\x29\xff\ -\x61\xba\xb7\x4a\xec\x17\xc4\xd4\xa6\xa6\x51\xfd\x21\xcb\x52\x9a\ -\x58\x6a\xea\xaa\xa7\x0a\xc3\x16\x50\x28\x20\x58\xc0\xce\xaf\xef\ -\xee\x92\x54\x51\x95\xfa\x18\xfb\xb0\x33\xda\x79\x6f\xde\xbc\x65\ -\x24\xa6\xd7\xfb\xdf\x39\x74\xa2\x6e\xb2\xb2\x08\x10\x27\x0c\x81\ -\x28\xa2\x32\xce\x8a\x24\x40\xad\xfc\x85\xc7\xe8\xfa\xd3\xe5\xc5\ -\xf4\x1d\xc6\xb0\x12\x85\xa8\x43\x59\xd6\x3e\x7c\x8e\xcb\x9d\x80\ -\x75\x9e\xb7\x8d\x34\x25\xe0\x1e\x71\x08\xb7\xe1\xeb\x76\x05\xcb\ -\x7d\x55\xd6\x12\x36\x79\x9b\xe0\x75\x01\xc4\x14\xb7\xc3\x10\x1f\ -\x3c\xc2\x18\xcc\xda\x2c\x8f\x81\xbd\x07\xc0\xd8\xe8\x2f\xee\xe6\ -\xf7\x3f\x36\x4b\x68\xba\x04\x36\xdf\x66\x37\xeb\x39\x20\x4c\xe9\ -\x77\x77\x4e\xe9\xe2\x7e\x61\x24\x38\xe1\x94\x2e\x6f\x11\xa0\x54\ -\xca\xca\xa7\xb4\xef\x7b\xd2\xbb\xa4\xac\x13\xba\xaa\xc3\x2a\xcd\ -\xa2\x86\x2a\x22\xd5\x44\xd5\x44\x95\x18\xe7\x24\x96\x31\xd2\x33\ -\xb4\xf4\x8b\xa7\x72\x04\x59\x1c\xa0\x9b\xf0\x20\xea\x9f\xea\xa2\ -\xbe\x44\xd1\x04\xaf\x48\x3b\x8c\x31\x2d\xf5\x44\xf1\xf7\x79\x56\ -\x3c\xbc\x46\xe4\x93\xc9\x84\x1a\x54\x51\x03\xc4\xaa\x3d\x82\xc3\ -\x90\x2f\x2f\x2c\xe8\xb3\x58\xa6\x01\x1a\x71\x47\x03\xa9\xc8\x92\ -\x54\xfe\xbd\x76\x99\xe8\x67\xa5\xee\x02\x06\xaa\xa6\x0f\x82\x46\ -\x1e\x72\x11\x20\x51\x84\xbb\x5c\xe0\x5d\x18\x3d\x24\x75\xd9\x16\ -\xb1\x5f\x88\x1e\x5e\x30\x3f\x1a\x6f\x7e\x53\x85\x91\xa2\x57\xb5\ -\x68\x44\xdd\x09\xf3\xea\x44\x05\x6b\x88\xd6\xb4\x0a\x65\x0a\xea\ -\xd1\x5f\xb8\xc7\x6c\x3e\x72\x89\x1b\x31\xdb\x25\x1f\xb0\x6b\x7b\ -\x2a\xaa\xa3\x73\x8a\x47\x8c\x8c\x22\xac\x00\x9b\xe9\x22\x76\xf1\ -\x13\xdc\x0d\x10\x33\x98\xfb\xdc\xa0\x73\x6a\x00\xd3\xa2\x4b\xb6\ -\x51\xd4\x67\x6b\xe6\x3c\xea\x4f\x60\x59\xf4\x1f\x1f\xce\x78\x7c\ -\x16\x3e\xae\xb8\x77\x3a\x1f\x53\xfa\xff\x25\x39\x63\xfe\x26\xa6\ -\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x71\x6c\x49\x57\x6c\ -\xf2\x26\xa6\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x31\x2c\ -\xe9\x39\xaa\x7f\xb6\xca\x7f\x00\x99\x18\x96\x19\ -\x00\x00\x02\x7f\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\ -\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ -\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\ -\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\ -\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\ -\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\ -\x3d\x22\x32\x38\x38\x2c\x39\x36\x20\x33\x33\x37\x2e\x39\x2c\x31\ -\x34\x35\x2e\x39\x20\x32\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x32\ -\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x31\x34\x35\x2e\x39\x2c\x33\ -\x33\x37\x2e\x39\x20\x39\x36\x2c\x32\x38\x38\x20\x39\x36\x2c\x34\ -\x31\x36\x20\x32\x32\x34\x2c\x34\x31\x36\x20\x31\x37\x34\x2e\x31\ -\x2c\x33\x36\x36\x2e\x31\x20\x33\x35\x37\x2e\x34\x2c\x31\x38\x32\ -\x2e\x39\x20\x33\x36\x36\x2e\x31\x2c\x31\x37\x34\x2e\x31\x20\x0d\ -\x0a\x09\x34\x31\x36\x2c\x32\x32\x34\x20\x34\x31\x36\x2c\x39\x36\ -\x20\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\x00\x00\x00\x6c\ -\x3c\ -\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ -\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\ -\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x3e\x3c\x70\x61\x74\x68\ -\x20\x64\x3d\x22\x4d\x31\x38\x20\x31\x32\x76\x31\x48\x38\x76\x35\ -\x6c\x2d\x36\x2d\x36\x20\x36\x2d\x36\x76\x35\x68\x38\x56\x32\x68\ -\x32\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\ -\x00\x00\x04\x64\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\ -\x22\x49\x63\x6f\x6e\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\x09\ -\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x31\ -\x37\x36\x63\x2d\x34\x34\x2e\x30\x30\x34\x2c\x30\x2d\x38\x30\x2e\ -\x30\x30\x31\x2c\x33\x36\x2d\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\ -\x63\x30\x2c\x34\x34\x2e\x30\x30\x34\x2c\x33\x35\x2e\x39\x39\x37\ -\x2c\x38\x30\x2c\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\x63\x34\x34\ -\x2e\x30\x30\x35\x2c\x30\x2c\x37\x39\x2e\x39\x39\x39\x2d\x33\x35\ -\x2e\x39\x39\x36\x2c\x37\x39\x2e\x39\x39\x39\x2d\x38\x30\x0d\x0a\ -\x09\x09\x09\x43\x33\x33\x35\x2e\x39\x39\x39\x2c\x32\x31\x32\x2c\ -\x33\x30\x30\x2e\x30\x30\x35\x2c\x31\x37\x36\x2c\x32\x35\x36\x2c\ -\x31\x37\x36\x7a\x20\x4d\x34\x34\x36\x2e\x39\x33\x38\x2c\x32\x33\ -\x34\x2e\x36\x36\x37\x63\x2d\x39\x2e\x36\x30\x35\x2d\x38\x38\x2e\ -\x35\x33\x31\x2d\x38\x31\x2e\x30\x37\x34\x2d\x31\x36\x30\x2d\x31\ -\x36\x39\x2e\x36\x30\x35\x2d\x31\x36\x39\x2e\x35\x39\x39\x56\x33\ -\x32\x68\x2d\x34\x32\x2e\x36\x36\x36\x76\x33\x33\x2e\x30\x36\x37\ -\x0d\x0a\x09\x09\x09\x63\x2d\x38\x38\x2e\x35\x33\x31\x2c\x39\x2e\ -\x35\x39\x39\x2d\x31\x36\x30\x2c\x38\x31\x2e\x30\x36\x38\x2d\x31\ -\x36\x39\x2e\x36\x30\x34\x2c\x31\x36\x39\x2e\x35\x39\x39\x48\x33\ -\x32\x76\x34\x32\x2e\x36\x36\x37\x68\x33\x33\x2e\x30\x36\x32\x63\ -\x39\x2e\x36\x30\x34\x2c\x38\x38\x2e\x35\x33\x31\x2c\x38\x31\x2e\ -\x30\x37\x32\x2c\x31\x36\x30\x2c\x31\x36\x39\x2e\x36\x30\x34\x2c\ -\x31\x36\x39\x2e\x36\x30\x34\x56\x34\x38\x30\x68\x34\x32\x2e\x36\ -\x36\x36\x76\x2d\x33\x33\x2e\x30\x36\x32\x0d\x0a\x09\x09\x09\x63\ -\x38\x38\x2e\x35\x33\x31\x2d\x39\x2e\x36\x30\x34\x2c\x31\x36\x30\ -\x2d\x38\x31\x2e\x30\x37\x33\x2c\x31\x36\x39\x2e\x36\x30\x35\x2d\ -\x31\x36\x39\x2e\x36\x30\x34\x48\x34\x38\x30\x76\x2d\x34\x32\x2e\ -\x36\x36\x37\x48\x34\x34\x36\x2e\x39\x33\x38\x7a\x20\x4d\x32\x35\ -\x36\x2c\x34\x30\x35\x2e\x33\x33\x33\x63\x2d\x38\x32\x2e\x31\x33\ -\x37\x2c\x30\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x36\x37\x2e\x31\ -\x39\x38\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\ -\x33\x33\x0d\x0a\x09\x09\x09\x63\x30\x2d\x38\x32\x2e\x31\x33\x36\ -\x2c\x36\x37\x2e\x31\x39\x37\x2d\x31\x34\x39\x2e\x33\x33\x33\x2c\ -\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\x33\x33\x63\ -\x38\x32\x2e\x31\x33\x35\x2c\x30\x2c\x31\x34\x39\x2e\x33\x33\x32\ -\x2c\x36\x37\x2e\x31\x39\x38\x2c\x31\x34\x39\x2e\x33\x33\x32\x2c\ -\x31\x34\x39\x2e\x33\x33\x33\x43\x34\x30\x35\x2e\x33\x33\x32\x2c\ -\x33\x33\x38\x2e\x31\x33\x35\x2c\x33\x33\x38\x2e\x31\x33\x35\x2c\ -\x34\x30\x35\x2e\x33\x33\x33\x2c\x32\x35\x36\x2c\x34\x30\x35\x2e\ -\x33\x33\x33\x7a\x0d\x0a\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x3c\ -\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\ -\x3e\x0d\x0a\ -\x00\x00\x02\xa1\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x53\x61\x76\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ -\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ -\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ -\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ -\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\x22\x20\ -\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\ -\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\ -\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\ -\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\ -\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\ -\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\ -\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\ -\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\ -\x35\x2e\x31\x37\x33\x2c\x32\x48\x34\x43\x32\x2e\x38\x39\x39\x2c\ -\x32\x2c\x32\x2c\x32\x2e\x39\x2c\x32\x2c\x34\x76\x31\x32\x63\x30\ -\x2c\x31\x2e\x31\x2c\x30\x2e\x38\x39\x39\x2c\x32\x2c\x32\x2c\x32\ -\x68\x31\x32\x63\x31\x2e\x31\x30\x31\x2c\x30\x2c\x32\x2d\x30\x2e\ -\x39\x2c\x32\x2d\x32\x56\x35\x2e\x31\x32\x37\x4c\x31\x35\x2e\x31\ -\x37\x33\x2c\x32\x7a\x20\x4d\x31\x34\x2c\x38\x63\x30\x2c\x30\x2e\ -\x35\x34\x39\x2d\x30\x2e\x34\x35\x2c\x31\x2d\x31\x2c\x31\x48\x37\ -\x0d\x0a\x09\x43\x36\x2e\x34\x35\x2c\x39\x2c\x36\x2c\x38\x2e\x35\ -\x34\x39\x2c\x36\x2c\x38\x56\x33\x68\x38\x56\x38\x7a\x20\x4d\x31\ -\x33\x2c\x34\x68\x2d\x32\x76\x34\x68\x32\x56\x34\x7a\x22\x2f\x3e\ -\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ -\ -\x00\x00\x04\x1c\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ -\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ -\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ -\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ -\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ -\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ -\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ -\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ -\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ -\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ -\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ -\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ -\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ -\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ -\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ -\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ -\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\ -\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x32\ -\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x36\ -\x32\x2e\x32\x33\x32\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\ -\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\ -\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\ -\x35\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\ -\x35\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\ -\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\ -\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\ -\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ -\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\ -\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ -\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\ -\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\ -\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\ -\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\ -\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\ -\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\ -\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\ -\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\ -\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x33\x32\x2e\x31\x32\x27\x20\ -\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\ -\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\ -\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\ -\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\ -\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\ -\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\ -\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\ -\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\ -\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\ -\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\ -\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\ -\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\ -\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\x32\x2e\ -\x31\x32\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x33\x32\x2e\x31\ -\x32\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\x27\x20\x66\x69\x6c\x6c\ -\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\ -\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\ -\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\ -\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\ -\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ -\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\ -\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ -\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ -\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ -\x00\x00\x05\xca\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ -\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\ -\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\ -\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\ -\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\ -\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\ -\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\ -\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\ -\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\ -\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\ -\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ -\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\ -\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\ -\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\ -\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ -\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ -\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\ -\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\ -\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\ -\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ -\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\ -\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\ -\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\ -\x64\x3d\x22\x4d\x34\x35\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\ -\x35\x63\x2d\x31\x34\x2e\x35\x38\x35\x2d\x31\x34\x2e\x35\x37\x37\ -\x2d\x33\x36\x2e\x30\x35\x34\x2d\x31\x35\x2e\x38\x39\x2d\x35\x30\ -\x2e\x36\x33\x39\x2d\x31\x2e\x33\x31\x32\x6c\x2d\x34\x31\x2e\x36\ -\x38\x37\x2c\x34\x31\x2e\x36\x36\x34\x63\x2d\x31\x30\x2e\x38\x35\ -\x32\x2c\x31\x30\x2e\x38\x33\x36\x2d\x32\x33\x2e\x39\x33\x2c\x31\ -\x30\x2e\x38\x35\x39\x2d\x33\x31\x2e\x35\x36\x34\x2c\x31\x2e\x38\ -\x35\x32\x0d\x0a\x09\x63\x2d\x35\x2e\x30\x35\x37\x2d\x35\x2e\x39\ -\x36\x38\x2d\x33\x2e\x30\x36\x31\x2d\x32\x34\x2e\x33\x37\x34\x2d\ -\x31\x2e\x36\x34\x34\x2d\x33\x36\x2e\x30\x34\x39\x6c\x32\x30\x2e\ -\x39\x30\x37\x2d\x31\x37\x31\x2e\x38\x34\x39\x63\x31\x2e\x38\x36\ -\x37\x2d\x31\x35\x2e\x33\x35\x33\x2d\x39\x2e\x30\x37\x2d\x33\x30\ -\x2e\x31\x38\x35\x2d\x32\x34\x2e\x34\x33\x2d\x33\x32\x2e\x30\x35\ -\x31\x0d\x0a\x09\x63\x2d\x31\x35\x2e\x33\x35\x38\x2d\x31\x2e\x38\ -\x36\x37\x2d\x32\x39\x2e\x33\x32\x32\x2c\x39\x2e\x39\x33\x39\x2d\ -\x33\x31\x2e\x31\x39\x31\x2c\x32\x35\x2e\x32\x38\x39\x4c\x32\x36\ -\x37\x2e\x33\x37\x2c\x32\x33\x36\x2e\x30\x32\x31\x63\x2d\x31\x2e\ -\x32\x30\x35\x2c\x33\x2e\x33\x35\x38\x2d\x33\x2e\x37\x39\x2c\x33\ -\x2e\x39\x33\x38\x2d\x34\x2e\x30\x38\x31\x2d\x30\x2e\x35\x38\x32\ -\x4c\x32\x35\x35\x2e\x34\x34\x2c\x36\x30\x0d\x0a\x09\x63\x30\x2d\ -\x31\x35\x2e\x34\x36\x35\x2d\x31\x32\x2e\x35\x34\x32\x2d\x32\x38\ -\x2d\x32\x38\x2e\x30\x31\x34\x2d\x32\x38\x63\x2d\x31\x35\x2e\x34\ -\x37\x33\x2c\x30\x2d\x32\x38\x2e\x30\x31\x35\x2c\x31\x32\x2e\x35\ -\x33\x35\x2d\x32\x38\x2e\x30\x31\x35\x2c\x32\x38\x6c\x2d\x30\x2e\ -\x35\x35\x32\x2c\x31\x37\x36\x2e\x37\x35\x32\x63\x30\x2e\x31\x34\ -\x36\x2c\x32\x2e\x30\x34\x2d\x31\x2e\x36\x30\x34\x2c\x32\x2e\x36\ -\x32\x34\x2d\x31\x2e\x39\x32\x2c\x30\x2e\x32\x39\x34\x4c\x31\x37\ -\x32\x2e\x30\x31\x36\x2c\x39\x39\x2e\x30\x37\x37\x0d\x0a\x09\x63\ -\x2d\x32\x2e\x37\x35\x2d\x31\x35\x2e\x32\x31\x39\x2d\x31\x37\x2e\ -\x33\x32\x33\x2d\x32\x36\x2e\x32\x30\x33\x2d\x33\x32\x2e\x35\x34\ -\x38\x2d\x32\x33\x2e\x34\x35\x33\x63\x2d\x31\x35\x2e\x32\x32\x37\ -\x2c\x32\x2e\x37\x34\x38\x2d\x32\x35\x2e\x33\x33\x39\x2c\x31\x38\ -\x2e\x31\x38\x37\x2d\x32\x32\x2e\x35\x39\x31\x2c\x33\x33\x2e\x34\ -\x30\x33\x6c\x32\x32\x2e\x31\x39\x33\x2c\x31\x36\x31\x2e\x34\x35\ -\x35\x0d\x0a\x09\x63\x30\x2e\x30\x32\x33\x2c\x32\x2e\x38\x37\x32\ -\x2d\x30\x2e\x39\x34\x31\x2c\x34\x2e\x35\x31\x33\x2d\x32\x2e\x33\ -\x30\x38\x2c\x30\x2e\x38\x33\x31\x6c\x2d\x33\x33\x2e\x31\x30\x39\ -\x2d\x38\x38\x2e\x35\x31\x37\x63\x2d\x35\x2e\x31\x38\x2d\x31\x34\ -\x2e\x35\x37\x32\x2d\x32\x31\x2e\x31\x39\x36\x2d\x32\x33\x2e\x30\ -\x36\x35\x2d\x33\x35\x2e\x37\x37\x36\x2d\x31\x37\x2e\x38\x38\x39\ -\x0d\x0a\x09\x63\x2d\x31\x34\x2e\x35\x37\x39\x2c\x35\x2e\x31\x37\ -\x37\x2d\x32\x32\x2e\x32\x30\x31\x2c\x32\x32\x2e\x30\x36\x31\x2d\ -\x31\x37\x2e\x30\x32\x33\x2c\x33\x36\x2e\x36\x33\x31\x6c\x35\x38\ -\x2e\x30\x34\x32\x2c\x31\x38\x39\x2e\x36\x32\x35\x63\x30\x2e\x33\ -\x30\x33\x2c\x31\x2e\x30\x34\x36\x2c\x30\x2e\x36\x32\x34\x2c\x32\ -\x2e\x30\x38\x35\x2c\x30\x2e\x39\x35\x33\x2c\x33\x2e\x31\x31\x38\ -\x6c\x30\x2e\x31\x32\x31\x2c\x30\x2e\x33\x39\x0d\x0a\x09\x63\x30\ -\x2e\x30\x31\x31\x2c\x30\x2e\x30\x33\x31\x2c\x30\x2e\x30\x32\x35\ -\x2c\x30\x2e\x30\x35\x38\x2c\x30\x2e\x30\x33\x35\x2c\x30\x2e\x30\ -\x38\x38\x43\x31\x32\x36\x2e\x30\x37\x39\x2c\x34\x34\x34\x2e\x32\ -\x33\x33\x2c\x31\x37\x32\x2e\x35\x37\x2c\x34\x38\x30\x2c\x32\x32\ -\x37\x2e\x34\x32\x37\x2c\x34\x38\x30\x63\x33\x35\x2e\x31\x31\x36\ -\x2c\x30\x2c\x37\x31\x2e\x35\x39\x31\x2d\x31\x32\x2e\x33\x37\x38\ -\x2c\x39\x39\x2e\x33\x35\x37\x2d\x33\x33\x2e\x36\x37\x32\x0d\x0a\ -\x09\x63\x30\x2e\x30\x30\x31\x2c\x30\x2c\x30\x2e\x30\x30\x33\x2d\ -\x30\x2e\x30\x30\x32\x2c\x30\x2e\x30\x30\x33\x2d\x30\x2e\x30\x30\ -\x32\x63\x32\x39\x2e\x39\x39\x2d\x31\x38\x2e\x30\x35\x31\x2c\x31\ -\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x2c\x31\ -\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x43\x34\ -\x36\x37\x2e\x34\x34\x35\x2c\x33\x31\x30\x2e\x34\x30\x32\x2c\x34\ -\x36\x35\x2e\x32\x36\x36\x2c\x32\x38\x38\x2e\x30\x38\x2c\x34\x35\ -\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\x35\x7a\x22\x2f\x3e\x0d\ -\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\ \x00\x00\x03\x7c\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ @@ -2280,103 +2377,6 @@ qt_resource_data = b"\ \x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\ \x23\x30\x30\x30\x30\x30\x30\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ \x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ -\x00\x00\x01\x1c\ -\x3c\ -\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ -\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\ -\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\ -\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\ -\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x0a\ -\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ -\x74\x72\x69\x78\x28\x34\x38\x20\x30\x20\x30\x20\x34\x38\x20\x34\ -\x38\x20\x34\x38\x29\x27\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x20\ -\x64\x3d\x22\x4d\x30\x20\x30\x76\x32\x68\x2e\x35\x63\x30\x2d\x2e\ -\x35\x35\x2e\x34\x35\x2d\x31\x20\x31\x2d\x31\x68\x31\x2e\x35\x76\ -\x35\x2e\x35\x63\x30\x20\x2e\x32\x38\x2d\x2e\x32\x32\x2e\x35\x2d\ -\x2e\x35\x2e\x35\x68\x2d\x2e\x35\x76\x31\x68\x34\x76\x2d\x31\x68\ -\x2d\x2e\x35\x63\x2d\x2e\x32\x38\x20\x30\x2d\x2e\x35\x2d\x2e\x32\ -\x32\x2d\x2e\x35\x2d\x2e\x35\x76\x2d\x35\x2e\x35\x68\x31\x2e\x35\ -\x63\x2e\x35\x35\x20\x30\x20\x31\x20\x2e\x34\x35\x20\x31\x20\x31\ -\x68\x2e\x35\x76\x2d\x32\x68\x2d\x38\x7a\x22\x20\x2f\x3e\x0a\x3c\ -\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ -\x00\x00\x04\xa2\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\ -\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\ -\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\ -\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\ -\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\ -\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\ -\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\ -\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\ -\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ -\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\ -\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\ -\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\ -\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\ -\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\ -\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\ -\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\ -\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\ -\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\ -\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\ -\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\ -\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x34\ -\x2e\x31\x35\x35\x35\x36\x20\x2d\x33\x39\x2e\x32\x37\x34\x35\x20\ -\x36\x2e\x39\x38\x34\x37\x33\x20\x2d\x34\x36\x2e\x31\x30\x34\x37\ -\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\ -\x39\x43\x20\x32\x37\x2e\x34\x34\x31\x31\x20\x2d\x36\x37\x2e\x37\ -\x32\x36\x39\x20\x35\x33\x2e\x33\x30\x32\x31\x20\x2d\x36\x31\x2e\ -\x35\x34\x30\x35\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\ -\x2e\x35\x30\x32\x32\x43\x20\x35\x37\x2e\x36\x32\x37\x20\x2d\x33\ -\x32\x2e\x36\x35\x31\x39\x20\x35\x30\x2e\x35\x38\x35\x36\x20\x2d\ -\x32\x33\x2e\x35\x36\x32\x31\x20\x34\x30\x2e\x36\x37\x39\x34\x20\ -\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\ -\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\ -\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ -\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\ -\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\ -\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ -\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\ -\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\ -\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ -\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ -\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\ -\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\ -\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\ -\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\ -\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\ -\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\ -\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\ -\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\ -\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\ -\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\ -\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\ -\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\ -\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\ -\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\ -\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\ -\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\ -\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\ -\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\ -\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\ -\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\ -\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\ -\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\ -\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\ -\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\ -\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\ -\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\ -\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\ -\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\ -\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\ -\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\ -\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\ -\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\ -\x3e\ " qt_resource_name = b"\ @@ -2384,235 +2384,235 @@ qt_resource_name = b"\ \x00\x6f\xa6\x53\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x73\ -\x00\x1d\ -\x06\xec\xf4\xc7\ -\x00\x63\ -\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\ -\x00\x6c\x00\x65\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0a\ -\x0a\x2d\x1b\xc7\ -\x00\x63\ -\x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0a\ -\x0f\x68\x53\xe7\ -\x00\x61\ -\x00\x6e\x00\x63\x00\x68\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0f\ -\x09\x76\x60\xc7\ -\x00\x63\ -\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x17\ -\x06\xc6\x02\xa7\ -\x00\x74\ -\x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2d\x00\x73\x00\x74\x00\x72\x00\x6f\x00\x6b\x00\x65\x00\x64\x00\x2d\ -\x00\x31\x00\x35\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0a\ -\x01\xca\x6d\x87\ -\x00\x62\ -\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x1b\ \x0e\xb5\x68\xe7\ \x00\x61\ \x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\ \x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x11\ -\x01\x60\xbc\x47\ -\x00\x73\ -\x00\x6f\x00\x63\x00\x69\x00\x61\x00\x6c\x00\x2d\x00\x70\x00\x79\x00\x74\x00\x68\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ -\ -\x00\x14\ -\x0f\xa5\xe0\xc7\ -\x00\x6d\ -\x00\x61\x00\x67\x00\x6e\x00\x69\x00\x66\x00\x79\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x67\x00\x6c\x00\x61\x00\x73\x00\x73\x00\x2e\ -\x00\x73\x00\x76\x00\x67\ -\x00\x08\ -\x05\xa8\x57\x87\ +\x00\x10\ +\x08\x89\xfa\x47\ \x00\x63\ -\x00\x6f\x00\x64\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x13\ -\x03\x24\x75\x47\ -\x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\ -\x00\x76\x00\x67\ +\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6f\x00\x72\x00\x69\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x0b\x9e\x89\x07\ +\x00\x63\ +\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x12\ -\x08\x55\xef\xc7\ +\x08\x79\x97\xe7\ \x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x61\x00\x6d\x00\x65\x00\x72\x00\x61\x00\x2e\x00\x73\x00\x76\ \x00\x67\ +\x00\x0d\ +\x05\x20\xce\x87\ +\x00\x6f\ +\x00\x70\x00\x65\x00\x6e\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0f\ -\x04\xf2\xa7\x87\ +\x07\x0e\xc4\x87\ +\x00\x6f\ +\x00\x70\x00\x65\x00\x6e\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x0a\x2d\x1b\xc7\ \x00\x63\ -\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x12\ -\x04\xb2\x21\x47\ -\x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\ -\x00\x67\ +\x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x16\ \x01\xfb\x76\x27\ \x00\x61\ \x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x62\x00\x61\x00\x63\ \x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x19\ -\x0f\xef\x7b\xe7\ +\x00\x0e\ +\x05\xed\x38\x67\ \x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2d\x00\x70\x00\x61\x00\x6c\ -\x00\x65\x00\x74\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x19\ -\x0a\x43\x45\xc7\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x11\ +\x0c\xa7\xc7\x47\ +\x00\x63\ +\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\ +\x00\x0a\ +\x0f\x68\x53\xe7\ \x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x66\x00\x6f\x00\x72\ -\x00\x77\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x17\ -\x07\x87\x48\x27\ +\x00\x6e\x00\x63\x00\x68\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x10\ +\x06\xe3\xaf\xe7\ \x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\x00\x2d\x00\x6f\x00\x70\ -\x00\x65\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x68\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x13\ +\x03\x24\x75\x47\ +\x00\x61\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\ +\x00\x76\x00\x67\ \x00\x10\ -\x04\xa9\x22\xc7\ -\x00\x66\ -\x00\x69\x00\x6c\x00\x6c\x00\x65\x00\x64\x00\x62\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0f\ -\x07\x0e\xc4\x87\ -\x00\x6f\ -\x00\x70\x00\x65\x00\x6e\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0e\ -\x05\xed\x38\x67\ +\x08\xe4\xaf\x47\ \x00\x61\ -\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x6f\x00\x6e\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x10\ +\x0c\x57\x65\x47\ +\x00\x61\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x65\x00\x73\x00\x69\x00\x7a\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x17\ +\x06\xc6\x02\xa7\ +\x00\x74\ +\x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2d\x00\x73\x00\x74\x00\x72\x00\x6f\x00\x6b\x00\x65\x00\x64\x00\x2d\ +\x00\x31\x00\x35\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x1c\ \x08\x8a\x79\x07\ \x00\x61\ \x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\ \x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x08\ +\x08\xc8\x55\xe7\ +\x00\x73\ +\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ \x0b\x07\x57\xa7\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x11\ -\x0c\xa7\xc7\x47\ -\x00\x63\ -\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ -\ -\x00\x0e\ -\x0f\xcb\xd5\xc7\ -\x00\x70\ -\x00\x6c\x00\x75\x00\x73\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x09\ -\x0b\x9e\x89\x07\ -\x00\x63\ -\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x1c\ -\x04\x66\xe1\x67\ -\x00\x63\ -\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\ -\x00\x6c\x00\x65\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x19\ +\x0a\x43\x45\xc7\ +\x00\x61\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x66\x00\x6f\x00\x72\ +\x00\x77\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x12\ -\x08\x79\x97\xe7\ +\x0c\x5e\xd4\xa7\ \x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x61\x00\x6d\x00\x65\x00\x72\x00\x61\x00\x2e\x00\x73\x00\x76\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\ \x00\x67\ -\x00\x11\ -\x0c\xdb\x38\xe7\ +\x00\x17\ +\x07\x87\x48\x27\ \x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\x00\x2d\x00\x6f\x00\x70\ +\x00\x65\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x1d\ +\x06\xec\xf4\xc7\ +\x00\x63\ +\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\ +\x00\x6c\x00\x65\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x11\ +\x01\x60\xbc\x47\ +\x00\x73\ +\x00\x6f\x00\x63\x00\x69\x00\x61\x00\x6c\x00\x2d\x00\x70\x00\x79\x00\x74\x00\x68\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ \ -\x00\x10\ -\x08\xe4\xaf\x47\ -\x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x6f\x00\x6e\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x07\ \x0c\xf8\x5a\x07\ \x00\x65\ \x00\x79\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x12\ +\x08\x55\xef\xc7\ +\x00\x61\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\ +\x00\x67\ +\x00\x08\ +\x0c\xf7\x55\x87\ +\x00\x74\ +\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x19\ +\x0f\xef\x7b\xe7\ +\x00\x61\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2d\x00\x70\x00\x61\x00\x6c\ +\x00\x65\x00\x74\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x10\ +\x04\xa9\x22\xc7\ +\x00\x66\ +\x00\x69\x00\x6c\x00\x6c\x00\x65\x00\x64\x00\x62\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x12\ +\x04\xb2\x21\x47\ +\x00\x61\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\ +\x00\x67\ \x00\x08\ \x08\xf7\x57\x07\ \x00\x67\ \x00\x72\x00\x69\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x10\ -\x0c\x57\x65\x47\ +\x00\x11\ +\x0c\xdb\x38\xe7\ \x00\x61\ -\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x65\x00\x73\x00\x69\x00\x7a\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\ +\x00\x0f\ +\x04\xf2\xa7\x87\ +\x00\x63\ +\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x14\ +\x0f\xa5\xe0\xc7\ +\x00\x6d\ +\x00\x61\x00\x67\x00\x6e\x00\x69\x00\x66\x00\x79\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x67\x00\x6c\x00\x61\x00\x73\x00\x73\x00\x2e\ +\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x05\xa8\x57\x87\ +\x00\x63\ +\x00\x6f\x00\x64\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x01\xca\x6d\x87\ +\x00\x62\ +\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0f\ +\x09\x76\x60\xc7\ +\x00\x63\ +\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x15\ \x0f\xc4\x59\xe7\ \x00\x73\ \x00\x75\x00\x62\x00\x64\x00\x69\x00\x72\x00\x65\x00\x63\x00\x74\x00\x6f\x00\x72\x00\x79\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\ \x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x12\ -\x0c\x5e\xd4\xa7\ -\x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\ -\x00\x67\ -\x00\x08\ -\x08\xc8\x55\xe7\ -\x00\x73\ -\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x10\ -\x08\x89\xfa\x47\ +\x00\x0e\ +\x0f\xcb\xd5\xc7\ +\x00\x70\ +\x00\x6c\x00\x75\x00\x73\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x1c\ +\x04\x66\xe1\x67\ \x00\x63\ -\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6f\x00\x72\x00\x69\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x10\ -\x06\xe3\xaf\xe7\ -\x00\x61\ -\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x68\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\ +\x00\x6c\x00\x65\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0a\ \x0a\xc8\x62\x67\ \x00\x63\ \x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x08\ -\x0c\xf7\x55\x87\ -\x00\x74\ -\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ -\x00\x0d\ -\x05\x20\xce\x87\ -\x00\x6f\ -\x00\x70\x00\x65\x00\x6e\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct_v1 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x02\ -\x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x00\x19\x8d\ -\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x10\x65\ -\x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x37\x6a\ -\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00\x29\x87\ -\x00\x00\x04\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xed\ -\x00\x00\x03\x18\x00\x01\x00\x00\x00\x01\x00\x00\x44\xed\ -\x00\x00\x02\x18\x00\x00\x00\x00\x00\x01\x00\x00\x34\x30\ -\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x57\ -\x00\x00\x06\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x89\xa2\ -\x00\x00\x01\x88\x00\x00\x00\x00\x00\x01\x00\x00\x24\xd9\ -\x00\x00\x03\x62\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x53\ -\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x97\ -\x00\x00\x05\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x34\ +\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x94\ +\x00\x00\x05\x64\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x42\ +\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x00\x19\x83\ +\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x5e\ +\x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x86\xcf\ +\x00\x00\x04\x6e\x00\x01\x00\x00\x00\x01\x00\x00\x62\xf8\ +\x00\x00\x04\x94\x00\x00\x00\x00\x00\x01\x00\x00\x65\x1d\ +\x00\x00\x04\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x6c\xf3\ +\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xa6\ +\x00\x00\x05\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x75\x94\ +\x00\x00\x01\x44\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x04\ +\x00\x00\x02\x46\x00\x00\x00\x00\x00\x01\x00\x00\x32\x88\ +\x00\x00\x01\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x24\x90\ +\x00\x00\x03\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xaa\ +\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x12\x4c\ +\x00\x00\x03\x46\x00\x00\x00\x00\x00\x01\x00\x00\x47\x54\ +\x00\x00\x03\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x07\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x80\ +\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x50\ +\x00\x00\x02\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x56\ +\x00\x00\x02\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x3a\x56\ +\x00\x00\x01\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x88\ +\x00\x00\x04\xbe\x00\x01\x00\x00\x00\x01\x00\x00\x68\x57\ +\x00\x00\x05\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x80\x1a\ +\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x16\x8d\ +\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x40\x6b\ +\x00\x00\x06\x32\x00\x00\x00\x00\x00\x01\x00\x00\x8a\xc8\ +\x00\x00\x02\xce\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xfb\ +\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x07\x70\ +\x00\x00\x02\x20\x00\x00\x00\x00\x00\x01\x00\x00\x30\x05\ +\x00\x00\x03\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x42\xec\ +\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xd1\ +\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x38\ +\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x5c\xad\ +\x00\x00\x03\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x56\x18\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x03\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x47\x12\ -\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x41\x97\ -\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xb1\ -\x00\x00\x04\x78\x00\x00\x00\x00\x00\x01\x00\x00\x62\xe6\ -\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x14\ -\x00\x00\x03\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x20\ -\x00\x00\x05\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x78\x6f\ -\x00\x00\x04\xca\x00\x00\x00\x00\x00\x01\x00\x00\x68\xc7\ -\x00\x00\x05\x04\x00\x01\x00\x00\x00\x01\x00\x00\x6f\x33\ -\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x08\x4d\ -\x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x03\xea\ -\x00\x00\x02\xac\x00\x00\x00\x00\x00\x01\x00\x00\x3f\x16\ -\x00\x00\x05\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x85\x02\ -\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x51\x20\ -\x00\x00\x04\x22\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xdd\ -\x00\x00\x05\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x71\x14\ -\x00\x00\x05\x70\x00\x00\x00\x00\x00\x01\x00\x00\x74\x07\ -\x00\x00\x03\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x54\x90\ -\x00\x00\x04\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x66\x0c\ -\x00\x00\x06\x16\x00\x00\x00\x00\x00\x01\x00\x00\x88\x82\ -\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x6b\x44\ -\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x16\x3d\ -\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x06\xe0\ -\x00\x00\x01\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x11\ -\x00\x00\x05\x40\x00\x00\x00\x00\x00\x01\x00\x00\x73\x97\ -\x00\x00\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x58\xe2\ -\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x00\x39\xeb\ +\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x23\x23\ +\x00\x00\x05\x20\x00\x00\x00\x00\x00\x01\x00\x00\x71\xcc\ +\x00\x00\x05\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x83\x64\ +\x00\x00\x05\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x83\xd4\ +\x00\x00\x04\x36\x00\x00\x00\x00\x00\x01\x00\x00\x5d\xcd\ " qt_resource_struct_v2 = b"\ @@ -2620,88 +2620,88 @@ qt_resource_struct_v2 = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x00\x19\x8d\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x10\x65\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x37\x6a\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x00\x29\x87\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x04\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xed\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x03\x18\x00\x01\x00\x00\x00\x01\x00\x00\x44\xed\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x02\x18\x00\x00\x00\x00\x00\x01\x00\x00\x34\x30\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x57\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x06\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x89\xa2\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x01\x88\x00\x00\x00\x00\x00\x01\x00\x00\x24\xd9\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x03\x62\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x53\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x97\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x05\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x34\ -\x00\x00\x01\x71\x14\x51\x77\x38\ +\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x94\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x05\x64\x00\x00\x00\x00\x00\x01\x00\x00\x7a\x42\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x00\x19\x83\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ +\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x5e\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x86\xcf\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x04\x6e\x00\x01\x00\x00\x00\x01\x00\x00\x62\xf8\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x04\x94\x00\x00\x00\x00\x00\x01\x00\x00\x65\x1d\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x04\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x6c\xf3\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xa6\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x05\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x75\x94\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x01\x44\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x04\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x02\x46\x00\x00\x00\x00\x00\x01\x00\x00\x32\x88\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x01\xa8\x00\x00\x00\x00\x00\x01\x00\x00\x24\x90\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x03\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xaa\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x12\x4c\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x03\x46\x00\x00\x00\x00\x00\x01\x00\x00\x47\x54\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x03\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x07\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ +\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x80\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ +\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x50\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x02\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x56\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x02\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x3a\x56\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x01\xfa\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x88\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x04\xbe\x00\x01\x00\x00\x00\x01\x00\x00\x68\x57\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x05\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x80\x1a\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x16\x8d\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x40\x6b\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ +\x00\x00\x06\x32\x00\x00\x00\x00\x00\x01\x00\x00\x8a\xc8\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x02\xce\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xfb\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x07\x70\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x02\x20\x00\x00\x00\x00\x00\x01\x00\x00\x30\x05\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x03\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x42\xec\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xd1\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x6a\x38\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ +\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x5c\xad\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x03\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x56\x18\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x03\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x47\x12\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x02\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x41\x97\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xb1\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x04\x78\x00\x00\x00\x00\x00\x01\x00\x00\x62\xe6\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x14\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x03\x84\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x20\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x05\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x78\x6f\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x04\xca\x00\x00\x00\x00\x00\x01\x00\x00\x68\xc7\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x05\x04\x00\x01\x00\x00\x00\x01\x00\x00\x6f\x33\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x08\x4d\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x03\xea\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x02\xac\x00\x00\x00\x00\x00\x01\x00\x00\x3f\x16\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x05\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x85\x02\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x51\x20\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x04\x22\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xdd\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x05\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x71\x14\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x05\x70\x00\x00\x00\x00\x00\x01\x00\x00\x74\x07\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x03\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x54\x90\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x04\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x66\x0c\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x06\x16\x00\x00\x00\x00\x00\x01\x00\x00\x88\x82\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x6b\x44\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x16\x3d\ -\x00\x00\x01\x71\x14\x51\x77\x38\ -\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x06\xe0\ -\x00\x00\x01\x71\x14\x51\x77\x37\ -\x00\x00\x01\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x11\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x05\x40\x00\x00\x00\x00\x00\x01\x00\x00\x73\x97\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x58\xe2\ -\x00\x00\x01\x71\x14\x51\x77\x39\ -\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x00\x39\xeb\ -\x00\x00\x01\x71\x14\x51\x77\x38\ +\x00\x00\x01\x77\xb9\x14\x85\x4a\ +\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x23\x23\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ +\x00\x00\x05\x20\x00\x00\x00\x00\x00\x01\x00\x00\x71\xcc\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x05\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x83\x64\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x05\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x83\xd4\ +\x00\x00\x01\x77\xb9\x14\x85\x4b\ +\x00\x00\x04\x36\x00\x00\x00\x00\x00\x01\x00\x00\x5d\xcd\ +\x00\x00\x01\x77\xb9\x14\x85\x49\ " qt_version = [int(v) for v in QtCore.qVersion().split('.')] diff --git a/Master/texmf-dist/asymptote/GUI/setup.py b/Master/texmf-dist/asymptote/GUI/setup.py index d6a4c0d6a78..e49e3468d7f 100755 --- a/Master/texmf-dist/asymptote/GUI/setup.py +++ b/Master/texmf-dist/asymptote/GUI/setup.py @@ -8,6 +8,6 @@ setup( version=xasyVersion.xasyVersion, author="Supakorn Rassameemasmuang, Orest Shardt, and John C. Bowman", description="User interface for Asymptote, a vector graphics language", - url="http://asymptote.sourceforge.net", + url="https://asymptote.sourceforge.io", download_url="https://sourceforge.net/projects/asymptote/" ) diff --git a/Master/texmf-dist/asymptote/GUI/xasy2asy.py b/Master/texmf-dist/asymptote/GUI/xasy2asy.py index 4b2d0274f74..12bccb453cf 100755 --- a/Master/texmf-dist/asymptote/GUI/xasy2asy.py +++ b/Master/texmf-dist/asymptote/GUI/xasy2asy.py @@ -716,7 +716,7 @@ class xasyItem(Qc.QObject): image = Qg.QImage(file) elif fileformat == 'svg': if containsClip: - image = xs.SvgObject(file) + image = xs.SvgObject(self.asyengine.tempDirName+file) else: image = Qs.QSvgRenderer(file) assert image.isValid() @@ -826,7 +826,7 @@ class xasyItem(Qc.QObject): for i in range(len(imageInfos)): box, key, localCount, useClip = imageInfos[i] l, b, r, t = [float(a) for a in box.split()] - name = "{:s}_{:d}.{:s}".format(self.asyengine.tempDirName, i, fileformat) + name = "_{:d}.{:s}".format(i, fileformat) self.imageHandleQueue.put((name, fileformat, (l, -t, r, -b), i, key, localCount, useClip)) @@ -873,12 +873,15 @@ class xasyItem(Qc.QObject): n += 1 - if text == "Error\n": - self.imageHandleQueue.put(("ERROR", fin.readline())) - else: - render() + if raw_text != "Error\n": + if text == "Error\n": + self.imageHandleQueue.put(("ERROR", fin.readline())) + else: + render() - self.asy2psmap = asyTransform(xu.listize(fin.readline().rstrip(),float)) + self.asy2psmap = asyTransform(xu.listize(fin.readline().rstrip(),float)) + else: + self.asy2psmap = identity() self.imageHandleQueue.put((None,)) self.asyfied = True diff --git a/Master/texmf-dist/asymptote/GUI/xasyVersion.py b/Master/texmf-dist/asymptote/GUI/xasyVersion.py index 79882e04daf..c8c71169d3a 100755 --- a/Master/texmf-dist/asymptote/GUI/xasyVersion.py +++ b/Master/texmf-dist/asymptote/GUI/xasyVersion.py @@ -1,2 +1,2 @@ #!/usr/bin/env python3 -xasyVersion = "2.65" +xasyVersion = "2.69" diff --git a/Master/texmf-dist/asymptote/animation.asy b/Master/texmf-dist/asymptote/animation.asy index f12ee75f2ba..1ce89c60e6e 100644 --- a/Master/texmf-dist/asymptote/animation.asy +++ b/Master/texmf-dist/asymptote/animation.asy @@ -30,14 +30,14 @@ struct animation { string prefix; bool global; // If true, use a global scaling for all frames; this requires // extra memory since the actual shipout is deferred until all frames have - // been generated. + // been generated. void operator init(string prefix="", bool global=true) { prefix=replace(stripdirectory(outprefix(prefix))," ","_"); this.prefix=prefix; this.global=global; } - + string basename(string prefix=stripextension(prefix)) { return "_"+prefix; } @@ -57,14 +57,14 @@ struct animation { plain.shipout(name,f,format=format,view=false); files.push(name+"."+format); } - + void add(picture pic=currentpicture, enclosure enclosure=NoBox) { if(global) { ++index; pictures.push(pic.copy()); } else this.shipout(enclosure(pic.fit())); } - + void purge(bool keep=settings.keep) { if(!keep) { for(int i=0; i < files.length; ++i) @@ -130,7 +130,7 @@ struct animation { return s; } - bool pdflatex() + bool pdflatex() { return latex() && pdf(); } @@ -143,13 +143,13 @@ struct animation { if(!pdflatex()) abort("inline pdf animations require -tex pdflatex or -tex xelatex"); if(settings.outformat != "") settings.outformat="pdf"; - + string filename=basename(); string pdfname=filename+".pdf"; if(global) export(filename,enclosure,multipage=multipage); - + if(!keep) { exitfcn currentexitfunction=atexit(); void exitfunction() { diff --git a/Master/texmf-dist/asymptote/asy-keywords.el b/Master/texmf-dist/asymptote/asy-keywords.el index ff2d1e952d1..0310f215c2a 100644 --- a/Master/texmf-dist/asymptote/asy-keywords.el +++ b/Master/texmf-dist/asymptote/asy-keywords.el @@ -2,7 +2,7 @@ ;; This file is automatically generated by asy-list.pl. ;; Changes will be overwritten. ;; -(defvar asy-keywords-version "2.65") +(defvar asy-keywords-version "2.69") (defvar asy-keyword-name '( and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator )) @@ -11,7 +11,7 @@ and controls tension atleast curl if else while for do return break continue str Braid FitResult Label Legend Solution TreeNode abscissa arc arrowhead binarytree binarytreeNode block bool bool3 bounds bqe circle conic coord coordsys cputime ellipse evaluatedpoint file filltype frame grid3 guide horner hsv hyperbola int inversion key light line linefit marginT marker mass node object pair parabola patch path path3 pen picture point position positionedvector projection rational real revolution scaleT scientific segment side simplex slice solution splitface string surface tensionSpecifier ticklocate ticksgridT tickvalues transform transformation tree triangle trilinear triple vector vertex void )) (defvar asy-function-name '( -AND Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo nosetpagesize notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexPhase1 simplexPhase2 simplexStandard simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox toplocation transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans )) +AND Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs abs2 accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isometry isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map mapArray mapTemplate margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexInit simplexPhase1 simplexPhase2 simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox toplocation transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube type uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans )) (defvar asy-variable-name '( -Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding )) +Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RELEASE RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding )) diff --git a/Master/texmf-dist/asymptote/asy-mode.el b/Master/texmf-dist/asymptote/asy-mode.el index c1960e23035..ec3a3746d74 100644 --- a/Master/texmf-dist/asymptote/asy-mode.el +++ b/Master/texmf-dist/asymptote/asy-mode.el @@ -102,7 +102,7 @@ This package has been tested in: This package seems to work with XEmacs 21.4 but not all the features are available (in particular syntax highlighting). -Report bugs to http://asymptote.sourceforge.net +Report bugs to https://github.com/vectorgraphics/asymptote/issues Some variables can be customized: M-x customize-group <RET> asymptote <RET>." diff --git a/Master/texmf-dist/asymptote/babel.asy b/Master/texmf-dist/asymptote/babel.asy index e93dec2a5cb..ada173c8a96 100644 --- a/Master/texmf-dist/asymptote/babel.asy +++ b/Master/texmf-dist/asymptote/babel.asy @@ -1,4 +1,4 @@ -void babel(string s) +void babel(string s) { usepackage("babel",s); } diff --git a/Master/texmf-dist/asymptote/bezulate.asy b/Master/texmf-dist/asymptote/bezulate.asy index 38d35718d4a..e09b86ed25b 100644 --- a/Master/texmf-dist/asymptote/bezulate.asy +++ b/Master/texmf-dist/asymptote/bezulate.asy @@ -1,6 +1,6 @@ // Bezier triangulation routines written by Orest Shardt, 2008. -private real fuzz=sqrtEpsilon; +private real fuzz=1e-6; real duplicateFuzz=1e-3; // Work around font errors. real maxrefinements=10; @@ -106,29 +106,29 @@ void connect(path[] paths, path[] result, path[] patch) //if(direction == 0) // Try a random direction // direction=expi(2pi*unitrand()); //pair start=point(inners[curveIndex],0); - + // find shortest distance between a node on the inner curve and a node // on the outer curve - + real mindist = d; int inner_i = 0; int outer_i = 0; for(int ni = 0; ni < length(inners[curveIndex]); ++ni) - { + { for(int no = 0; no < length(outer); ++no) - { + { real dist = abs(point(inners[curveIndex],ni)-point(outer,no)); if(dist < mindist) - { + { inner_i = ni; outer_i = no; mindist = dist; - } - } - } + } + } + } pair start=point(inners[curveIndex],inner_i); - pair end = point(outer,outer_i); - + pair end = point(outer,outer_i); + // find first intersection of line segment with outer curve //real[][] ints=intersections(start,start+d*direction,outer); real[][] ints=intersections(start,end,outer); @@ -140,7 +140,7 @@ void connect(path[] paths, path[] result, path[] patch) real earliestTime=1; for(int j=0; j < inners.length; ++j) { real[][] ints=intersections(end,start,inners[j]); - + if(ints.length > 0 && ints[0][0] < earliestTime) { earliestTime=ints[0][0]; // time on end--start starttime=ints[0][1]; // time on inner curve @@ -148,8 +148,8 @@ void connect(path[] paths, path[] result, path[] patch) } } start=point(inners[curveIndex],starttime); - - + + bool found_forward = false; real timeoffset_forward = 2; path portion_forward; @@ -162,7 +162,7 @@ void connect(path[] paths, path[] result, path[] patch) point(outer,endtime+timeoffset_forward)) == 2) { portion_forward = subpath(outer,endtime,endtime+timeoffset_forward)--start--cycle; - + found_forward=true; // check if an inner curve is inside the portion for(int k = 0; found_forward && k < inners.length; ++k) @@ -173,7 +173,7 @@ void connect(path[] paths, path[] result, path[] patch) } } } - + bool found_backward = false; real timeoffset_backward = -2; path portion_backward; @@ -197,29 +197,29 @@ void connect(path[] paths, path[] result, path[] patch) real timeoffset; path portion; if(found_forward && !found_backward) - { - timeoffset = timeoffset_forward; - portion = portion_forward; - } - else if(found_backward && !found_forward) - { - timeoffset = timeoffset_backward; - portion = portion_backward; - } - else // assert handles case of neither found - { - if(timeoffset_forward > -timeoffset_backward) { timeoffset = timeoffset_forward; portion = portion_forward; } - else + else if(found_backward && !found_forward) { timeoffset = timeoffset_backward; portion = portion_backward; - } - } - + } + else // assert handles case of neither found + { + if(timeoffset_forward > -timeoffset_backward) + { + timeoffset = timeoffset_forward; + portion = portion_forward; + } + else + { + timeoffset = timeoffset_backward; + portion = portion_backward; + } + } + endtime=min(endtime,endtime+timeoffset); // or go from timeoffset+timeoffset_backward to timeoffset+timeoffset_forward? timeoffset=abs(timeoffset); diff --git a/Master/texmf-dist/asymptote/binarytree.asy b/Master/texmf-dist/asymptote/binarytree.asy index 31e0e3aab61..4906c6ee58d 100644 --- a/Master/texmf-dist/asymptote/binarytree.asy +++ b/Master/texmf-dist/asymptote/binarytree.asy @@ -48,8 +48,8 @@ struct binarytreeNode { int right_span,total_right_span; void update_spans(); - // Get the horizontal span of the tree consisting of the current - // node plus the whole subtree that is rooted at the right child + // Get the horizontal span of the tree consisting of the current + // node plus the whole subtree that is rooted at the right child // (condensed mode) int getTotalRightSpan() { if(spans_calculated == false) { @@ -59,8 +59,8 @@ struct binarytreeNode { return total_right_span; } - // Get the horizontal span of the tree consisting of the current - // node plus the whole subtree that is rooted at the left child + // Get the horizontal span of the tree consisting of the current + // node plus the whole subtree that is rooted at the left child // (condensed mode) int getTotalLeftSpan() { if(spans_calculated == false) { @@ -87,27 +87,27 @@ struct binarytreeNode { return left_span; } - // Update all span figures for this node. + // Update all span figures for this node. // condensed mode) update_spans=new void() { - if(spans_calculated == true) - return; - - left_span=0; - total_left_span=0; - right_span=0; - total_right_span=0; - - if(left != null) { - left_span=left.getTotalRightSpan()+1; - total_left_span=left_span+left.getTotalLeftSpan(); - } - - if(right != null) { - right_span=right.getTotalLeftSpan()+1; - total_right_span=right_span+right.getTotalRightSpan(); - } - spans_calculated=true; + if(spans_calculated == true) + return; + + left_span=0; + total_left_span=0; + right_span=0; + total_right_span=0; + + if(left != null) { + left_span=left.getTotalRightSpan()+1; + total_left_span=left_span+left.getTotalLeftSpan(); + } + + if(right != null) { + right_span=right.getTotalLeftSpan()+1; + total_right_span=right_span+right.getTotalRightSpan(); + } + spans_calculated=true; }; // set the left child of this node @@ -134,20 +134,20 @@ struct binarytreeNode { else return parent.getLevel()+1; } - + // set the children of this binarytreeNode void setChildren(binarytreeNode left, binarytreeNode right) { setLeft(left); setRight(right); } - - // create a new binarytreeNode with key <key> + + // create a new binarytreeNode with key <key> static binarytreeNode binarytreeNode(int key) { binarytreeNode toReturn=new binarytreeNode; toReturn.key=key; return toReturn; } - + // returns the height of the subtree rooted at this node. int getHeight() { if(left == null && right == null) @@ -156,7 +156,7 @@ struct binarytreeNode { return right.getHeight()+1; if(right == null) return left.getHeight()+1; - + return max(left.getHeight(),right.getHeight())+1; } } @@ -175,12 +175,12 @@ object draw(picture pic=currentpicture, binarytreeNode node, pair pos, int height, real minDist, real levelDist, real nodeDiameter, pen p=currentpen, bool condensed=false) { Label label=Label(math((string) node.key),pos); - - binarytreeNode left=node.left; + + binarytreeNode left=node.left; binarytreeNode right=node.right; // return the distance for two nodes at the given <level> when the - // containing tree has height <height> + // containing tree has height <height> // and the minimal distance between two nodes is <minDist> . real getDistance(int level, int height, real minDist) { return(nodeDiameter+minDist)*2^(height-level); @@ -205,15 +205,15 @@ object draw(picture pic=currentpicture, binarytreeNode node, pair pos, // arrow. void deferredDrawNodeConnection(pair parentPos, pair childPos) { pic.add(new void(frame f, transform t) { - pair start,end; - // calculate connection path - transform T=shift(nodeDiameter/2*unit(t*childPos-t*parentPos)); - path arr=(T*t*parentPos)--(inverse(T)*t*childPos); - draw(f,PenMargin(arr,p).g,p,Arrow(5)); - }); + pair start,end; + // calculate connection path + transform T=shift(nodeDiameter/2*unit(t*childPos-t*parentPos)); + path arr=(T*t*parentPos)--(inverse(T)*t*childPos); + draw(f,PenMargin(arr,p).g,p,Arrow(5)); + }); pic.addPoint(parentPos); pic.addPoint(childPos); - } + } if(left != null) { pair childPos; @@ -238,13 +238,13 @@ object draw(picture pic=currentpicture, binarytreeNode node, pair pos, draw(pic,right,childPos,height,minDist,levelDist,nodeDiameter,p,condensed); deferredDrawNodeConnection(pos,childPos); } - + picture obj; draw(obj,circle((0,0),nodeDiameter/2),p); label(obj,label,(0,0),p); - + add(pic,obj,pos); - + return label; } @@ -270,18 +270,18 @@ key nil=key(0,false); struct binarytree { binarytreeNode root; int[] keys; - + // add the given <key> to the tree by searching for its place and // inserting it there. void addKey(int key) { binarytreeNode newNode=binarytreeNode(key); - + if(root == null) { root=newNode; keys.push(key); - return; + return; } - + binarytreeNode n=root; while(n != null) { if(key < n.key) { @@ -303,7 +303,7 @@ struct binarytree { } } } - + // return the height of the tree int getHeight() { if(root == null) @@ -311,7 +311,7 @@ struct binarytree { else return root.getHeight(); } - + // add all given keys to the tree sequentially void addSearchKeys(int[] keys) { for(int i=0; i < keys.length; ++i) { @@ -321,7 +321,7 @@ struct binarytree { addKey(key); } } - + binarytreeNode build(key[] keys, int[] ind) { if(ind[0] >= keys.length) return null; key k=keys[ind[0]]; @@ -369,9 +369,9 @@ void draw(picture pic=currentpicture, binarytree tree, pen p=currentpen, bool condensed=false) { int[] keys=tree.getKeys(); - + // calculate the node diameter so that all keys fit into it - frame f; + frame f; for(int i=0; i < keys.length; ++i) label(f,math(string(keys[i])),p); diff --git a/Master/texmf-dist/asymptote/bsp.asy b/Master/texmf-dist/asymptote/bsp.asy index cf9d7e0781f..526f264a772 100644 --- a/Master/texmf-dist/asymptote/bsp.asy +++ b/Master/texmf-dist/asymptote/bsp.asy @@ -33,13 +33,13 @@ struct face { picture operator cast(face f) {return f.pic;} face operator cast(path3 p) {return face(p);} - + struct line { triple point; triple dir; } -private line intersection(face a, face b) +private line intersection(face a, face b) { line L; L.point=intersectionpoint(a.normal,a.point,b.normal,b.point); @@ -49,12 +49,12 @@ private line intersection(face a, face b) struct half { pair[] left,right; - + // Sort the points in the pair array z according to whether they lie on the // left or right side of the line L in the direction dir passing through P. // Points exactly on L are considered to be on the right side. // Also push any points of intersection of L with the path operator --(... z) - // onto each of the arrays left and right. + // onto each of the arrays left and right. void operator init(pair dir, pair P ... pair[] z) { pair lastz; pair invdir=dir != 0 ? 1/dir : 0; @@ -73,7 +73,7 @@ struct half { } } } - + struct splitface { face back,front; } @@ -84,7 +84,7 @@ splitface split(face a, face cut, projection P) splitface S; void nointersection() { - if(abs(dot(a.point-P.camera,a.normal)) >= + if(abs(dot(a.point-P.camera,a.normal)) >= abs(dot(cut.point-P.camera,cut.normal))) { S.back=a; S.front=null; @@ -113,7 +113,7 @@ splitface split(face a, face cut, projection P) nointersection(); return S; } - + pair point=a.t*project(L.point,P); pair dir=a.t*project(L.point+L.dir,P)-point; pair invdir=dir != 0 ? 1/dir : 0; @@ -122,7 +122,7 @@ splitface split(face a, face cut, projection P) real t=intersect(apoint,P.camera,cut.normal,cut.point); bool rightfront=left ^ (t <= 0 || t >= 1); - + face back=a, front=a.copy(); pair max=max(a.fit); pair min=min(a.fit); @@ -151,7 +151,7 @@ struct bsp bsp back; bsp front; face node; - + // Construct the bsp. void operator init(face[] faces, projection P) { if(faces.length != 0) { @@ -166,7 +166,7 @@ struct bsp this.back=bsp(back,P); } } - + // Draw from back to front. void add(frame f) { if(back != null) back.add(f); @@ -183,22 +183,22 @@ void add(picture pic=currentpicture, face[] faces, face[] Faces=new face[n]; for(int i=0; i < n; ++i) Faces[i]=faces[i].copy(); - + pic.add(new void (frame f, transform t, transform T, - pair m, pair M) { - // Fit all of the pictures so we know their exact sizes. - face[] faces=new face[n]; - for(int i=0; i < n; ++i) { - faces[i]=Faces[i].copy(); - face F=faces[i]; - F.t=t*T*F.pic.T; - F.fit=F.pic.fit(t,T*F.pic.T,m,M); - } - - bsp bsp=bsp(faces,P); - if(bsp != null) bsp.add(f); + pair m, pair M) { + // Fit all of the pictures so we know their exact sizes. + face[] faces=new face[n]; + for(int i=0; i < n; ++i) { + faces[i]=Faces[i].copy(); + face F=faces[i]; + F.t=t*T*F.pic.T; + F.fit=F.pic.fit(t,T*F.pic.T,m,M); + } + + bsp bsp=bsp(faces,P); + if(bsp != null) bsp.add(f); }); - + for(int i=0; i < n; ++i) { picture F=Faces[i].pic; pic.userBox3(F.userMin3(), F.userMax3()); diff --git a/Master/texmf-dist/asymptote/colormap.asy b/Master/texmf-dist/asymptote/colormap.asy index 4b2242d6615..8ab4e420d1f 100644 --- a/Master/texmf-dist/asymptote/colormap.asy +++ b/Master/texmf-dist/asymptote/colormap.asy @@ -10,7 +10,7 @@ // pen[] Palette = wistia.palette() // // There are two types of palettes. For a complete list see below: -// +// // 1) The segmented palettes can be used as // <name>.palette(int NColors=256, real gamma=1.) // NColors are the number of colors in the palette @@ -19,7 +19,7 @@ // 2) The listed palettes can only be used as // <name>.palette() // -// Both functions return pen[] that can be used as a palette in the +// Both functions return pen[] that can be used as a palette in the // module palette. // list of palettes @@ -112,7 +112,7 @@ // SOURCE CODE // private real[] makeMappingArray(int N, triple[] data, real gamma=1.) { - real[] x; + real[] x; real[] y0; real[] y1; @@ -121,13 +121,13 @@ private real[] makeMappingArray(int N, triple[] data, real gamma=1.) { y0.push(data[i].y); y1.push(data[i].z); }; - + x = x*(N-1); - real[] lut = new real[N]; + real[] lut = new real[N]; real[] xind = (N - 1) * uniform(0, 1, N-1) ** gamma; int[] ind = map(new int(real xi) {return search(x, xi);}, xind); ind = ind[1:N-1]; // note that the index is shifted from python - + real[] dist = (xind[1:N-1] - x[ind])/(x[ind+1] - x[ind]); lut[1:N-1] = dist * (y0[ind+1] - y1[ind]) + y1[ind]; @@ -153,9 +153,9 @@ struct seg_data { real[] green = makeMappingArray(NColors, this.g, gamma); real[] blue = makeMappingArray(NColors, this.b, gamma); - pen[] pal = - sequence(new pen(int i) {return rgb(red[i], green[i], blue[i]);}, - NColors); + pen[] pal = + sequence(new pen(int i) {return rgb(red[i], green[i], blue[i]);}, + NColors); return pal; } @@ -174,3717 +174,3717 @@ struct list_data { // DATA // list_data Accent = list_data(new pen[] { - rgb (0.4980392156862745, 0.788235294117647, 0.4980392156862745) , - rgb (0.7450980392156863, 0.6823529411764706, 0.8313725490196079) , - rgb (0.9921568627450981, 0.7529411764705882, 0.5254901960784314) , - rgb (1.0, 1.0, 0.6) , - rgb (0.2196078431372549, 0.4235294117647059, 0.6901960784313725) , - rgb (0.9411764705882353, 0.00784313725490196, 0.4980392156862745) , - rgb (0.7490196078431373, 0.3568627450980392, 0.09019607843137253) , - rgb (0.4, 0.4, 0.4) -}); + rgb (0.4980392156862745, 0.788235294117647, 0.4980392156862745) , + rgb (0.7450980392156863, 0.6823529411764706, 0.8313725490196079) , + rgb (0.9921568627450981, 0.7529411764705882, 0.5254901960784314) , + rgb (1.0, 1.0, 0.6) , + rgb (0.2196078431372549, 0.4235294117647059, 0.6901960784313725) , + rgb (0.9411764705882353, 0.00784313725490196, 0.4980392156862745) , + rgb (0.7490196078431373, 0.3568627450980392, 0.09019607843137253) , + rgb (0.4, 0.4, 0.4) + }); list_data Blues = list_data(new pen[] { - rgb (0.9686274509803922, 0.984313725490196, 1.0) , - rgb (0.8705882352941177, 0.9215686274509803, 0.9686274509803922) , - rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) , - rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) , - rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) , - rgb (0.25882352941176473, 0.5725490196078431, 0.7764705882352941) , - rgb (0.12941176470588237, 0.44313725490196076, 0.7098039215686275) , - rgb (0.03137254901960784, 0.3176470588235294, 0.611764705882353) , - rgb (0.03137254901960784, 0.18823529411764706, 0.4196078431372549) -}); + rgb (0.9686274509803922, 0.984313725490196, 1.0) , + rgb (0.8705882352941177, 0.9215686274509803, 0.9686274509803922) , + rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) , + rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) , + rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) , + rgb (0.25882352941176473, 0.5725490196078431, 0.7764705882352941) , + rgb (0.12941176470588237, 0.44313725490196076, 0.7098039215686275) , + rgb (0.03137254901960784, 0.3176470588235294, 0.611764705882353) , + rgb (0.03137254901960784, 0.18823529411764706, 0.4196078431372549) + }); list_data BrBG = list_data(new pen[] { - rgb (0.32941176470588235, 0.18823529411764706, 0.0196078431372549) , - rgb (0.5490196078431373, 0.3176470588235294, 0.0392156862745098) , - rgb (0.7490196078431373, 0.5058823529411764, 0.17647058823529413) , - rgb (0.8745098039215686, 0.7607843137254902, 0.49019607843137253) , - rgb (0.9647058823529412, 0.9098039215686274, 0.7647058823529411) , - rgb (0.9607843137254902, 0.9607843137254902, 0.9607843137254902) , - rgb (0.7803921568627451, 0.9176470588235294, 0.8980392156862745) , - rgb (0.5019607843137255, 0.803921568627451, 0.7568627450980392) , - rgb (0.20784313725490197, 0.592156862745098, 0.5607843137254902) , - rgb (0.00392156862745098, 0.4, 0.3686274509803922) , - rgb (0.0, 0.23529411764705882, 0.18823529411764706) -}); + rgb (0.32941176470588235, 0.18823529411764706, 0.0196078431372549) , + rgb (0.5490196078431373, 0.3176470588235294, 0.0392156862745098) , + rgb (0.7490196078431373, 0.5058823529411764, 0.17647058823529413) , + rgb (0.8745098039215686, 0.7607843137254902, 0.49019607843137253) , + rgb (0.9647058823529412, 0.9098039215686274, 0.7647058823529411) , + rgb (0.9607843137254902, 0.9607843137254902, 0.9607843137254902) , + rgb (0.7803921568627451, 0.9176470588235294, 0.8980392156862745) , + rgb (0.5019607843137255, 0.803921568627451, 0.7568627450980392) , + rgb (0.20784313725490197, 0.592156862745098, 0.5607843137254902) , + rgb (0.00392156862745098, 0.4, 0.3686274509803922) , + rgb (0.0, 0.23529411764705882, 0.18823529411764706) + }); list_data BuGn = list_data(new pen[] { - rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) , - rgb (0.8980392156862745, 0.9607843137254902, 0.9764705882352941) , - rgb (0.8, 0.9254901960784314, 0.9019607843137255) , - rgb (0.6, 0.8470588235294118, 0.788235294117647) , - rgb (0.4, 0.7607843137254902, 0.6431372549019608) , - rgb (0.2549019607843137, 0.6823529411764706, 0.4627450980392157) , - rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) , - rgb (0.0, 0.42745098039215684, 0.17254901960784313) , - rgb (0.0, 0.26666666666666666, 0.10588235294117647) -}); + rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) , + rgb (0.8980392156862745, 0.9607843137254902, 0.9764705882352941) , + rgb (0.8, 0.9254901960784314, 0.9019607843137255) , + rgb (0.6, 0.8470588235294118, 0.788235294117647) , + rgb (0.4, 0.7607843137254902, 0.6431372549019608) , + rgb (0.2549019607843137, 0.6823529411764706, 0.4627450980392157) , + rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) , + rgb (0.0, 0.42745098039215684, 0.17254901960784313) , + rgb (0.0, 0.26666666666666666, 0.10588235294117647) + }); list_data BuPu = list_data(new pen[] { - rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) , - rgb (0.8784313725490196, 0.9254901960784314, 0.9568627450980393) , - rgb (0.7490196078431373, 0.8274509803921568, 0.9019607843137255) , - rgb (0.6196078431372549, 0.7372549019607844, 0.8549019607843137) , - rgb (0.5490196078431373, 0.5882352941176471, 0.7764705882352941) , - rgb (0.5490196078431373, 0.4196078431372549, 0.6941176470588235) , - rgb (0.5333333333333333, 0.2549019607843137, 0.615686274509804) , - rgb (0.5058823529411764, 0.05882352941176471, 0.48627450980392156) , - rgb (0.30196078431372547, 0.0, 0.29411764705882354) -}); + rgb (0.9686274509803922, 0.9882352941176471, 0.9921568627450981) , + rgb (0.8784313725490196, 0.9254901960784314, 0.9568627450980393) , + rgb (0.7490196078431373, 0.8274509803921568, 0.9019607843137255) , + rgb (0.6196078431372549, 0.7372549019607844, 0.8549019607843137) , + rgb (0.5490196078431373, 0.5882352941176471, 0.7764705882352941) , + rgb (0.5490196078431373, 0.4196078431372549, 0.6941176470588235) , + rgb (0.5333333333333333, 0.2549019607843137, 0.615686274509804) , + rgb (0.5058823529411764, 0.05882352941176471, 0.48627450980392156) , + rgb (0.30196078431372547, 0.0, 0.29411764705882354) + }); seg_data CMRmap = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.125, 0.15, 0.15) , - (0.25, 0.3, 0.3) , - (0.375, 0.6, 0.6) , - (0.5, 1.0, 1.0) , - (0.625, 0.9, 0.9) , - (0.75, 0.9, 0.9) , - (0.875, 0.9, 0.9) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.125, 0.15, 0.15) , - (0.25, 0.15, 0.15) , - (0.375, 0.2, 0.2) , - (0.5, 0.25, 0.25) , - (0.625, 0.5, 0.5) , - (0.75, 0.75, 0.75) , - (0.875, 0.9, 0.9) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.125, 0.5, 0.5) , - (0.25, 0.75, 0.75) , - (0.375, 0.5, 0.5) , - (0.5, 0.15, 0.15) , - (0.625, 0.0, 0.0) , - (0.75, 0.1, 0.1) , - (0.875, 0.5, 0.5) , - (1.0, 1.0, 1.0) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.125, 0.15, 0.15) , + (0.25, 0.3, 0.3) , + (0.375, 0.6, 0.6) , + (0.5, 1.0, 1.0) , + (0.625, 0.9, 0.9) , + (0.75, 0.9, 0.9) , + (0.875, 0.9, 0.9) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.125, 0.15, 0.15) , + (0.25, 0.15, 0.15) , + (0.375, 0.2, 0.2) , + (0.5, 0.25, 0.25) , + (0.625, 0.5, 0.5) , + (0.75, 0.75, 0.75) , + (0.875, 0.9, 0.9) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.125, 0.5, 0.5) , + (0.25, 0.75, 0.75) , + (0.375, 0.5, 0.5) , + (0.5, 0.15, 0.15) , + (0.625, 0.0, 0.0) , + (0.75, 0.1, 0.1) , + (0.875, 0.5, 0.5) , + (1.0, 1.0, 1.0) + } + ); list_data Dark2 = list_data(new pen[] { - rgb (0.10588235294117647, 0.6196078431372549, 0.4666666666666667) , - rgb (0.8509803921568627, 0.37254901960784315, 0.00784313725490196) , - rgb (0.4588235294117647, 0.4392156862745098, 0.7019607843137254) , - rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) , - rgb (0.4, 0.6509803921568628, 0.11764705882352941) , - rgb (0.9019607843137255, 0.6705882352941176, 0.00784313725490196) , - rgb (0.6509803921568628, 0.4627450980392157, 0.11372549019607843) , - rgb (0.4, 0.4, 0.4) -}); + rgb (0.10588235294117647, 0.6196078431372549, 0.4666666666666667) , + rgb (0.8509803921568627, 0.37254901960784315, 0.00784313725490196) , + rgb (0.4588235294117647, 0.4392156862745098, 0.7019607843137254) , + rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) , + rgb (0.4, 0.6509803921568628, 0.11764705882352941) , + rgb (0.9019607843137255, 0.6705882352941176, 0.00784313725490196) , + rgb (0.6509803921568628, 0.4627450980392157, 0.11372549019607843) , + rgb (0.4, 0.4, 0.4) + }); list_data GnBu = list_data(new pen[] { - rgb (0.9686274509803922, 0.9882352941176471, 0.9411764705882353) , - rgb (0.8784313725490196, 0.9529411764705882, 0.8588235294117647) , - rgb (0.8, 0.9215686274509803, 0.7725490196078432) , - rgb (0.6588235294117647, 0.8666666666666667, 0.7098039215686275) , - rgb (0.4823529411764706, 0.8, 0.7686274509803922) , - rgb (0.3058823529411765, 0.7019607843137254, 0.8274509803921568) , - rgb (0.16862745098039217, 0.5490196078431373, 0.7450980392156863) , - rgb (0.03137254901960784, 0.40784313725490196, 0.6745098039215687) , - rgb (0.03137254901960784, 0.25098039215686274, 0.5058823529411764) -}); + rgb (0.9686274509803922, 0.9882352941176471, 0.9411764705882353) , + rgb (0.8784313725490196, 0.9529411764705882, 0.8588235294117647) , + rgb (0.8, 0.9215686274509803, 0.7725490196078432) , + rgb (0.6588235294117647, 0.8666666666666667, 0.7098039215686275) , + rgb (0.4823529411764706, 0.8, 0.7686274509803922) , + rgb (0.3058823529411765, 0.7019607843137254, 0.8274509803921568) , + rgb (0.16862745098039217, 0.5490196078431373, 0.7450980392156863) , + rgb (0.03137254901960784, 0.40784313725490196, 0.6745098039215687) , + rgb (0.03137254901960784, 0.25098039215686274, 0.5058823529411764) + }); list_data Greens = list_data(new pen[] { - rgb (0.9686274509803922, 0.9882352941176471, 0.9607843137254902) , - rgb (0.8980392156862745, 0.9607843137254902, 0.8784313725490196) , - rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) , - rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) , - rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) , - rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) , - rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) , - rgb (0.0, 0.42745098039215684, 0.17254901960784313) , - rgb (0.0, 0.26666666666666666, 0.10588235294117647) -}); + rgb (0.9686274509803922, 0.9882352941176471, 0.9607843137254902) , + rgb (0.8980392156862745, 0.9607843137254902, 0.8784313725490196) , + rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) , + rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) , + rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) , + rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) , + rgb (0.13725490196078433, 0.5450980392156862, 0.27058823529411763) , + rgb (0.0, 0.42745098039215684, 0.17254901960784313) , + rgb (0.0, 0.26666666666666666, 0.10588235294117647) + }); list_data Greys = list_data(new pen[] { - rgb (1.0, 1.0, 1.0) , - rgb (0.9411764705882353, 0.9411764705882353, 0.9411764705882353) , - rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) , - rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) , - rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) , - rgb (0.45098039215686275, 0.45098039215686275, 0.45098039215686275) , - rgb (0.3215686274509804, 0.3215686274509804, 0.3215686274509804) , - rgb (0.1450980392156863, 0.1450980392156863, 0.1450980392156863) , - rgb (0.0, 0.0, 0.0) -}); + rgb (1.0, 1.0, 1.0) , + rgb (0.9411764705882353, 0.9411764705882353, 0.9411764705882353) , + rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) , + rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) , + rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) , + rgb (0.45098039215686275, 0.45098039215686275, 0.45098039215686275) , + rgb (0.3215686274509804, 0.3215686274509804, 0.3215686274509804) , + rgb (0.1450980392156863, 0.1450980392156863, 0.1450980392156863) , + rgb (0.0, 0.0, 0.0) + }); list_data OrRd = list_data(new pen[] { - rgb (1.0, 0.9686274509803922, 0.9254901960784314) , - rgb (0.996078431372549, 0.9098039215686274, 0.7843137254901961) , - rgb (0.9921568627450981, 0.8313725490196079, 0.6196078431372549) , - rgb (0.9921568627450981, 0.7333333333333333, 0.5176470588235295) , - rgb (0.9882352941176471, 0.5529411764705883, 0.34901960784313724) , - rgb (0.9372549019607843, 0.396078431372549, 0.2823529411764706) , - rgb (0.8431372549019608, 0.18823529411764706, 0.12156862745098039) , - rgb (0.7019607843137254, 0.0, 0.0) , - rgb (0.4980392156862745, 0.0, 0.0) -}); + rgb (1.0, 0.9686274509803922, 0.9254901960784314) , + rgb (0.996078431372549, 0.9098039215686274, 0.7843137254901961) , + rgb (0.9921568627450981, 0.8313725490196079, 0.6196078431372549) , + rgb (0.9921568627450981, 0.7333333333333333, 0.5176470588235295) , + rgb (0.9882352941176471, 0.5529411764705883, 0.34901960784313724) , + rgb (0.9372549019607843, 0.396078431372549, 0.2823529411764706) , + rgb (0.8431372549019608, 0.18823529411764706, 0.12156862745098039) , + rgb (0.7019607843137254, 0.0, 0.0) , + rgb (0.4980392156862745, 0.0, 0.0) + }); list_data Oranges = list_data(new pen[] { - rgb (1.0, 0.9607843137254902, 0.9215686274509803) , - rgb (0.996078431372549, 0.9019607843137255, 0.807843137254902) , - rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) , - rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) , - rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) , - rgb (0.9450980392156862, 0.4117647058823529, 0.07450980392156863) , - rgb (0.8509803921568627, 0.2823529411764706, 0.00392156862745098) , - rgb (0.6509803921568628, 0.21176470588235294, 0.01176470588235294) , - rgb (0.4980392156862745, 0.15294117647058825, 0.01568627450980392) -}); + rgb (1.0, 0.9607843137254902, 0.9215686274509803) , + rgb (0.996078431372549, 0.9019607843137255, 0.807843137254902) , + rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) , + rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) , + rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) , + rgb (0.9450980392156862, 0.4117647058823529, 0.07450980392156863) , + rgb (0.8509803921568627, 0.2823529411764706, 0.00392156862745098) , + rgb (0.6509803921568628, 0.21176470588235294, 0.01176470588235294) , + rgb (0.4980392156862745, 0.15294117647058825, 0.01568627450980392) + }); list_data PRGn = list_data(new pen[] { - rgb (0.25098039215686274, 0.0, 0.29411764705882354) , - rgb (0.4627450980392157, 0.16470588235294117, 0.5137254901960784) , - rgb (0.6, 0.4392156862745098, 0.6705882352941176) , - rgb (0.7607843137254902, 0.6470588235294118, 0.8117647058823529) , - rgb (0.9058823529411765, 0.8313725490196079, 0.9098039215686274) , - rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , - rgb (0.8509803921568627, 0.9411764705882353, 0.8274509803921568) , - rgb (0.6509803921568628, 0.8588235294117647, 0.6274509803921569) , - rgb (0.35294117647058826, 0.6823529411764706, 0.3803921568627451) , - rgb (0.10588235294117647, 0.47058823529411764, 0.21568627450980393) , - rgb (0.0, 0.26666666666666666, 0.10588235294117647) -}); + rgb (0.25098039215686274, 0.0, 0.29411764705882354) , + rgb (0.4627450980392157, 0.16470588235294117, 0.5137254901960784) , + rgb (0.6, 0.4392156862745098, 0.6705882352941176) , + rgb (0.7607843137254902, 0.6470588235294118, 0.8117647058823529) , + rgb (0.9058823529411765, 0.8313725490196079, 0.9098039215686274) , + rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , + rgb (0.8509803921568627, 0.9411764705882353, 0.8274509803921568) , + rgb (0.6509803921568628, 0.8588235294117647, 0.6274509803921569) , + rgb (0.35294117647058826, 0.6823529411764706, 0.3803921568627451) , + rgb (0.10588235294117647, 0.47058823529411764, 0.21568627450980393) , + rgb (0.0, 0.26666666666666666, 0.10588235294117647) + }); list_data Paired = list_data(new pen[] { - rgb (0.6509803921568628, 0.807843137254902, 0.8901960784313725) , - rgb (0.12156862745098039, 0.47058823529411764, 0.7058823529411765) , - rgb (0.6980392156862745, 0.8745098039215686, 0.5411764705882353) , - rgb (0.2, 0.6274509803921569, 0.17254901960784313) , - rgb (0.984313725490196, 0.6039215686274509, 0.6) , - rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) , - rgb (0.9921568627450981, 0.7490196078431373, 0.43529411764705883) , - rgb (1.0, 0.4980392156862745, 0.0) , - rgb (0.792156862745098, 0.6980392156862745, 0.8392156862745098) , - rgb (0.41568627450980394, 0.23921568627450981, 0.6039215686274509) , - rgb (1.0, 1.0, 0.6) , - rgb (0.6941176470588235, 0.34901960784313724, 0.1568627450980392) -}); + rgb (0.6509803921568628, 0.807843137254902, 0.8901960784313725) , + rgb (0.12156862745098039, 0.47058823529411764, 0.7058823529411765) , + rgb (0.6980392156862745, 0.8745098039215686, 0.5411764705882353) , + rgb (0.2, 0.6274509803921569, 0.17254901960784313) , + rgb (0.984313725490196, 0.6039215686274509, 0.6) , + rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) , + rgb (0.9921568627450981, 0.7490196078431373, 0.43529411764705883) , + rgb (1.0, 0.4980392156862745, 0.0) , + rgb (0.792156862745098, 0.6980392156862745, 0.8392156862745098) , + rgb (0.41568627450980394, 0.23921568627450981, 0.6039215686274509) , + rgb (1.0, 1.0, 0.6) , + rgb (0.6941176470588235, 0.34901960784313724, 0.1568627450980392) + }); list_data Pastel1 = list_data(new pen[] { - rgb (0.984313725490196, 0.7058823529411765, 0.6823529411764706) , - rgb (0.7019607843137254, 0.803921568627451, 0.8901960784313725) , - rgb (0.8, 0.9215686274509803, 0.7725490196078432) , - rgb (0.8705882352941177, 0.796078431372549, 0.8941176470588236) , - rgb (0.996078431372549, 0.8509803921568627, 0.6509803921568628) , - rgb (1.0, 1.0, 0.8) , - rgb (0.8980392156862745, 0.8470588235294118, 0.7411764705882353) , - rgb (0.9921568627450981, 0.8549019607843137, 0.9254901960784314) , - rgb (0.9490196078431372, 0.9490196078431372, 0.9490196078431372) -}); + rgb (0.984313725490196, 0.7058823529411765, 0.6823529411764706) , + rgb (0.7019607843137254, 0.803921568627451, 0.8901960784313725) , + rgb (0.8, 0.9215686274509803, 0.7725490196078432) , + rgb (0.8705882352941177, 0.796078431372549, 0.8941176470588236) , + rgb (0.996078431372549, 0.8509803921568627, 0.6509803921568628) , + rgb (1.0, 1.0, 0.8) , + rgb (0.8980392156862745, 0.8470588235294118, 0.7411764705882353) , + rgb (0.9921568627450981, 0.8549019607843137, 0.9254901960784314) , + rgb (0.9490196078431372, 0.9490196078431372, 0.9490196078431372) + }); list_data Pastel2 = list_data(new pen[] { - rgb (0.7019607843137254, 0.8862745098039215, 0.803921568627451) , - rgb (0.9921568627450981, 0.803921568627451, 0.6745098039215687) , - rgb (0.796078431372549, 0.8352941176470589, 0.9098039215686274) , - rgb (0.9568627450980393, 0.792156862745098, 0.8941176470588236) , - rgb (0.9019607843137255, 0.9607843137254902, 0.788235294117647) , - rgb (1.0, 0.9490196078431372, 0.6823529411764706) , - rgb (0.9450980392156862, 0.8862745098039215, 0.8) , - rgb (0.8, 0.8, 0.8) -}); + rgb (0.7019607843137254, 0.8862745098039215, 0.803921568627451) , + rgb (0.9921568627450981, 0.803921568627451, 0.6745098039215687) , + rgb (0.796078431372549, 0.8352941176470589, 0.9098039215686274) , + rgb (0.9568627450980393, 0.792156862745098, 0.8941176470588236) , + rgb (0.9019607843137255, 0.9607843137254902, 0.788235294117647) , + rgb (1.0, 0.9490196078431372, 0.6823529411764706) , + rgb (0.9450980392156862, 0.8862745098039215, 0.8) , + rgb (0.8, 0.8, 0.8) + }); list_data PiYG = list_data(new pen[] { - rgb (0.5568627450980392, 0.00392156862745098, 0.3215686274509804) , - rgb (0.7725490196078432, 0.10588235294117647, 0.49019607843137253) , - rgb (0.8705882352941177, 0.4666666666666667, 0.6823529411764706) , - rgb (0.9450980392156862, 0.7137254901960784, 0.8549019607843137) , - rgb (0.9921568627450981, 0.8784313725490196, 0.9372549019607843) , - rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , - rgb (0.9019607843137255, 0.9607843137254902, 0.8156862745098039) , - rgb (0.7215686274509804, 0.8823529411764706, 0.5254901960784314) , - rgb (0.4980392156862745, 0.7372549019607844, 0.2549019607843137) , - rgb (0.30196078431372547, 0.5725490196078431, 0.12941176470588237) , - rgb (0.15294117647058825, 0.39215686274509803, 0.09803921568627451) -}); + rgb (0.5568627450980392, 0.00392156862745098, 0.3215686274509804) , + rgb (0.7725490196078432, 0.10588235294117647, 0.49019607843137253) , + rgb (0.8705882352941177, 0.4666666666666667, 0.6823529411764706) , + rgb (0.9450980392156862, 0.7137254901960784, 0.8549019607843137) , + rgb (0.9921568627450981, 0.8784313725490196, 0.9372549019607843) , + rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , + rgb (0.9019607843137255, 0.9607843137254902, 0.8156862745098039) , + rgb (0.7215686274509804, 0.8823529411764706, 0.5254901960784314) , + rgb (0.4980392156862745, 0.7372549019607844, 0.2549019607843137) , + rgb (0.30196078431372547, 0.5725490196078431, 0.12941176470588237) , + rgb (0.15294117647058825, 0.39215686274509803, 0.09803921568627451) + }); list_data PuBuGn = list_data(new pen[] { - rgb (1.0, 0.9686274509803922, 0.984313725490196) , - rgb (0.9254901960784314, 0.8862745098039215, 0.9411764705882353) , - rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) , - rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) , - rgb (0.403921568627451, 0.6627450980392157, 0.8117647058823529) , - rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) , - rgb (0.00784313725490196, 0.5058823529411764, 0.5411764705882353) , - rgb (0.00392156862745098, 0.4235294117647059, 0.34901960784313724) , - rgb (0.00392156862745098, 0.27450980392156865, 0.21176470588235294) -}); + rgb (1.0, 0.9686274509803922, 0.984313725490196) , + rgb (0.9254901960784314, 0.8862745098039215, 0.9411764705882353) , + rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) , + rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) , + rgb (0.403921568627451, 0.6627450980392157, 0.8117647058823529) , + rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) , + rgb (0.00784313725490196, 0.5058823529411764, 0.5411764705882353) , + rgb (0.00392156862745098, 0.4235294117647059, 0.34901960784313724) , + rgb (0.00392156862745098, 0.27450980392156865, 0.21176470588235294) + }); list_data PuBu = list_data(new pen[] { - rgb (1.0, 0.9686274509803922, 0.984313725490196) , - rgb (0.9254901960784314, 0.9058823529411765, 0.9490196078431372) , - rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) , - rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) , - rgb (0.4549019607843137, 0.6627450980392157, 0.8117647058823529) , - rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) , - rgb (0.0196078431372549, 0.4392156862745098, 0.6901960784313725) , - rgb (0.01568627450980392, 0.35294117647058826, 0.5529411764705883) , - rgb (0.00784313725490196, 0.2196078431372549, 0.34509803921568627) -}); + rgb (1.0, 0.9686274509803922, 0.984313725490196) , + rgb (0.9254901960784314, 0.9058823529411765, 0.9490196078431372) , + rgb (0.8156862745098039, 0.8196078431372549, 0.9019607843137255) , + rgb (0.6509803921568628, 0.7411764705882353, 0.8588235294117647) , + rgb (0.4549019607843137, 0.6627450980392157, 0.8117647058823529) , + rgb (0.21176470588235294, 0.5647058823529412, 0.7529411764705882) , + rgb (0.0196078431372549, 0.4392156862745098, 0.6901960784313725) , + rgb (0.01568627450980392, 0.35294117647058826, 0.5529411764705883) , + rgb (0.00784313725490196, 0.2196078431372549, 0.34509803921568627) + }); list_data PuOr = list_data(new pen[] { - rgb (0.4980392156862745, 0.23137254901960785, 0.03137254901960784) , - rgb (0.7019607843137254, 0.34509803921568627, 0.02352941176470588) , - rgb (0.8784313725490196, 0.5098039215686274, 0.0784313725490196) , - rgb (0.9921568627450981, 0.7215686274509804, 0.38823529411764707) , - rgb (0.996078431372549, 0.8784313725490196, 0.7137254901960784) , - rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , - rgb (0.8470588235294118, 0.8549019607843137, 0.9215686274509803) , - rgb (0.6980392156862745, 0.6705882352941176, 0.8235294117647058) , - rgb (0.5019607843137255, 0.45098039215686275, 0.6745098039215687) , - rgb (0.32941176470588235, 0.15294117647058825, 0.5333333333333333) , - rgb (0.17647058823529413, 0.0, 0.29411764705882354) -}); + rgb (0.4980392156862745, 0.23137254901960785, 0.03137254901960784) , + rgb (0.7019607843137254, 0.34509803921568627, 0.02352941176470588) , + rgb (0.8784313725490196, 0.5098039215686274, 0.0784313725490196) , + rgb (0.9921568627450981, 0.7215686274509804, 0.38823529411764707) , + rgb (0.996078431372549, 0.8784313725490196, 0.7137254901960784) , + rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , + rgb (0.8470588235294118, 0.8549019607843137, 0.9215686274509803) , + rgb (0.6980392156862745, 0.6705882352941176, 0.8235294117647058) , + rgb (0.5019607843137255, 0.45098039215686275, 0.6745098039215687) , + rgb (0.32941176470588235, 0.15294117647058825, 0.5333333333333333) , + rgb (0.17647058823529413, 0.0, 0.29411764705882354) + }); list_data PuRd = list_data(new pen[] { - rgb (0.9686274509803922, 0.9568627450980393, 0.9764705882352941) , - rgb (0.9058823529411765, 0.8823529411764706, 0.9372549019607843) , - rgb (0.8313725490196079, 0.7254901960784313, 0.8549019607843137) , - rgb (0.788235294117647, 0.5803921568627451, 0.7803921568627451) , - rgb (0.8745098039215686, 0.396078431372549, 0.6901960784313725) , - rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) , - rgb (0.807843137254902, 0.07058823529411765, 0.33725490196078434) , - rgb (0.596078431372549, 0.0, 0.2627450980392157) , - rgb (0.403921568627451, 0.0, 0.12156862745098039) -}); + rgb (0.9686274509803922, 0.9568627450980393, 0.9764705882352941) , + rgb (0.9058823529411765, 0.8823529411764706, 0.9372549019607843) , + rgb (0.8313725490196079, 0.7254901960784313, 0.8549019607843137) , + rgb (0.788235294117647, 0.5803921568627451, 0.7803921568627451) , + rgb (0.8745098039215686, 0.396078431372549, 0.6901960784313725) , + rgb (0.9058823529411765, 0.1607843137254902, 0.5411764705882353) , + rgb (0.807843137254902, 0.07058823529411765, 0.33725490196078434) , + rgb (0.596078431372549, 0.0, 0.2627450980392157) , + rgb (0.403921568627451, 0.0, 0.12156862745098039) + }); list_data Purples = list_data(new pen[] { - rgb (0.9882352941176471, 0.984313725490196, 0.9921568627450981) , - rgb (0.9372549019607843, 0.9294117647058824, 0.9607843137254902) , - rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) , - rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) , - rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) , - rgb (0.5019607843137255, 0.49019607843137253, 0.7294117647058823) , - rgb (0.41568627450980394, 0.3176470588235294, 0.6392156862745098) , - rgb (0.32941176470588235, 0.15294117647058825, 0.5607843137254902) , - rgb (0.24705882352941178, 0.0, 0.49019607843137253) -}); + rgb (0.9882352941176471, 0.984313725490196, 0.9921568627450981) , + rgb (0.9372549019607843, 0.9294117647058824, 0.9607843137254902) , + rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) , + rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) , + rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) , + rgb (0.5019607843137255, 0.49019607843137253, 0.7294117647058823) , + rgb (0.41568627450980394, 0.3176470588235294, 0.6392156862745098) , + rgb (0.32941176470588235, 0.15294117647058825, 0.5607843137254902) , + rgb (0.24705882352941178, 0.0, 0.49019607843137253) + }); list_data RdBu = list_data(new pen[] { - rgb (0.403921568627451, 0.0, 0.12156862745098039) , - rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) , - rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) , - rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) , - rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) , - rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , - rgb (0.8196078431372549, 0.8980392156862745, 0.9411764705882353) , - rgb (0.5725490196078431, 0.7725490196078432, 0.8705882352941177) , - rgb (0.2627450980392157, 0.5764705882352941, 0.7647058823529411) , - rgb (0.12941176470588237, 0.4, 0.6745098039215687) , - rgb (0.0196078431372549, 0.18823529411764706, 0.3803921568627451) -}); + rgb (0.403921568627451, 0.0, 0.12156862745098039) , + rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) , + rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) , + rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) , + rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) , + rgb (0.9686274509803922, 0.9686274509803922, 0.9686274509803922) , + rgb (0.8196078431372549, 0.8980392156862745, 0.9411764705882353) , + rgb (0.5725490196078431, 0.7725490196078432, 0.8705882352941177) , + rgb (0.2627450980392157, 0.5764705882352941, 0.7647058823529411) , + rgb (0.12941176470588237, 0.4, 0.6745098039215687) , + rgb (0.0196078431372549, 0.18823529411764706, 0.3803921568627451) + }); list_data RdGy = list_data(new pen[] { - rgb (0.403921568627451, 0.0, 0.12156862745098039) , - rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) , - rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) , - rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) , - rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) , - rgb (1.0, 1.0, 1.0) , - rgb (0.8784313725490196, 0.8784313725490196, 0.8784313725490196) , - rgb (0.7294117647058823, 0.7294117647058823, 0.7294117647058823) , - rgb (0.5294117647058824, 0.5294117647058824, 0.5294117647058824) , - rgb (0.30196078431372547, 0.30196078431372547, 0.30196078431372547) , - rgb (0.10196078431372549, 0.10196078431372549, 0.10196078431372549) -}); + rgb (0.403921568627451, 0.0, 0.12156862745098039) , + rgb (0.6980392156862745, 0.09411764705882353, 0.16862745098039217) , + rgb (0.8392156862745098, 0.3764705882352941, 0.30196078431372547) , + rgb (0.9568627450980393, 0.6470588235294118, 0.5098039215686274) , + rgb (0.9921568627450981, 0.8588235294117647, 0.7803921568627451) , + rgb (1.0, 1.0, 1.0) , + rgb (0.8784313725490196, 0.8784313725490196, 0.8784313725490196) , + rgb (0.7294117647058823, 0.7294117647058823, 0.7294117647058823) , + rgb (0.5294117647058824, 0.5294117647058824, 0.5294117647058824) , + rgb (0.30196078431372547, 0.30196078431372547, 0.30196078431372547) , + rgb (0.10196078431372549, 0.10196078431372549, 0.10196078431372549) + }); list_data RdPu = list_data(new pen[] { - rgb (1.0, 0.9686274509803922, 0.9529411764705882) , - rgb (0.9921568627450981, 0.8784313725490196, 0.8666666666666667) , - rgb (0.9882352941176471, 0.7725490196078432, 0.7529411764705882) , - rgb (0.9803921568627451, 0.6235294117647059, 0.7098039215686275) , - rgb (0.9686274509803922, 0.40784313725490196, 0.6313725490196078) , - rgb (0.8666666666666667, 0.20392156862745098, 0.592156862745098) , - rgb (0.6823529411764706, 0.00392156862745098, 0.49411764705882355) , - rgb (0.47843137254901963, 0.00392156862745098, 0.4666666666666667) , - rgb (0.28627450980392155, 0.0, 0.41568627450980394) -}); + rgb (1.0, 0.9686274509803922, 0.9529411764705882) , + rgb (0.9921568627450981, 0.8784313725490196, 0.8666666666666667) , + rgb (0.9882352941176471, 0.7725490196078432, 0.7529411764705882) , + rgb (0.9803921568627451, 0.6235294117647059, 0.7098039215686275) , + rgb (0.9686274509803922, 0.40784313725490196, 0.6313725490196078) , + rgb (0.8666666666666667, 0.20392156862745098, 0.592156862745098) , + rgb (0.6823529411764706, 0.00392156862745098, 0.49411764705882355) , + rgb (0.47843137254901963, 0.00392156862745098, 0.4666666666666667) , + rgb (0.28627450980392155, 0.0, 0.41568627450980394) + }); list_data RdYlBu = list_data(new pen[] { - rgb (0.6470588235294118, 0.0, 0.14901960784313725) , - rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) , - rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) , - rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) , - rgb (0.996078431372549, 0.8784313725490196, 0.5647058823529412) , - rgb (1.0, 1.0, 0.7490196078431373) , - rgb (0.8784313725490196, 0.9529411764705882, 0.9725490196078431) , - rgb (0.6705882352941176, 0.8509803921568627, 0.9137254901960784) , - rgb (0.4549019607843137, 0.6784313725490196, 0.8196078431372549) , - rgb (0.27058823529411763, 0.4588235294117647, 0.7058823529411765) , - rgb (0.19215686274509805, 0.21176470588235294, 0.5843137254901961) -}); + rgb (0.6470588235294118, 0.0, 0.14901960784313725) , + rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) , + rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) , + rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) , + rgb (0.996078431372549, 0.8784313725490196, 0.5647058823529412) , + rgb (1.0, 1.0, 0.7490196078431373) , + rgb (0.8784313725490196, 0.9529411764705882, 0.9725490196078431) , + rgb (0.6705882352941176, 0.8509803921568627, 0.9137254901960784) , + rgb (0.4549019607843137, 0.6784313725490196, 0.8196078431372549) , + rgb (0.27058823529411763, 0.4588235294117647, 0.7058823529411765) , + rgb (0.19215686274509805, 0.21176470588235294, 0.5843137254901961) + }); list_data RdYlGn = list_data(new pen[] { - rgb (0.6470588235294118, 0.0, 0.14901960784313725) , - rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) , - rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) , - rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) , - rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) , - rgb (1.0, 1.0, 0.7490196078431373) , - rgb (0.8509803921568627, 0.9372549019607843, 0.5450980392156862) , - rgb (0.6509803921568628, 0.8509803921568627, 0.41568627450980394) , - rgb (0.4, 0.7411764705882353, 0.38823529411764707) , - rgb (0.10196078431372549, 0.596078431372549, 0.3137254901960784) , - rgb (0.0, 0.40784313725490196, 0.21568627450980393) -}); + rgb (0.6470588235294118, 0.0, 0.14901960784313725) , + rgb (0.8431372549019608, 0.18823529411764706, 0.15294117647058825) , + rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) , + rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) , + rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) , + rgb (1.0, 1.0, 0.7490196078431373) , + rgb (0.8509803921568627, 0.9372549019607843, 0.5450980392156862) , + rgb (0.6509803921568628, 0.8509803921568627, 0.41568627450980394) , + rgb (0.4, 0.7411764705882353, 0.38823529411764707) , + rgb (0.10196078431372549, 0.596078431372549, 0.3137254901960784) , + rgb (0.0, 0.40784313725490196, 0.21568627450980393) + }); list_data Reds = list_data(new pen[] { - rgb (1.0, 0.9607843137254902, 0.9411764705882353) , - rgb (0.996078431372549, 0.8784313725490196, 0.8235294117647058) , - rgb (0.9882352941176471, 0.7333333333333333, 0.6313725490196078) , - rgb (0.9882352941176471, 0.5725490196078431, 0.4470588235294118) , - rgb (0.984313725490196, 0.41568627450980394, 0.2901960784313726) , - rgb (0.9372549019607843, 0.23137254901960785, 0.17254901960784313) , - rgb (0.796078431372549, 0.09411764705882353, 0.11372549019607843) , - rgb (0.6470588235294118, 0.058823529411764705, 0.08235294117647057) , - rgb (0.403921568627451, 0.0, 0.05098039215686274) -}); + rgb (1.0, 0.9607843137254902, 0.9411764705882353) , + rgb (0.996078431372549, 0.8784313725490196, 0.8235294117647058) , + rgb (0.9882352941176471, 0.7333333333333333, 0.6313725490196078) , + rgb (0.9882352941176471, 0.5725490196078431, 0.4470588235294118) , + rgb (0.984313725490196, 0.41568627450980394, 0.2901960784313726) , + rgb (0.9372549019607843, 0.23137254901960785, 0.17254901960784313) , + rgb (0.796078431372549, 0.09411764705882353, 0.11372549019607843) , + rgb (0.6470588235294118, 0.058823529411764705, 0.08235294117647057) , + rgb (0.403921568627451, 0.0, 0.05098039215686274) + }); list_data Set1 = list_data(new pen[] { - rgb (0.8941176470588236, 0.10196078431372549, 0.10980392156862745) , - rgb (0.21568627450980393, 0.49411764705882355, 0.7215686274509804) , - rgb (0.30196078431372547, 0.6862745098039216, 0.2901960784313726) , - rgb (0.596078431372549, 0.3058823529411765, 0.6392156862745098) , - rgb (1.0, 0.4980392156862745, 0.0) , - rgb (1.0, 1.0, 0.2) , - rgb (0.6509803921568628, 0.33725490196078434, 0.1568627450980392) , - rgb (0.9686274509803922, 0.5058823529411764, 0.7490196078431373) , - rgb (0.6, 0.6, 0.6) -}); + rgb (0.8941176470588236, 0.10196078431372549, 0.10980392156862745) , + rgb (0.21568627450980393, 0.49411764705882355, 0.7215686274509804) , + rgb (0.30196078431372547, 0.6862745098039216, 0.2901960784313726) , + rgb (0.596078431372549, 0.3058823529411765, 0.6392156862745098) , + rgb (1.0, 0.4980392156862745, 0.0) , + rgb (1.0, 1.0, 0.2) , + rgb (0.6509803921568628, 0.33725490196078434, 0.1568627450980392) , + rgb (0.9686274509803922, 0.5058823529411764, 0.7490196078431373) , + rgb (0.6, 0.6, 0.6) + }); list_data Set2 = list_data(new pen[] { - rgb (0.4, 0.7607843137254902, 0.6470588235294118) , - rgb (0.9882352941176471, 0.5529411764705883, 0.3843137254901961) , - rgb (0.5529411764705883, 0.6274509803921569, 0.796078431372549) , - rgb (0.9058823529411765, 0.5411764705882353, 0.7647058823529411) , - rgb (0.6509803921568628, 0.8470588235294118, 0.32941176470588235) , - rgb (1.0, 0.8509803921568627, 0.1843137254901961) , - rgb (0.8980392156862745, 0.7686274509803922, 0.5803921568627451) , - rgb (0.7019607843137254, 0.7019607843137254, 0.7019607843137254) -}); + rgb (0.4, 0.7607843137254902, 0.6470588235294118) , + rgb (0.9882352941176471, 0.5529411764705883, 0.3843137254901961) , + rgb (0.5529411764705883, 0.6274509803921569, 0.796078431372549) , + rgb (0.9058823529411765, 0.5411764705882353, 0.7647058823529411) , + rgb (0.6509803921568628, 0.8470588235294118, 0.32941176470588235) , + rgb (1.0, 0.8509803921568627, 0.1843137254901961) , + rgb (0.8980392156862745, 0.7686274509803922, 0.5803921568627451) , + rgb (0.7019607843137254, 0.7019607843137254, 0.7019607843137254) + }); list_data Set3 = list_data(new pen[] { - rgb (0.5529411764705883, 0.8274509803921568, 0.7803921568627451) , - rgb (1.0, 1.0, 0.7019607843137254) , - rgb (0.7450980392156863, 0.7294117647058823, 0.8549019607843137) , - rgb (0.984313725490196, 0.5019607843137255, 0.4470588235294118) , - rgb (0.5019607843137255, 0.6941176470588235, 0.8274509803921568) , - rgb (0.9921568627450981, 0.7058823529411765, 0.3843137254901961) , - rgb (0.7019607843137254, 0.8705882352941177, 0.4117647058823529) , - rgb (0.9882352941176471, 0.803921568627451, 0.8980392156862745) , - rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) , - rgb (0.7372549019607844, 0.5019607843137255, 0.7411764705882353) , - rgb (0.8, 0.9215686274509803, 0.7725490196078432) , - rgb (1.0, 0.9294117647058824, 0.43529411764705883) -}); + rgb (0.5529411764705883, 0.8274509803921568, 0.7803921568627451) , + rgb (1.0, 1.0, 0.7019607843137254) , + rgb (0.7450980392156863, 0.7294117647058823, 0.8549019607843137) , + rgb (0.984313725490196, 0.5019607843137255, 0.4470588235294118) , + rgb (0.5019607843137255, 0.6941176470588235, 0.8274509803921568) , + rgb (0.9921568627450981, 0.7058823529411765, 0.3843137254901961) , + rgb (0.7019607843137254, 0.8705882352941177, 0.4117647058823529) , + rgb (0.9882352941176471, 0.803921568627451, 0.8980392156862745) , + rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) , + rgb (0.7372549019607844, 0.5019607843137255, 0.7411764705882353) , + rgb (0.8, 0.9215686274509803, 0.7725490196078432) , + rgb (1.0, 0.9294117647058824, 0.43529411764705883) + }); list_data Spectral = list_data(new pen[] { - rgb (0.6196078431372549, 0.00392156862745098, 0.25882352941176473) , - rgb (0.8352941176470589, 0.24313725490196078, 0.30980392156862746) , - rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) , - rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) , - rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) , - rgb (1.0, 1.0, 0.7490196078431373) , - rgb (0.9019607843137255, 0.9607843137254902, 0.596078431372549) , - rgb (0.6705882352941176, 0.8666666666666667, 0.6431372549019608) , - rgb (0.4, 0.7607843137254902, 0.6470588235294118) , - rgb (0.19607843137254902, 0.5333333333333333, 0.7411764705882353) , - rgb (0.3686274509803922, 0.30980392156862746, 0.6352941176470588) -}); + rgb (0.6196078431372549, 0.00392156862745098, 0.25882352941176473) , + rgb (0.8352941176470589, 0.24313725490196078, 0.30980392156862746) , + rgb (0.9568627450980393, 0.42745098039215684, 0.2627450980392157) , + rgb (0.9921568627450981, 0.6823529411764706, 0.3803921568627451) , + rgb (0.996078431372549, 0.8784313725490196, 0.5450980392156862) , + rgb (1.0, 1.0, 0.7490196078431373) , + rgb (0.9019607843137255, 0.9607843137254902, 0.596078431372549) , + rgb (0.6705882352941176, 0.8666666666666667, 0.6431372549019608) , + rgb (0.4, 0.7607843137254902, 0.6470588235294118) , + rgb (0.19607843137254902, 0.5333333333333333, 0.7411764705882353) , + rgb (0.3686274509803922, 0.30980392156862746, 0.6352941176470588) + }); list_data YlGnBu = list_data(new pen[] { - rgb (1.0, 1.0, 0.8509803921568627) , - rgb (0.9294117647058824, 0.9725490196078431, 0.6941176470588235) , - rgb (0.7803921568627451, 0.9137254901960784, 0.7058823529411765) , - rgb (0.4980392156862745, 0.803921568627451, 0.7333333333333333) , - rgb (0.2549019607843137, 0.7137254901960784, 0.7686274509803922) , - rgb (0.11372549019607843, 0.5686274509803921, 0.7529411764705882) , - rgb (0.13333333333333333, 0.3686274509803922, 0.6588235294117647) , - rgb (0.1450980392156863, 0.20392156862745098, 0.5803921568627451) , - rgb (0.03137254901960784, 0.11372549019607843, 0.34509803921568627) -}); + rgb (1.0, 1.0, 0.8509803921568627) , + rgb (0.9294117647058824, 0.9725490196078431, 0.6941176470588235) , + rgb (0.7803921568627451, 0.9137254901960784, 0.7058823529411765) , + rgb (0.4980392156862745, 0.803921568627451, 0.7333333333333333) , + rgb (0.2549019607843137, 0.7137254901960784, 0.7686274509803922) , + rgb (0.11372549019607843, 0.5686274509803921, 0.7529411764705882) , + rgb (0.13333333333333333, 0.3686274509803922, 0.6588235294117647) , + rgb (0.1450980392156863, 0.20392156862745098, 0.5803921568627451) , + rgb (0.03137254901960784, 0.11372549019607843, 0.34509803921568627) + }); list_data YlGn = list_data(new pen[] { - rgb (1.0, 1.0, 0.8980392156862745) , - rgb (0.9686274509803922, 0.9882352941176471, 0.7254901960784313) , - rgb (0.8509803921568627, 0.9411764705882353, 0.6392156862745098) , - rgb (0.6784313725490196, 0.8666666666666667, 0.5568627450980392) , - rgb (0.47058823529411764, 0.7764705882352941, 0.4745098039215686) , - rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) , - rgb (0.13725490196078433, 0.5176470588235295, 0.2627450980392157) , - rgb (0.0, 0.40784313725490196, 0.21568627450980393) , - rgb (0.0, 0.27058823529411763, 0.1607843137254902) -}); + rgb (1.0, 1.0, 0.8980392156862745) , + rgb (0.9686274509803922, 0.9882352941176471, 0.7254901960784313) , + rgb (0.8509803921568627, 0.9411764705882353, 0.6392156862745098) , + rgb (0.6784313725490196, 0.8666666666666667, 0.5568627450980392) , + rgb (0.47058823529411764, 0.7764705882352941, 0.4745098039215686) , + rgb (0.2549019607843137, 0.6705882352941176, 0.36470588235294116) , + rgb (0.13725490196078433, 0.5176470588235295, 0.2627450980392157) , + rgb (0.0, 0.40784313725490196, 0.21568627450980393) , + rgb (0.0, 0.27058823529411763, 0.1607843137254902) + }); list_data YlOrBr = list_data(new pen[] { - rgb (1.0, 1.0, 0.8980392156862745) , - rgb (1.0, 0.9686274509803922, 0.7372549019607844) , - rgb (0.996078431372549, 0.8901960784313725, 0.5686274509803921) , - rgb (0.996078431372549, 0.7686274509803922, 0.30980392156862746) , - rgb (0.996078431372549, 0.6, 0.1607843137254902) , - rgb (0.9254901960784314, 0.4392156862745098, 0.0784313725490196) , - rgb (0.8, 0.2980392156862745, 0.00784313725490196) , - rgb (0.6, 0.20392156862745098, 0.01568627450980392) , - rgb (0.4, 0.1450980392156863, 0.02352941176470588) -}); + rgb (1.0, 1.0, 0.8980392156862745) , + rgb (1.0, 0.9686274509803922, 0.7372549019607844) , + rgb (0.996078431372549, 0.8901960784313725, 0.5686274509803921) , + rgb (0.996078431372549, 0.7686274509803922, 0.30980392156862746) , + rgb (0.996078431372549, 0.6, 0.1607843137254902) , + rgb (0.9254901960784314, 0.4392156862745098, 0.0784313725490196) , + rgb (0.8, 0.2980392156862745, 0.00784313725490196) , + rgb (0.6, 0.20392156862745098, 0.01568627450980392) , + rgb (0.4, 0.1450980392156863, 0.02352941176470588) + }); list_data YlOrRd = list_data(new pen[] { - rgb (1.0, 1.0, 0.8) , - rgb (1.0, 0.9294117647058824, 0.6274509803921569) , - rgb (0.996078431372549, 0.8509803921568627, 0.4627450980392157) , - rgb (0.996078431372549, 0.6980392156862745, 0.2980392156862745) , - rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) , - rgb (0.9882352941176471, 0.3058823529411765, 0.16470588235294117) , - rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) , - rgb (0.7411764705882353, 0.0, 0.14901960784313725) , - rgb (0.5019607843137255, 0.0, 0.14901960784313725) -}); + rgb (1.0, 1.0, 0.8) , + rgb (1.0, 0.9294117647058824, 0.6274509803921569) , + rgb (0.996078431372549, 0.8509803921568627, 0.4627450980392157) , + rgb (0.996078431372549, 0.6980392156862745, 0.2980392156862745) , + rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) , + rgb (0.9882352941176471, 0.3058823529411765, 0.16470588235294117) , + rgb (0.8901960784313725, 0.10196078431372549, 0.10980392156862745) , + rgb (0.7411764705882353, 0.0, 0.14901960784313725) , + rgb (0.5019607843137255, 0.0, 0.14901960784313725) + }); seg_data autumn = seg_data( - new triple[] { // red - (0.0, 1.0, 1.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (1.0, 0.0, 0.0) - } -); + new triple[] { // red + (0.0, 1.0, 1.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (1.0, 0.0, 0.0) + } + ); seg_data binary = seg_data( - new triple[] { // red - (0.0, 1.0, 1.0) , - (1.0, 0.0, 0.0) - }, - new triple[] { // green - (0.0, 1.0, 1.0) , - (1.0, 0.0, 0.0) - }, - new triple[] { // blue - (0.0, 1.0, 1.0) , - (1.0, 0.0, 0.0) - } -); + new triple[] { // red + (0.0, 1.0, 1.0) , + (1.0, 0.0, 0.0) + }, + new triple[] { // green + (0.0, 1.0, 1.0) , + (1.0, 0.0, 0.0) + }, + new triple[] { // blue + (0.0, 1.0, 1.0) , + (1.0, 0.0, 0.0) + } + ); seg_data bone = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.746032, 0.652778, 0.652778) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.365079, 0.319444, 0.319444) , - (0.746032, 0.777778, 0.777778) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.365079, 0.444444, 0.444444) , - (1.0, 1.0, 1.0) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.746032, 0.652778, 0.652778) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.365079, 0.319444, 0.319444) , + (0.746032, 0.777778, 0.777778) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.365079, 0.444444, 0.444444) , + (1.0, 1.0, 1.0) + } + ); list_data brg = list_data(new pen[] { - rgb (0.0, 0.0, 1.0) , - rgb (1.0, 0.0, 0.0) , - rgb (0.0, 1.0, 0.0) -}); + rgb (0.0, 0.0, 1.0) , + rgb (1.0, 0.0, 0.0) , + rgb (0.0, 1.0, 0.0) + }); list_data bwr = list_data(new pen[] { - rgb (0.0, 0.0, 1.0) , - rgb (1.0, 1.0, 1.0) , - rgb (1.0, 0.0, 0.0) -}); + rgb (0.0, 0.0, 1.0) , + rgb (1.0, 1.0, 1.0) , + rgb (1.0, 0.0, 0.0) + }); seg_data cool = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 1.0, 1.0) , - (1.0, 0.0, 0.0) - }, - new triple[] { // blue - (0.0, 1.0, 1.0) , - (1.0, 1.0, 1.0) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 1.0, 1.0) , + (1.0, 0.0, 0.0) + }, + new triple[] { // blue + (0.0, 1.0, 1.0) , + (1.0, 1.0, 1.0) + } + ); seg_data coolwarm = seg_data( - new triple[] { // red - (0.0, 0.2298057, 0.2298057) , - (0.03125, 0.26623388, 0.26623388) , - (0.0625, 0.30386891, 0.30386891) , - (0.09375, 0.342804478, 0.342804478) , - (0.125, 0.38301334, 0.38301334) , - (0.15625, 0.424369608, 0.424369608) , - (0.1875, 0.46666708, 0.46666708) , - (0.21875, 0.509635204, 0.509635204) , - (0.25, 0.552953156, 0.552953156) , - (0.28125, 0.596262162, 0.596262162) , - (0.3125, 0.639176211, 0.639176211) , - (0.34375, 0.681291281, 0.681291281) , - (0.375, 0.722193294, 0.722193294) , - (0.40625, 0.761464949, 0.761464949) , - (0.4375, 0.798691636, 0.798691636) , - (0.46875, 0.833466556, 0.833466556) , - (0.5, 0.865395197, 0.865395197) , - (0.53125, 0.897787179, 0.897787179) , - (0.5625, 0.924127593, 0.924127593) , - (0.59375, 0.944468518, 0.944468518) , - (0.625, 0.958852946, 0.958852946) , - (0.65625, 0.96732803, 0.96732803) , - (0.6875, 0.969954137, 0.969954137) , - (0.71875, 0.966811177, 0.966811177) , - (0.75, 0.958003065, 0.958003065) , - (0.78125, 0.943660866, 0.943660866) , - (0.8125, 0.923944917, 0.923944917) , - (0.84375, 0.89904617, 0.89904617) , - (0.875, 0.869186849, 0.869186849) , - (0.90625, 0.834620542, 0.834620542) , - (0.9375, 0.795631745, 0.795631745) , - (0.96875, 0.752534934, 0.752534934) , - (1.0, 0.705673158, 0.705673158) - }, - new triple[] { // green - (0.0, 0.298717966, 0.298717966) , - (0.03125, 0.353094838, 0.353094838) , - (0.0625, 0.406535296, 0.406535296) , - (0.09375, 0.458757618, 0.458757618) , - (0.125, 0.50941904, 0.50941904) , - (0.15625, 0.558148092, 0.558148092) , - (0.1875, 0.604562568, 0.604562568) , - (0.21875, 0.648280772, 0.648280772) , - (0.25, 0.688929332, 0.688929332) , - (0.28125, 0.726149107, 0.726149107) , - (0.3125, 0.759599947, 0.759599947) , - (0.34375, 0.788964712, 0.788964712) , - (0.375, 0.813952739, 0.813952739) , - (0.40625, 0.834302879, 0.834302879) , - (0.4375, 0.849786142, 0.849786142) , - (0.46875, 0.860207984, 0.860207984) , - (0.5, 0.86541021, 0.86541021) , - (0.53125, 0.848937047, 0.848937047) , - (0.5625, 0.827384882, 0.827384882) , - (0.59375, 0.800927443, 0.800927443) , - (0.625, 0.769767752, 0.769767752) , - (0.65625, 0.734132809, 0.734132809) , - (0.6875, 0.694266682, 0.694266682) , - (0.71875, 0.650421156, 0.650421156) , - (0.75, 0.602842431, 0.602842431) , - (0.78125, 0.551750968, 0.551750968) , - (0.8125, 0.49730856, 0.49730856) , - (0.84375, 0.439559467, 0.439559467) , - (0.875, 0.378313092, 0.378313092) , - (0.90625, 0.312874446, 0.312874446) , - (0.9375, 0.24128379, 0.24128379) , - (0.96875, 0.157246067, 0.157246067) , - (1.0, 0.01555616, 0.01555616) - }, - new triple[] { // blue - (0.0, 0.753683153, 0.753683153) , - (0.03125, 0.801466763, 0.801466763) , - (0.0625, 0.84495867, 0.84495867) , - (0.09375, 0.883725899, 0.883725899) , - (0.125, 0.917387822, 0.917387822) , - (0.15625, 0.945619588, 0.945619588) , - (0.1875, 0.968154911, 0.968154911) , - (0.21875, 0.98478814, 0.98478814) , - (0.25, 0.995375608, 0.995375608) , - (0.28125, 0.999836203, 0.999836203) , - (0.3125, 0.998151185, 0.998151185) , - (0.34375, 0.990363227, 0.990363227) , - (0.375, 0.976574709, 0.976574709) , - (0.40625, 0.956945269, 0.956945269) , - (0.4375, 0.931688648, 0.931688648) , - (0.46875, 0.901068838, 0.901068838) , - (0.5, 0.865395561, 0.865395561) , - (0.53125, 0.820880546, 0.820880546) , - (0.5625, 0.774508472, 0.774508472) , - (0.59375, 0.726736146, 0.726736146) , - (0.625, 0.678007945, 0.678007945) , - (0.65625, 0.628751763, 0.628751763) , - (0.6875, 0.579375448, 0.579375448) , - (0.71875, 0.530263762, 0.530263762) , - (0.75, 0.481775914, 0.481775914) , - (0.78125, 0.434243684, 0.434243684) , - (0.8125, 0.387970225, 0.387970225) , - (0.84375, 0.343229596, 0.343229596) , - (0.875, 0.300267182, 0.300267182) , - (0.90625, 0.259301199, 0.259301199) , - (0.9375, 0.220525627, 0.220525627) , - (0.96875, 0.184115123, 0.184115123) , - (1.0, 0.150232812, 0.150232812) - } -); + new triple[] { // red + (0.0, 0.2298057, 0.2298057) , + (0.03125, 0.26623388, 0.26623388) , + (0.0625, 0.30386891, 0.30386891) , + (0.09375, 0.342804478, 0.342804478) , + (0.125, 0.38301334, 0.38301334) , + (0.15625, 0.424369608, 0.424369608) , + (0.1875, 0.46666708, 0.46666708) , + (0.21875, 0.509635204, 0.509635204) , + (0.25, 0.552953156, 0.552953156) , + (0.28125, 0.596262162, 0.596262162) , + (0.3125, 0.639176211, 0.639176211) , + (0.34375, 0.681291281, 0.681291281) , + (0.375, 0.722193294, 0.722193294) , + (0.40625, 0.761464949, 0.761464949) , + (0.4375, 0.798691636, 0.798691636) , + (0.46875, 0.833466556, 0.833466556) , + (0.5, 0.865395197, 0.865395197) , + (0.53125, 0.897787179, 0.897787179) , + (0.5625, 0.924127593, 0.924127593) , + (0.59375, 0.944468518, 0.944468518) , + (0.625, 0.958852946, 0.958852946) , + (0.65625, 0.96732803, 0.96732803) , + (0.6875, 0.969954137, 0.969954137) , + (0.71875, 0.966811177, 0.966811177) , + (0.75, 0.958003065, 0.958003065) , + (0.78125, 0.943660866, 0.943660866) , + (0.8125, 0.923944917, 0.923944917) , + (0.84375, 0.89904617, 0.89904617) , + (0.875, 0.869186849, 0.869186849) , + (0.90625, 0.834620542, 0.834620542) , + (0.9375, 0.795631745, 0.795631745) , + (0.96875, 0.752534934, 0.752534934) , + (1.0, 0.705673158, 0.705673158) + }, + new triple[] { // green + (0.0, 0.298717966, 0.298717966) , + (0.03125, 0.353094838, 0.353094838) , + (0.0625, 0.406535296, 0.406535296) , + (0.09375, 0.458757618, 0.458757618) , + (0.125, 0.50941904, 0.50941904) , + (0.15625, 0.558148092, 0.558148092) , + (0.1875, 0.604562568, 0.604562568) , + (0.21875, 0.648280772, 0.648280772) , + (0.25, 0.688929332, 0.688929332) , + (0.28125, 0.726149107, 0.726149107) , + (0.3125, 0.759599947, 0.759599947) , + (0.34375, 0.788964712, 0.788964712) , + (0.375, 0.813952739, 0.813952739) , + (0.40625, 0.834302879, 0.834302879) , + (0.4375, 0.849786142, 0.849786142) , + (0.46875, 0.860207984, 0.860207984) , + (0.5, 0.86541021, 0.86541021) , + (0.53125, 0.848937047, 0.848937047) , + (0.5625, 0.827384882, 0.827384882) , + (0.59375, 0.800927443, 0.800927443) , + (0.625, 0.769767752, 0.769767752) , + (0.65625, 0.734132809, 0.734132809) , + (0.6875, 0.694266682, 0.694266682) , + (0.71875, 0.650421156, 0.650421156) , + (0.75, 0.602842431, 0.602842431) , + (0.78125, 0.551750968, 0.551750968) , + (0.8125, 0.49730856, 0.49730856) , + (0.84375, 0.439559467, 0.439559467) , + (0.875, 0.378313092, 0.378313092) , + (0.90625, 0.312874446, 0.312874446) , + (0.9375, 0.24128379, 0.24128379) , + (0.96875, 0.157246067, 0.157246067) , + (1.0, 0.01555616, 0.01555616) + }, + new triple[] { // blue + (0.0, 0.753683153, 0.753683153) , + (0.03125, 0.801466763, 0.801466763) , + (0.0625, 0.84495867, 0.84495867) , + (0.09375, 0.883725899, 0.883725899) , + (0.125, 0.917387822, 0.917387822) , + (0.15625, 0.945619588, 0.945619588) , + (0.1875, 0.968154911, 0.968154911) , + (0.21875, 0.98478814, 0.98478814) , + (0.25, 0.995375608, 0.995375608) , + (0.28125, 0.999836203, 0.999836203) , + (0.3125, 0.998151185, 0.998151185) , + (0.34375, 0.990363227, 0.990363227) , + (0.375, 0.976574709, 0.976574709) , + (0.40625, 0.956945269, 0.956945269) , + (0.4375, 0.931688648, 0.931688648) , + (0.46875, 0.901068838, 0.901068838) , + (0.5, 0.865395561, 0.865395561) , + (0.53125, 0.820880546, 0.820880546) , + (0.5625, 0.774508472, 0.774508472) , + (0.59375, 0.726736146, 0.726736146) , + (0.625, 0.678007945, 0.678007945) , + (0.65625, 0.628751763, 0.628751763) , + (0.6875, 0.579375448, 0.579375448) , + (0.71875, 0.530263762, 0.530263762) , + (0.75, 0.481775914, 0.481775914) , + (0.78125, 0.434243684, 0.434243684) , + (0.8125, 0.387970225, 0.387970225) , + (0.84375, 0.343229596, 0.343229596) , + (0.875, 0.300267182, 0.300267182) , + (0.90625, 0.259301199, 0.259301199) , + (0.9375, 0.220525627, 0.220525627) , + (0.96875, 0.184115123, 0.184115123) , + (1.0, 0.150232812, 0.150232812) + } + ); seg_data copper = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.809524, 1.0, 1.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (1.0, 0.7812, 0.7812) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (1.0, 0.4975, 0.4975) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.809524, 1.0, 1.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (1.0, 0.7812, 0.7812) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (1.0, 0.4975, 0.4975) + } + ); seg_data gist_earth = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.2824, 0.1882, 0.1882) , - (0.4588, 0.2714, 0.2714) , - (0.549, 0.4719, 0.4719) , - (0.698, 0.7176, 0.7176) , - (0.7882, 0.7553, 0.7553) , - (1.0, 0.9922, 0.9922) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.0275, 0.0, 0.0) , - (0.1098, 0.1893, 0.1893) , - (0.1647, 0.3035, 0.3035) , - (0.2078, 0.3841, 0.3841) , - (0.2824, 0.502, 0.502) , - (0.5216, 0.6397, 0.6397) , - (0.698, 0.7171, 0.7171) , - (0.7882, 0.6392, 0.6392) , - (0.7922, 0.6413, 0.6413) , - (0.8, 0.6447, 0.6447) , - (0.8078, 0.6481, 0.6481) , - (0.8157, 0.6549, 0.6549) , - (0.8667, 0.6991, 0.6991) , - (0.8745, 0.7103, 0.7103) , - (0.8824, 0.7216, 0.7216) , - (0.8902, 0.7323, 0.7323) , - (0.898, 0.743, 0.743) , - (0.9412, 0.8275, 0.8275) , - (0.9569, 0.8635, 0.8635) , - (0.9647, 0.8816, 0.8816) , - (0.9961, 0.9733, 0.9733) , - (1.0, 0.9843, 0.9843) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.0039, 0.1684, 0.1684) , - (0.0078, 0.2212, 0.2212) , - (0.0275, 0.4329, 0.4329) , - (0.0314, 0.4549, 0.4549) , - (0.2824, 0.5004, 0.5004) , - (0.4667, 0.2748, 0.2748) , - (0.5451, 0.3205, 0.3205) , - (0.7843, 0.3961, 0.3961) , - (0.8941, 0.6651, 0.6651) , - (1.0, 0.9843, 0.9843) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.2824, 0.1882, 0.1882) , + (0.4588, 0.2714, 0.2714) , + (0.549, 0.4719, 0.4719) , + (0.698, 0.7176, 0.7176) , + (0.7882, 0.7553, 0.7553) , + (1.0, 0.9922, 0.9922) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.0275, 0.0, 0.0) , + (0.1098, 0.1893, 0.1893) , + (0.1647, 0.3035, 0.3035) , + (0.2078, 0.3841, 0.3841) , + (0.2824, 0.502, 0.502) , + (0.5216, 0.6397, 0.6397) , + (0.698, 0.7171, 0.7171) , + (0.7882, 0.6392, 0.6392) , + (0.7922, 0.6413, 0.6413) , + (0.8, 0.6447, 0.6447) , + (0.8078, 0.6481, 0.6481) , + (0.8157, 0.6549, 0.6549) , + (0.8667, 0.6991, 0.6991) , + (0.8745, 0.7103, 0.7103) , + (0.8824, 0.7216, 0.7216) , + (0.8902, 0.7323, 0.7323) , + (0.898, 0.743, 0.743) , + (0.9412, 0.8275, 0.8275) , + (0.9569, 0.8635, 0.8635) , + (0.9647, 0.8816, 0.8816) , + (0.9961, 0.9733, 0.9733) , + (1.0, 0.9843, 0.9843) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.0039, 0.1684, 0.1684) , + (0.0078, 0.2212, 0.2212) , + (0.0275, 0.4329, 0.4329) , + (0.0314, 0.4549, 0.4549) , + (0.2824, 0.5004, 0.5004) , + (0.4667, 0.2748, 0.2748) , + (0.5451, 0.3205, 0.3205) , + (0.7843, 0.3961, 0.3961) , + (0.8941, 0.6651, 0.6651) , + (1.0, 0.9843, 0.9843) + } + ); seg_data gist_ncar = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.3098, 0.0, 0.0) , - (0.3725, 0.3993, 0.3993) , - (0.4235, 0.5003, 0.5003) , - (0.5333, 1.0, 1.0) , - (0.7922, 1.0, 1.0) , - (0.8471, 0.6218, 0.6218) , - (0.898, 0.9235, 0.9235) , - (1.0, 0.9961, 0.9961) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.051, 0.3722, 0.3722) , - (0.1059, 0.0, 0.0) , - (0.1569, 0.7202, 0.7202) , - (0.1608, 0.7537, 0.7537) , - (0.1647, 0.7752, 0.7752) , - (0.2157, 1.0, 1.0) , - (0.2588, 0.9804, 0.9804) , - (0.2706, 0.9804, 0.9804) , - (0.3176, 1.0, 1.0) , - (0.3686, 0.8081, 0.8081) , - (0.4275, 1.0, 1.0) , - (0.5216, 1.0, 1.0) , - (0.6314, 0.7292, 0.7292) , - (0.6863, 0.2796, 0.2796) , - (0.7451, 0.0, 0.0) , - (0.7922, 0.0, 0.0) , - (0.8431, 0.1753, 0.1753) , - (0.898, 0.5, 0.5) , - (1.0, 0.9725, 0.9725) - }, - new triple[] { // blue - (0.0, 0.502, 0.502) , - (0.051, 0.0222, 0.0222) , - (0.1098, 1.0, 1.0) , - (0.2039, 1.0, 1.0) , - (0.2627, 0.6145, 0.6145) , - (0.3216, 0.0, 0.0) , - (0.4157, 0.0, 0.0) , - (0.4745, 0.2342, 0.2342) , - (0.5333, 0.0, 0.0) , - (0.5804, 0.0, 0.0) , - (0.6314, 0.0549, 0.0549) , - (0.6902, 0.0, 0.0) , - (0.7373, 0.0, 0.0) , - (0.7922, 0.9738, 0.9738) , - (0.8, 1.0, 1.0) , - (0.8431, 1.0, 1.0) , - (0.898, 0.9341, 0.9341) , - (1.0, 0.9961, 0.9961) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.3098, 0.0, 0.0) , + (0.3725, 0.3993, 0.3993) , + (0.4235, 0.5003, 0.5003) , + (0.5333, 1.0, 1.0) , + (0.7922, 1.0, 1.0) , + (0.8471, 0.6218, 0.6218) , + (0.898, 0.9235, 0.9235) , + (1.0, 0.9961, 0.9961) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.051, 0.3722, 0.3722) , + (0.1059, 0.0, 0.0) , + (0.1569, 0.7202, 0.7202) , + (0.1608, 0.7537, 0.7537) , + (0.1647, 0.7752, 0.7752) , + (0.2157, 1.0, 1.0) , + (0.2588, 0.9804, 0.9804) , + (0.2706, 0.9804, 0.9804) , + (0.3176, 1.0, 1.0) , + (0.3686, 0.8081, 0.8081) , + (0.4275, 1.0, 1.0) , + (0.5216, 1.0, 1.0) , + (0.6314, 0.7292, 0.7292) , + (0.6863, 0.2796, 0.2796) , + (0.7451, 0.0, 0.0) , + (0.7922, 0.0, 0.0) , + (0.8431, 0.1753, 0.1753) , + (0.898, 0.5, 0.5) , + (1.0, 0.9725, 0.9725) + }, + new triple[] { // blue + (0.0, 0.502, 0.502) , + (0.051, 0.0222, 0.0222) , + (0.1098, 1.0, 1.0) , + (0.2039, 1.0, 1.0) , + (0.2627, 0.6145, 0.6145) , + (0.3216, 0.0, 0.0) , + (0.4157, 0.0, 0.0) , + (0.4745, 0.2342, 0.2342) , + (0.5333, 0.0, 0.0) , + (0.5804, 0.0, 0.0) , + (0.6314, 0.0549, 0.0549) , + (0.6902, 0.0, 0.0) , + (0.7373, 0.0, 0.0) , + (0.7922, 0.9738, 0.9738) , + (0.8, 1.0, 1.0) , + (0.8431, 1.0, 1.0) , + (0.898, 0.9341, 0.9341) , + (1.0, 0.9961, 0.9961) + } + ); seg_data gist_stern = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.0547, 1.0, 1.0) , - (0.25, 0.027, 0.25) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0, 0, 0) , - (1, 1, 1) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.5, 1.0, 1.0) , - (0.735, 0.0, 0.0) , - (1.0, 1.0, 1.0) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.0547, 1.0, 1.0) , + (0.25, 0.027, 0.25) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0, 0, 0) , + (1, 1, 1) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.5, 1.0, 1.0) , + (0.735, 0.0, 0.0) , + (1.0, 1.0, 1.0) + } + ); seg_data gray = seg_data( - new triple[] { // red - (0.0, 0, 0) , - (1.0, 1, 1) - }, - new triple[] { // green - (0.0, 0, 0) , - (1.0, 1, 1) - }, - new triple[] { // blue - (0.0, 0, 0) , - (1.0, 1, 1) - } -); + new triple[] { // red + (0.0, 0, 0) , + (1.0, 1, 1) + }, + new triple[] { // green + (0.0, 0, 0) , + (1.0, 1, 1) + }, + new triple[] { // blue + (0.0, 0, 0) , + (1.0, 1, 1) + } + ); seg_data hot = seg_data( - new triple[] { // red - (0.0, 0.0416, 0.0416) , - (0.365079, 1.0, 1.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.365079, 0.0, 0.0) , - (0.746032, 1.0, 1.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.746032, 0.0, 0.0) , - (1.0, 1.0, 1.0) - } -); + new triple[] { // red + (0.0, 0.0416, 0.0416) , + (0.365079, 1.0, 1.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.365079, 0.0, 0.0) , + (0.746032, 1.0, 1.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.746032, 0.0, 0.0) , + (1.0, 1.0, 1.0) + } + ); seg_data hsv = seg_data( - new triple[] { // red - (0.0, 1.0, 1.0) , - (0.15873, 1.0, 1.0) , - (0.174603, 0.96875, 0.96875) , - (0.333333, 0.03125, 0.03125) , - (0.349206, 0.0, 0.0) , - (0.666667, 0.0, 0.0) , - (0.68254, 0.03125, 0.03125) , - (0.84127, 0.96875, 0.96875) , - (0.857143, 1.0, 1.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.15873, 0.9375, 0.9375) , - (0.174603, 1.0, 1.0) , - (0.507937, 1.0, 1.0) , - (0.666667, 0.0625, 0.0625) , - (0.68254, 0.0, 0.0) , - (1.0, 0.0, 0.0) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.333333, 0.0, 0.0) , - (0.349206, 0.0625, 0.0625) , - (0.507937, 1.0, 1.0) , - (0.84127, 1.0, 1.0) , - (0.857143, 0.9375, 0.9375) , - (1.0, 0.09375, 0.09375) - } -); + new triple[] { // red + (0.0, 1.0, 1.0) , + (0.15873, 1.0, 1.0) , + (0.174603, 0.96875, 0.96875) , + (0.333333, 0.03125, 0.03125) , + (0.349206, 0.0, 0.0) , + (0.666667, 0.0, 0.0) , + (0.68254, 0.03125, 0.03125) , + (0.84127, 0.96875, 0.96875) , + (0.857143, 1.0, 1.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.15873, 0.9375, 0.9375) , + (0.174603, 1.0, 1.0) , + (0.507937, 1.0, 1.0) , + (0.666667, 0.0625, 0.0625) , + (0.68254, 0.0, 0.0) , + (1.0, 0.0, 0.0) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.333333, 0.0, 0.0) , + (0.349206, 0.0625, 0.0625) , + (0.507937, 1.0, 1.0) , + (0.84127, 1.0, 1.0) , + (0.857143, 0.9375, 0.9375) , + (1.0, 0.09375, 0.09375) + } + ); seg_data jet = seg_data( - new triple[] { // red - (0.0, 0, 0) , - (0.35, 0, 0) , - (0.66, 1, 1) , - (0.89, 1, 1) , - (1, 0.5, 0.5) - }, - new triple[] { // green - (0.0, 0, 0) , - (0.125, 0, 0) , - (0.375, 1, 1) , - (0.64, 1, 1) , - (0.91, 0, 0) , - (1, 0, 0) - }, - new triple[] { // blue - (0.0, 0.5, 0.5) , - (0.11, 1, 1) , - (0.34, 1, 1) , - (0.65, 0, 0) , - (1, 0, 0) - } -); + new triple[] { // red + (0.0, 0, 0) , + (0.35, 0, 0) , + (0.66, 1, 1) , + (0.89, 1, 1) , + (1, 0.5, 0.5) + }, + new triple[] { // green + (0.0, 0, 0) , + (0.125, 0, 0) , + (0.375, 1, 1) , + (0.64, 1, 1) , + (0.91, 0, 0) , + (1, 0, 0) + }, + new triple[] { // blue + (0.0, 0.5, 0.5) , + (0.11, 1, 1) , + (0.34, 1, 1) , + (0.65, 0, 0) , + (1, 0, 0) + } + ); seg_data nipy_spectral = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (0.05, 0.4667, 0.4667) , - (0.1, 0.5333, 0.5333) , - (0.15, 0.0, 0.0) , - (0.2, 0.0, 0.0) , - (0.25, 0.0, 0.0) , - (0.3, 0.0, 0.0) , - (0.35, 0.0, 0.0) , - (0.4, 0.0, 0.0) , - (0.45, 0.0, 0.0) , - (0.5, 0.0, 0.0) , - (0.55, 0.0, 0.0) , - (0.6, 0.0, 0.0) , - (0.65, 0.7333, 0.7333) , - (0.7, 0.9333, 0.9333) , - (0.75, 1.0, 1.0) , - (0.8, 1.0, 1.0) , - (0.85, 1.0, 1.0) , - (0.9, 0.8667, 0.8667) , - (0.95, 0.8, 0.8) , - (1.0, 0.8, 0.8) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.05, 0.0, 0.0) , - (0.1, 0.0, 0.0) , - (0.15, 0.0, 0.0) , - (0.2, 0.0, 0.0) , - (0.25, 0.4667, 0.4667) , - (0.3, 0.6, 0.6) , - (0.35, 0.6667, 0.6667) , - (0.4, 0.6667, 0.6667) , - (0.45, 0.6, 0.6) , - (0.5, 0.7333, 0.7333) , - (0.55, 0.8667, 0.8667) , - (0.6, 1.0, 1.0) , - (0.65, 1.0, 1.0) , - (0.7, 0.9333, 0.9333) , - (0.75, 0.8, 0.8) , - (0.8, 0.6, 0.6) , - (0.85, 0.0, 0.0) , - (0.9, 0.0, 0.0) , - (0.95, 0.0, 0.0) , - (1.0, 0.8, 0.8) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.05, 0.5333, 0.5333) , - (0.1, 0.6, 0.6) , - (0.15, 0.6667, 0.6667) , - (0.2, 0.8667, 0.8667) , - (0.25, 0.8667, 0.8667) , - (0.3, 0.8667, 0.8667) , - (0.35, 0.6667, 0.6667) , - (0.4, 0.5333, 0.5333) , - (0.45, 0.0, 0.0) , - (0.5, 0.0, 0.0) , - (0.55, 0.0, 0.0) , - (0.6, 0.0, 0.0) , - (0.65, 0.0, 0.0) , - (0.7, 0.0, 0.0) , - (0.75, 0.0, 0.0) , - (0.8, 0.0, 0.0) , - (0.85, 0.0, 0.0) , - (0.9, 0.0, 0.0) , - (0.95, 0.0, 0.0) , - (1.0, 0.8, 0.8) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (0.05, 0.4667, 0.4667) , + (0.1, 0.5333, 0.5333) , + (0.15, 0.0, 0.0) , + (0.2, 0.0, 0.0) , + (0.25, 0.0, 0.0) , + (0.3, 0.0, 0.0) , + (0.35, 0.0, 0.0) , + (0.4, 0.0, 0.0) , + (0.45, 0.0, 0.0) , + (0.5, 0.0, 0.0) , + (0.55, 0.0, 0.0) , + (0.6, 0.0, 0.0) , + (0.65, 0.7333, 0.7333) , + (0.7, 0.9333, 0.9333) , + (0.75, 1.0, 1.0) , + (0.8, 1.0, 1.0) , + (0.85, 1.0, 1.0) , + (0.9, 0.8667, 0.8667) , + (0.95, 0.8, 0.8) , + (1.0, 0.8, 0.8) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.05, 0.0, 0.0) , + (0.1, 0.0, 0.0) , + (0.15, 0.0, 0.0) , + (0.2, 0.0, 0.0) , + (0.25, 0.4667, 0.4667) , + (0.3, 0.6, 0.6) , + (0.35, 0.6667, 0.6667) , + (0.4, 0.6667, 0.6667) , + (0.45, 0.6, 0.6) , + (0.5, 0.7333, 0.7333) , + (0.55, 0.8667, 0.8667) , + (0.6, 1.0, 1.0) , + (0.65, 1.0, 1.0) , + (0.7, 0.9333, 0.9333) , + (0.75, 0.8, 0.8) , + (0.8, 0.6, 0.6) , + (0.85, 0.0, 0.0) , + (0.9, 0.0, 0.0) , + (0.95, 0.0, 0.0) , + (1.0, 0.8, 0.8) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.05, 0.5333, 0.5333) , + (0.1, 0.6, 0.6) , + (0.15, 0.6667, 0.6667) , + (0.2, 0.8667, 0.8667) , + (0.25, 0.8667, 0.8667) , + (0.3, 0.8667, 0.8667) , + (0.35, 0.6667, 0.6667) , + (0.4, 0.5333, 0.5333) , + (0.45, 0.0, 0.0) , + (0.5, 0.0, 0.0) , + (0.55, 0.0, 0.0) , + (0.6, 0.0, 0.0) , + (0.65, 0.0, 0.0) , + (0.7, 0.0, 0.0) , + (0.75, 0.0, 0.0) , + (0.8, 0.0, 0.0) , + (0.85, 0.0, 0.0) , + (0.9, 0.0, 0.0) , + (0.95, 0.0, 0.0) , + (1.0, 0.8, 0.8) + } + ); seg_data pink = seg_data( - new triple[] { // red - (0.0, 0.1178, 0.1178) , - (0.015873, 0.195857, 0.195857) , - (0.031746, 0.250661, 0.250661) , - (0.047619, 0.295468, 0.295468) , - (0.063492, 0.334324, 0.334324) , - (0.079365, 0.369112, 0.369112) , - (0.095238, 0.400892, 0.400892) , - (0.111111, 0.430331, 0.430331) , - (0.126984, 0.457882, 0.457882) , - (0.142857, 0.483867, 0.483867) , - (0.15873, 0.508525, 0.508525) , - (0.174603, 0.532042, 0.532042) , - (0.190476, 0.554563, 0.554563) , - (0.206349, 0.576204, 0.576204) , - (0.222222, 0.597061, 0.597061) , - (0.238095, 0.617213, 0.617213) , - (0.253968, 0.636729, 0.636729) , - (0.269841, 0.655663, 0.655663) , - (0.285714, 0.674066, 0.674066) , - (0.301587, 0.69198, 0.69198) , - (0.31746, 0.709441, 0.709441) , - (0.333333, 0.726483, 0.726483) , - (0.349206, 0.743134, 0.743134) , - (0.365079, 0.759421, 0.759421) , - (0.380952, 0.766356, 0.766356) , - (0.396825, 0.773229, 0.773229) , - (0.412698, 0.780042, 0.780042) , - (0.428571, 0.786796, 0.786796) , - (0.444444, 0.793492, 0.793492) , - (0.460317, 0.800132, 0.800132) , - (0.47619, 0.806718, 0.806718) , - (0.492063, 0.81325, 0.81325) , - (0.507937, 0.81973, 0.81973) , - (0.52381, 0.82616, 0.82616) , - (0.539683, 0.832539, 0.832539) , - (0.555556, 0.83887, 0.83887) , - (0.571429, 0.845154, 0.845154) , - (0.587302, 0.851392, 0.851392) , - (0.603175, 0.857584, 0.857584) , - (0.619048, 0.863731, 0.863731) , - (0.634921, 0.869835, 0.869835) , - (0.650794, 0.875897, 0.875897) , - (0.666667, 0.881917, 0.881917) , - (0.68254, 0.887896, 0.887896) , - (0.698413, 0.893835, 0.893835) , - (0.714286, 0.899735, 0.899735) , - (0.730159, 0.905597, 0.905597) , - (0.746032, 0.911421, 0.911421) , - (0.761905, 0.917208, 0.917208) , - (0.777778, 0.922958, 0.922958) , - (0.793651, 0.928673, 0.928673) , - (0.809524, 0.934353, 0.934353) , - (0.825397, 0.939999, 0.939999) , - (0.84127, 0.945611, 0.945611) , - (0.857143, 0.95119, 0.95119) , - (0.873016, 0.956736, 0.956736) , - (0.888889, 0.96225, 0.96225) , - (0.904762, 0.967733, 0.967733) , - (0.920635, 0.973185, 0.973185) , - (0.936508, 0.978607, 0.978607) , - (0.952381, 0.983999, 0.983999) , - (0.968254, 0.989361, 0.989361) , - (0.984127, 0.994695, 0.994695) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (0.015873, 0.102869, 0.102869) , - (0.031746, 0.145479, 0.145479) , - (0.047619, 0.178174, 0.178174) , - (0.063492, 0.205738, 0.205738) , - (0.079365, 0.230022, 0.230022) , - (0.095238, 0.251976, 0.251976) , - (0.111111, 0.272166, 0.272166) , - (0.126984, 0.290957, 0.290957) , - (0.142857, 0.308607, 0.308607) , - (0.15873, 0.3253, 0.3253) , - (0.174603, 0.341178, 0.341178) , - (0.190476, 0.356348, 0.356348) , - (0.206349, 0.370899, 0.370899) , - (0.222222, 0.3849, 0.3849) , - (0.238095, 0.39841, 0.39841) , - (0.253968, 0.411476, 0.411476) , - (0.269841, 0.424139, 0.424139) , - (0.285714, 0.436436, 0.436436) , - (0.301587, 0.448395, 0.448395) , - (0.31746, 0.460044, 0.460044) , - (0.333333, 0.471405, 0.471405) , - (0.349206, 0.482498, 0.482498) , - (0.365079, 0.493342, 0.493342) , - (0.380952, 0.517549, 0.517549) , - (0.396825, 0.540674, 0.540674) , - (0.412698, 0.562849, 0.562849) , - (0.428571, 0.584183, 0.584183) , - (0.444444, 0.604765, 0.604765) , - (0.460317, 0.624669, 0.624669) , - (0.47619, 0.643958, 0.643958) , - (0.492063, 0.662687, 0.662687) , - (0.507937, 0.6809, 0.6809) , - (0.52381, 0.698638, 0.698638) , - (0.539683, 0.715937, 0.715937) , - (0.555556, 0.732828, 0.732828) , - (0.571429, 0.749338, 0.749338) , - (0.587302, 0.765493, 0.765493) , - (0.603175, 0.781313, 0.781313) , - (0.619048, 0.796819, 0.796819) , - (0.634921, 0.812029, 0.812029) , - (0.650794, 0.82696, 0.82696) , - (0.666667, 0.841625, 0.841625) , - (0.68254, 0.85604, 0.85604) , - (0.698413, 0.870216, 0.870216) , - (0.714286, 0.884164, 0.884164) , - (0.730159, 0.897896, 0.897896) , - (0.746032, 0.911421, 0.911421) , - (0.761905, 0.917208, 0.917208) , - (0.777778, 0.922958, 0.922958) , - (0.793651, 0.928673, 0.928673) , - (0.809524, 0.934353, 0.934353) , - (0.825397, 0.939999, 0.939999) , - (0.84127, 0.945611, 0.945611) , - (0.857143, 0.95119, 0.95119) , - (0.873016, 0.956736, 0.956736) , - (0.888889, 0.96225, 0.96225) , - (0.904762, 0.967733, 0.967733) , - (0.920635, 0.973185, 0.973185) , - (0.936508, 0.978607, 0.978607) , - (0.952381, 0.983999, 0.983999) , - (0.968254, 0.989361, 0.989361) , - (0.984127, 0.994695, 0.994695) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 0.0, 0.0) , - (0.015873, 0.102869, 0.102869) , - (0.031746, 0.145479, 0.145479) , - (0.047619, 0.178174, 0.178174) , - (0.063492, 0.205738, 0.205738) , - (0.079365, 0.230022, 0.230022) , - (0.095238, 0.251976, 0.251976) , - (0.111111, 0.272166, 0.272166) , - (0.126984, 0.290957, 0.290957) , - (0.142857, 0.308607, 0.308607) , - (0.15873, 0.3253, 0.3253) , - (0.174603, 0.341178, 0.341178) , - (0.190476, 0.356348, 0.356348) , - (0.206349, 0.370899, 0.370899) , - (0.222222, 0.3849, 0.3849) , - (0.238095, 0.39841, 0.39841) , - (0.253968, 0.411476, 0.411476) , - (0.269841, 0.424139, 0.424139) , - (0.285714, 0.436436, 0.436436) , - (0.301587, 0.448395, 0.448395) , - (0.31746, 0.460044, 0.460044) , - (0.333333, 0.471405, 0.471405) , - (0.349206, 0.482498, 0.482498) , - (0.365079, 0.493342, 0.493342) , - (0.380952, 0.503953, 0.503953) , - (0.396825, 0.514344, 0.514344) , - (0.412698, 0.524531, 0.524531) , - (0.428571, 0.534522, 0.534522) , - (0.444444, 0.544331, 0.544331) , - (0.460317, 0.553966, 0.553966) , - (0.47619, 0.563436, 0.563436) , - (0.492063, 0.57275, 0.57275) , - (0.507937, 0.581914, 0.581914) , - (0.52381, 0.590937, 0.590937) , - (0.539683, 0.599824, 0.599824) , - (0.555556, 0.608581, 0.608581) , - (0.571429, 0.617213, 0.617213) , - (0.587302, 0.625727, 0.625727) , - (0.603175, 0.634126, 0.634126) , - (0.619048, 0.642416, 0.642416) , - (0.634921, 0.6506, 0.6506) , - (0.650794, 0.658682, 0.658682) , - (0.666667, 0.666667, 0.666667) , - (0.68254, 0.674556, 0.674556) , - (0.698413, 0.682355, 0.682355) , - (0.714286, 0.690066, 0.690066) , - (0.730159, 0.697691, 0.697691) , - (0.746032, 0.705234, 0.705234) , - (0.761905, 0.727166, 0.727166) , - (0.777778, 0.748455, 0.748455) , - (0.793651, 0.769156, 0.769156) , - (0.809524, 0.789314, 0.789314) , - (0.825397, 0.808969, 0.808969) , - (0.84127, 0.828159, 0.828159) , - (0.857143, 0.846913, 0.846913) , - (0.873016, 0.865261, 0.865261) , - (0.888889, 0.883229, 0.883229) , - (0.904762, 0.900837, 0.900837) , - (0.920635, 0.918109, 0.918109) , - (0.936508, 0.935061, 0.935061) , - (0.952381, 0.951711, 0.951711) , - (0.968254, 0.968075, 0.968075) , - (0.984127, 0.984167, 0.984167) , - (1.0, 1.0, 1.0) - } -); + new triple[] { // red + (0.0, 0.1178, 0.1178) , + (0.015873, 0.195857, 0.195857) , + (0.031746, 0.250661, 0.250661) , + (0.047619, 0.295468, 0.295468) , + (0.063492, 0.334324, 0.334324) , + (0.079365, 0.369112, 0.369112) , + (0.095238, 0.400892, 0.400892) , + (0.111111, 0.430331, 0.430331) , + (0.126984, 0.457882, 0.457882) , + (0.142857, 0.483867, 0.483867) , + (0.15873, 0.508525, 0.508525) , + (0.174603, 0.532042, 0.532042) , + (0.190476, 0.554563, 0.554563) , + (0.206349, 0.576204, 0.576204) , + (0.222222, 0.597061, 0.597061) , + (0.238095, 0.617213, 0.617213) , + (0.253968, 0.636729, 0.636729) , + (0.269841, 0.655663, 0.655663) , + (0.285714, 0.674066, 0.674066) , + (0.301587, 0.69198, 0.69198) , + (0.31746, 0.709441, 0.709441) , + (0.333333, 0.726483, 0.726483) , + (0.349206, 0.743134, 0.743134) , + (0.365079, 0.759421, 0.759421) , + (0.380952, 0.766356, 0.766356) , + (0.396825, 0.773229, 0.773229) , + (0.412698, 0.780042, 0.780042) , + (0.428571, 0.786796, 0.786796) , + (0.444444, 0.793492, 0.793492) , + (0.460317, 0.800132, 0.800132) , + (0.47619, 0.806718, 0.806718) , + (0.492063, 0.81325, 0.81325) , + (0.507937, 0.81973, 0.81973) , + (0.52381, 0.82616, 0.82616) , + (0.539683, 0.832539, 0.832539) , + (0.555556, 0.83887, 0.83887) , + (0.571429, 0.845154, 0.845154) , + (0.587302, 0.851392, 0.851392) , + (0.603175, 0.857584, 0.857584) , + (0.619048, 0.863731, 0.863731) , + (0.634921, 0.869835, 0.869835) , + (0.650794, 0.875897, 0.875897) , + (0.666667, 0.881917, 0.881917) , + (0.68254, 0.887896, 0.887896) , + (0.698413, 0.893835, 0.893835) , + (0.714286, 0.899735, 0.899735) , + (0.730159, 0.905597, 0.905597) , + (0.746032, 0.911421, 0.911421) , + (0.761905, 0.917208, 0.917208) , + (0.777778, 0.922958, 0.922958) , + (0.793651, 0.928673, 0.928673) , + (0.809524, 0.934353, 0.934353) , + (0.825397, 0.939999, 0.939999) , + (0.84127, 0.945611, 0.945611) , + (0.857143, 0.95119, 0.95119) , + (0.873016, 0.956736, 0.956736) , + (0.888889, 0.96225, 0.96225) , + (0.904762, 0.967733, 0.967733) , + (0.920635, 0.973185, 0.973185) , + (0.936508, 0.978607, 0.978607) , + (0.952381, 0.983999, 0.983999) , + (0.968254, 0.989361, 0.989361) , + (0.984127, 0.994695, 0.994695) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (0.015873, 0.102869, 0.102869) , + (0.031746, 0.145479, 0.145479) , + (0.047619, 0.178174, 0.178174) , + (0.063492, 0.205738, 0.205738) , + (0.079365, 0.230022, 0.230022) , + (0.095238, 0.251976, 0.251976) , + (0.111111, 0.272166, 0.272166) , + (0.126984, 0.290957, 0.290957) , + (0.142857, 0.308607, 0.308607) , + (0.15873, 0.3253, 0.3253) , + (0.174603, 0.341178, 0.341178) , + (0.190476, 0.356348, 0.356348) , + (0.206349, 0.370899, 0.370899) , + (0.222222, 0.3849, 0.3849) , + (0.238095, 0.39841, 0.39841) , + (0.253968, 0.411476, 0.411476) , + (0.269841, 0.424139, 0.424139) , + (0.285714, 0.436436, 0.436436) , + (0.301587, 0.448395, 0.448395) , + (0.31746, 0.460044, 0.460044) , + (0.333333, 0.471405, 0.471405) , + (0.349206, 0.482498, 0.482498) , + (0.365079, 0.493342, 0.493342) , + (0.380952, 0.517549, 0.517549) , + (0.396825, 0.540674, 0.540674) , + (0.412698, 0.562849, 0.562849) , + (0.428571, 0.584183, 0.584183) , + (0.444444, 0.604765, 0.604765) , + (0.460317, 0.624669, 0.624669) , + (0.47619, 0.643958, 0.643958) , + (0.492063, 0.662687, 0.662687) , + (0.507937, 0.6809, 0.6809) , + (0.52381, 0.698638, 0.698638) , + (0.539683, 0.715937, 0.715937) , + (0.555556, 0.732828, 0.732828) , + (0.571429, 0.749338, 0.749338) , + (0.587302, 0.765493, 0.765493) , + (0.603175, 0.781313, 0.781313) , + (0.619048, 0.796819, 0.796819) , + (0.634921, 0.812029, 0.812029) , + (0.650794, 0.82696, 0.82696) , + (0.666667, 0.841625, 0.841625) , + (0.68254, 0.85604, 0.85604) , + (0.698413, 0.870216, 0.870216) , + (0.714286, 0.884164, 0.884164) , + (0.730159, 0.897896, 0.897896) , + (0.746032, 0.911421, 0.911421) , + (0.761905, 0.917208, 0.917208) , + (0.777778, 0.922958, 0.922958) , + (0.793651, 0.928673, 0.928673) , + (0.809524, 0.934353, 0.934353) , + (0.825397, 0.939999, 0.939999) , + (0.84127, 0.945611, 0.945611) , + (0.857143, 0.95119, 0.95119) , + (0.873016, 0.956736, 0.956736) , + (0.888889, 0.96225, 0.96225) , + (0.904762, 0.967733, 0.967733) , + (0.920635, 0.973185, 0.973185) , + (0.936508, 0.978607, 0.978607) , + (0.952381, 0.983999, 0.983999) , + (0.968254, 0.989361, 0.989361) , + (0.984127, 0.994695, 0.994695) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 0.0, 0.0) , + (0.015873, 0.102869, 0.102869) , + (0.031746, 0.145479, 0.145479) , + (0.047619, 0.178174, 0.178174) , + (0.063492, 0.205738, 0.205738) , + (0.079365, 0.230022, 0.230022) , + (0.095238, 0.251976, 0.251976) , + (0.111111, 0.272166, 0.272166) , + (0.126984, 0.290957, 0.290957) , + (0.142857, 0.308607, 0.308607) , + (0.15873, 0.3253, 0.3253) , + (0.174603, 0.341178, 0.341178) , + (0.190476, 0.356348, 0.356348) , + (0.206349, 0.370899, 0.370899) , + (0.222222, 0.3849, 0.3849) , + (0.238095, 0.39841, 0.39841) , + (0.253968, 0.411476, 0.411476) , + (0.269841, 0.424139, 0.424139) , + (0.285714, 0.436436, 0.436436) , + (0.301587, 0.448395, 0.448395) , + (0.31746, 0.460044, 0.460044) , + (0.333333, 0.471405, 0.471405) , + (0.349206, 0.482498, 0.482498) , + (0.365079, 0.493342, 0.493342) , + (0.380952, 0.503953, 0.503953) , + (0.396825, 0.514344, 0.514344) , + (0.412698, 0.524531, 0.524531) , + (0.428571, 0.534522, 0.534522) , + (0.444444, 0.544331, 0.544331) , + (0.460317, 0.553966, 0.553966) , + (0.47619, 0.563436, 0.563436) , + (0.492063, 0.57275, 0.57275) , + (0.507937, 0.581914, 0.581914) , + (0.52381, 0.590937, 0.590937) , + (0.539683, 0.599824, 0.599824) , + (0.555556, 0.608581, 0.608581) , + (0.571429, 0.617213, 0.617213) , + (0.587302, 0.625727, 0.625727) , + (0.603175, 0.634126, 0.634126) , + (0.619048, 0.642416, 0.642416) , + (0.634921, 0.6506, 0.6506) , + (0.650794, 0.658682, 0.658682) , + (0.666667, 0.666667, 0.666667) , + (0.68254, 0.674556, 0.674556) , + (0.698413, 0.682355, 0.682355) , + (0.714286, 0.690066, 0.690066) , + (0.730159, 0.697691, 0.697691) , + (0.746032, 0.705234, 0.705234) , + (0.761905, 0.727166, 0.727166) , + (0.777778, 0.748455, 0.748455) , + (0.793651, 0.769156, 0.769156) , + (0.809524, 0.789314, 0.789314) , + (0.825397, 0.808969, 0.808969) , + (0.84127, 0.828159, 0.828159) , + (0.857143, 0.846913, 0.846913) , + (0.873016, 0.865261, 0.865261) , + (0.888889, 0.883229, 0.883229) , + (0.904762, 0.900837, 0.900837) , + (0.920635, 0.918109, 0.918109) , + (0.936508, 0.935061, 0.935061) , + (0.952381, 0.951711, 0.951711) , + (0.968254, 0.968075, 0.968075) , + (0.984127, 0.984167, 0.984167) , + (1.0, 1.0, 1.0) + } + ); list_data seismic = list_data(new pen[] { - rgb (0.0, 0.0, 0.3) , - rgb (0.0, 0.0, 1.0) , - rgb (1.0, 1.0, 1.0) , - rgb (1.0, 0.0, 0.0) , - rgb (0.5, 0.0, 0.0) -}); + rgb (0.0, 0.0, 0.3) , + rgb (0.0, 0.0, 1.0) , + rgb (1.0, 1.0, 1.0) , + rgb (1.0, 0.0, 0.0) , + rgb (0.5, 0.0, 0.0) + }); seg_data spring = seg_data( - new triple[] { // red - (0.0, 1.0, 1.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 1.0, 1.0) , - (1.0, 0.0, 0.0) - } -); + new triple[] { // red + (0.0, 1.0, 1.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 1.0, 1.0) , + (1.0, 0.0, 0.0) + } + ); seg_data summer = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // green - (0.0, 0.5, 0.5) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 0.4, 0.4) , - (1.0, 0.4, 0.4) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // green + (0.0, 0.5, 0.5) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 0.4, 0.4) , + (1.0, 0.4, 0.4) + } + ); list_data tab10 = list_data(new pen[] { - rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) , - rgb (1.0, 0.4980392156862745, 0.054901960784313725) , - rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) , - rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) , - rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) , - rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) , - rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) , - rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) , - rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) , - rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529) -}); + rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) , + rgb (1.0, 0.4980392156862745, 0.054901960784313725) , + rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) , + rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) , + rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) , + rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) , + rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) , + rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) , + rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) , + rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529) + }); list_data tab20 = list_data(new pen[] { - rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) , - rgb (0.6823529411764706, 0.7803921568627451, 0.9098039215686274) , - rgb (1.0, 0.4980392156862745, 0.054901960784313725) , - rgb (1.0, 0.7333333333333333, 0.47058823529411764) , - rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) , - rgb (0.596078431372549, 0.8745098039215686, 0.5411764705882353) , - rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) , - rgb (1.0, 0.596078431372549, 0.5882352941176471) , - rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) , - rgb (0.7725490196078432, 0.6901960784313725, 0.8352941176470589) , - rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) , - rgb (0.7686274509803922, 0.611764705882353, 0.5803921568627451) , - rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) , - rgb (0.9686274509803922, 0.7137254901960784, 0.8235294117647058) , - rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) , - rgb (0.7803921568627451, 0.7803921568627451, 0.7803921568627451) , - rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) , - rgb (0.8588235294117647, 0.8588235294117647, 0.5529411764705883) , - rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529) , - rgb (0.6196078431372549, 0.8549019607843137, 0.8980392156862745) -}); + rgb (0.12156862745098039, 0.4666666666666667, 0.7058823529411765) , + rgb (0.6823529411764706, 0.7803921568627451, 0.9098039215686274) , + rgb (1.0, 0.4980392156862745, 0.054901960784313725) , + rgb (1.0, 0.7333333333333333, 0.47058823529411764) , + rgb (0.17254901960784313, 0.6274509803921569, 0.17254901960784313) , + rgb (0.596078431372549, 0.8745098039215686, 0.5411764705882353) , + rgb (0.8392156862745098, 0.15294117647058825, 0.1568627450980392) , + rgb (1.0, 0.596078431372549, 0.5882352941176471) , + rgb (0.5803921568627451, 0.403921568627451, 0.7411764705882353) , + rgb (0.7725490196078432, 0.6901960784313725, 0.8352941176470589) , + rgb (0.5490196078431373, 0.33725490196078434, 0.29411764705882354) , + rgb (0.7686274509803922, 0.611764705882353, 0.5803921568627451) , + rgb (0.8901960784313725, 0.4666666666666667, 0.7607843137254902) , + rgb (0.9686274509803922, 0.7137254901960784, 0.8235294117647058) , + rgb (0.4980392156862745, 0.4980392156862745, 0.4980392156862745) , + rgb (0.7803921568627451, 0.7803921568627451, 0.7803921568627451) , + rgb (0.7372549019607844, 0.7411764705882353, 0.13333333333333333) , + rgb (0.8588235294117647, 0.8588235294117647, 0.5529411764705883) , + rgb (0.09019607843137255, 0.7450980392156863, 0.8117647058823529) , + rgb (0.6196078431372549, 0.8549019607843137, 0.8980392156862745) + }); list_data tab20b = list_data(new pen[] { - rgb (0.2235294117647059, 0.23137254901960785, 0.4745098039215686) , - rgb (0.3215686274509804, 0.32941176470588235, 0.6392156862745098) , - rgb (0.4196078431372549, 0.43137254901960786, 0.8117647058823529) , - rgb (0.611764705882353, 0.6196078431372549, 0.8705882352941177) , - rgb (0.38823529411764707, 0.4745098039215686, 0.2235294117647059) , - rgb (0.5490196078431373, 0.6352941176470588, 0.3215686274509804) , - rgb (0.7098039215686275, 0.8117647058823529, 0.4196078431372549) , - rgb (0.807843137254902, 0.8588235294117647, 0.611764705882353) , - rgb (0.5490196078431373, 0.42745098039215684, 0.19215686274509805) , - rgb (0.7411764705882353, 0.6196078431372549, 0.2235294117647059) , - rgb (0.9058823529411765, 0.7294117647058823, 0.3215686274509804) , - rgb (0.9058823529411765, 0.796078431372549, 0.5803921568627451) , - rgb (0.5176470588235295, 0.23529411764705882, 0.2235294117647059) , - rgb (0.6784313725490196, 0.28627450980392155, 0.2901960784313726) , - rgb (0.8392156862745098, 0.3803921568627451, 0.4196078431372549) , - rgb (0.9058823529411765, 0.5882352941176471, 0.611764705882353) , - rgb (0.4823529411764706, 0.2549019607843137, 0.45098039215686275) , - rgb (0.6470588235294118, 0.3176470588235294, 0.5803921568627451) , - rgb (0.807843137254902, 0.42745098039215684, 0.7411764705882353) , - rgb (0.8705882352941177, 0.6196078431372549, 0.8392156862745098) -}); + rgb (0.2235294117647059, 0.23137254901960785, 0.4745098039215686) , + rgb (0.3215686274509804, 0.32941176470588235, 0.6392156862745098) , + rgb (0.4196078431372549, 0.43137254901960786, 0.8117647058823529) , + rgb (0.611764705882353, 0.6196078431372549, 0.8705882352941177) , + rgb (0.38823529411764707, 0.4745098039215686, 0.2235294117647059) , + rgb (0.5490196078431373, 0.6352941176470588, 0.3215686274509804) , + rgb (0.7098039215686275, 0.8117647058823529, 0.4196078431372549) , + rgb (0.807843137254902, 0.8588235294117647, 0.611764705882353) , + rgb (0.5490196078431373, 0.42745098039215684, 0.19215686274509805) , + rgb (0.7411764705882353, 0.6196078431372549, 0.2235294117647059) , + rgb (0.9058823529411765, 0.7294117647058823, 0.3215686274509804) , + rgb (0.9058823529411765, 0.796078431372549, 0.5803921568627451) , + rgb (0.5176470588235295, 0.23529411764705882, 0.2235294117647059) , + rgb (0.6784313725490196, 0.28627450980392155, 0.2901960784313726) , + rgb (0.8392156862745098, 0.3803921568627451, 0.4196078431372549) , + rgb (0.9058823529411765, 0.5882352941176471, 0.611764705882353) , + rgb (0.4823529411764706, 0.2549019607843137, 0.45098039215686275) , + rgb (0.6470588235294118, 0.3176470588235294, 0.5803921568627451) , + rgb (0.807843137254902, 0.42745098039215684, 0.7411764705882353) , + rgb (0.8705882352941177, 0.6196078431372549, 0.8392156862745098) + }); list_data tab20c = list_data(new pen[] { - rgb (0.19215686274509805, 0.5098039215686274, 0.7411764705882353) , - rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) , - rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) , - rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) , - rgb (0.9019607843137255, 0.3333333333333333, 0.050980392156862744) , - rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) , - rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) , - rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) , - rgb (0.19215686274509805, 0.6392156862745098, 0.32941176470588235) , - rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) , - rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) , - rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) , - rgb (0.4588235294117647, 0.4196078431372549, 0.6941176470588235) , - rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) , - rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) , - rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) , - rgb (0.38823529411764707, 0.38823529411764707, 0.38823529411764707) , - rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) , - rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) , - rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) -}); + rgb (0.19215686274509805, 0.5098039215686274, 0.7411764705882353) , + rgb (0.4196078431372549, 0.6823529411764706, 0.8392156862745098) , + rgb (0.6196078431372549, 0.792156862745098, 0.8823529411764706) , + rgb (0.7764705882352941, 0.8588235294117647, 0.9372549019607843) , + rgb (0.9019607843137255, 0.3333333333333333, 0.050980392156862744) , + rgb (0.9921568627450981, 0.5529411764705883, 0.23529411764705882) , + rgb (0.9921568627450981, 0.6823529411764706, 0.4196078431372549) , + rgb (0.9921568627450981, 0.8156862745098039, 0.6352941176470588) , + rgb (0.19215686274509805, 0.6392156862745098, 0.32941176470588235) , + rgb (0.4549019607843137, 0.7686274509803922, 0.4627450980392157) , + rgb (0.6313725490196078, 0.8509803921568627, 0.6078431372549019) , + rgb (0.7803921568627451, 0.9137254901960784, 0.7529411764705882) , + rgb (0.4588235294117647, 0.4196078431372549, 0.6941176470588235) , + rgb (0.6196078431372549, 0.6039215686274509, 0.7843137254901961) , + rgb (0.7372549019607844, 0.7411764705882353, 0.8627450980392157) , + rgb (0.8549019607843137, 0.8549019607843137, 0.9215686274509803) , + rgb (0.38823529411764707, 0.38823529411764707, 0.38823529411764707) , + rgb (0.5882352941176471, 0.5882352941176471, 0.5882352941176471) , + rgb (0.7411764705882353, 0.7411764705882353, 0.7411764705882353) , + rgb (0.8509803921568627, 0.8509803921568627, 0.8509803921568627) + }); seg_data winter = seg_data( - new triple[] { // red - (0.0, 0.0, 0.0) , - (1.0, 0.0, 0.0) - }, - new triple[] { // green - (0.0, 0.0, 0.0) , - (1.0, 1.0, 1.0) - }, - new triple[] { // blue - (0.0, 1.0, 1.0) , - (1.0, 0.5, 0.5) - } -); + new triple[] { // red + (0.0, 0.0, 0.0) , + (1.0, 0.0, 0.0) + }, + new triple[] { // green + (0.0, 0.0, 0.0) , + (1.0, 1.0, 1.0) + }, + new triple[] { // blue + (0.0, 1.0, 1.0) , + (1.0, 0.5, 0.5) + } + ); seg_data wistia = seg_data( - new triple[] { // red - (0.0, 0.8941176470588236, 0.8941176470588236) , - (0.25, 1.0, 1.0) , - (0.5, 1.0, 1.0) , - (0.75, 1.0, 1.0) , - (1.0, 0.9882352941176471, 0.9882352941176471) - }, - new triple[] { // green - (0.0, 1.0, 1.0) , - (0.25, 0.9098039215686274, 0.9098039215686274) , - (0.5, 0.7411764705882353, 0.7411764705882353) , - (0.75, 0.6274509803921569, 0.6274509803921569) , - (1.0, 0.4980392156862745, 0.4980392156862745) - }, - new triple[] { // blue - (0.0, 0.47843137254901963, 0.47843137254901963) , - (0.25, 0.10196078431372549, 0.10196078431372549) , - (0.5, 0.0, 0.0) , - (0.75, 0.0, 0.0) , - (1.0, 0.0, 0.0) - } -); + new triple[] { // red + (0.0, 0.8941176470588236, 0.8941176470588236) , + (0.25, 1.0, 1.0) , + (0.5, 1.0, 1.0) , + (0.75, 1.0, 1.0) , + (1.0, 0.9882352941176471, 0.9882352941176471) + }, + new triple[] { // green + (0.0, 1.0, 1.0) , + (0.25, 0.9098039215686274, 0.9098039215686274) , + (0.5, 0.7411764705882353, 0.7411764705882353) , + (0.75, 0.6274509803921569, 0.6274509803921569) , + (1.0, 0.4980392156862745, 0.4980392156862745) + }, + new triple[] { // blue + (0.0, 0.47843137254901963, 0.47843137254901963) , + (0.25, 0.10196078431372549, 0.10196078431372549) , + (0.5, 0.0, 0.0) , + (0.75, 0.0, 0.0) , + (1.0, 0.0, 0.0) + } + ); list_data cividis = list_data(new pen[] { - rgb (0.0, 0.135112, 0.304751) , - rgb (0.0, 0.138068, 0.311105) , - rgb (0.0, 0.141013, 0.317579) , - rgb (0.0, 0.143951, 0.323982) , - rgb (0.0, 0.146877, 0.330479) , - rgb (0.0, 0.149791, 0.337065) , - rgb (0.0, 0.152673, 0.343704) , - rgb (0.0, 0.155377, 0.3505) , - rgb (0.0, 0.157932, 0.357521) , - rgb (0.0, 0.160495, 0.364534) , - rgb (0.0, 0.163058, 0.371608) , - rgb (0.0, 0.165621, 0.378769) , - rgb (0.0, 0.168204, 0.385902) , - rgb (0.0, 0.1708, 0.3931) , - rgb (0.0, 0.17342, 0.400353) , - rgb (0.0, 0.176082, 0.407577) , - rgb (0.0, 0.178802, 0.414764) , - rgb (0.0, 0.18161, 0.421859) , - rgb (0.0, 0.18455, 0.428802) , - rgb (0.0, 0.186915, 0.435532) , - rgb (0.0, 0.188769, 0.439563) , - rgb (0.0, 0.19095, 0.441085) , - rgb (0.0, 0.193366, 0.441561) , - rgb (0.003602, 0.195911, 0.441564) , - rgb (0.017852, 0.198528, 0.441248) , - rgb (0.03211, 0.201199, 0.440785) , - rgb (0.046205, 0.203903, 0.440196) , - rgb (0.058378, 0.206629, 0.439531) , - rgb (0.068968, 0.209372, 0.438863) , - rgb (0.078624, 0.212122, 0.438105) , - rgb (0.087465, 0.214879, 0.437342) , - rgb (0.095645, 0.217643, 0.436593) , - rgb (0.103401, 0.220406, 0.43579) , - rgb (0.110658, 0.22317, 0.435067) , - rgb (0.117612, 0.225935, 0.434308) , - rgb (0.124291, 0.228697, 0.433547) , - rgb (0.130669, 0.231458, 0.43284) , - rgb (0.13683, 0.234216, 0.432148) , - rgb (0.142852, 0.236972, 0.431404) , - rgb (0.148638, 0.239724, 0.430752) , - rgb (0.154261, 0.242475, 0.43012) , - rgb (0.159733, 0.245221, 0.429528) , - rgb (0.165113, 0.247965, 0.428908) , - rgb (0.170362, 0.250707, 0.428325) , - rgb (0.17549, 0.253444, 0.42779) , - rgb (0.180503, 0.25618, 0.427299) , - rgb (0.185453, 0.258914, 0.426788) , - rgb (0.190303, 0.261644, 0.426329) , - rgb (0.195057, 0.264372, 0.425924) , - rgb (0.199764, 0.267099, 0.425497) , - rgb (0.204385, 0.269823, 0.425126) , - rgb (0.208926, 0.272546, 0.424809) , - rgb (0.213431, 0.275266, 0.42448) , - rgb (0.217863, 0.277985, 0.424206) , - rgb (0.222264, 0.280702, 0.423914) , - rgb (0.226598, 0.283419, 0.423678) , - rgb (0.230871, 0.286134, 0.423498) , - rgb (0.23512, 0.288848, 0.423304) , - rgb (0.239312, 0.291562, 0.423167) , - rgb (0.243485, 0.294274, 0.423014) , - rgb (0.247605, 0.296986, 0.422917) , - rgb (0.251675, 0.299698, 0.422873) , - rgb (0.255731, 0.302409, 0.422814) , - rgb (0.25974, 0.30512, 0.42281) , - rgb (0.263738, 0.307831, 0.422789) , - rgb (0.267693, 0.310542, 0.422821) , - rgb (0.271639, 0.313253, 0.422837) , - rgb (0.275513, 0.315965, 0.422979) , - rgb (0.279411, 0.318677, 0.423031) , - rgb (0.28324, 0.32139, 0.423211) , - rgb (0.287065, 0.324103, 0.423373) , - rgb (0.290884, 0.326816, 0.423517) , - rgb (0.294669, 0.329531, 0.423716) , - rgb (0.298421, 0.332247, 0.423973) , - rgb (0.302169, 0.334963, 0.424213) , - rgb (0.305886, 0.337681, 0.424512) , - rgb (0.309601, 0.340399, 0.42479) , - rgb (0.313287, 0.34312, 0.42512) , - rgb (0.316941, 0.345842, 0.425512) , - rgb (0.320595, 0.348565, 0.425889) , - rgb (0.32425, 0.351289, 0.42625) , - rgb (0.327875, 0.354016, 0.42667) , - rgb (0.331474, 0.356744, 0.427144) , - rgb (0.335073, 0.359474, 0.427605) , - rgb (0.338673, 0.362206, 0.428053) , - rgb (0.342246, 0.364939, 0.428559) , - rgb (0.345793, 0.367676, 0.429127) , - rgb (0.349341, 0.370414, 0.429685) , - rgb (0.352892, 0.373153, 0.430226) , - rgb (0.356418, 0.375896, 0.430823) , - rgb (0.359916, 0.378641, 0.431501) , - rgb (0.363446, 0.381388, 0.432075) , - rgb (0.366923, 0.384139, 0.432796) , - rgb (0.37043, 0.38689, 0.433428) , - rgb (0.373884, 0.389646, 0.434209) , - rgb (0.377371, 0.392404, 0.43489) , - rgb (0.38083, 0.395164, 0.435653) , - rgb (0.384268, 0.397928, 0.436475) , - rgb (0.387705, 0.400694, 0.437305) , - rgb (0.391151, 0.403464, 0.438096) , - rgb (0.394568, 0.406236, 0.438986) , - rgb (0.397991, 0.409011, 0.439848) , - rgb (0.401418, 0.41179, 0.440708) , - rgb (0.40482, 0.414572, 0.441642) , - rgb (0.408226, 0.417357, 0.44257) , - rgb (0.411607, 0.420145, 0.443577) , - rgb (0.414992, 0.422937, 0.444578) , - rgb (0.418383, 0.425733, 0.44556) , - rgb (0.421748, 0.428531, 0.44664) , - rgb (0.42512, 0.431334, 0.447692) , - rgb (0.428462, 0.43414, 0.448864) , - rgb (0.431817, 0.43695, 0.449982) , - rgb (0.435168, 0.439763, 0.451134) , - rgb (0.438504, 0.44258, 0.452341) , - rgb (0.44181, 0.445402, 0.453659) , - rgb (0.445148, 0.448226, 0.454885) , - rgb (0.448447, 0.451053, 0.456264) , - rgb (0.451759, 0.453887, 0.457582) , - rgb (0.455072, 0.456718, 0.458976) , - rgb (0.458366, 0.459552, 0.460457) , - rgb (0.461616, 0.462405, 0.461969) , - rgb (0.464947, 0.465241, 0.463395) , - rgb (0.468254, 0.468083, 0.464908) , - rgb (0.471501, 0.47096, 0.466357) , - rgb (0.474812, 0.473832, 0.467681) , - rgb (0.478186, 0.476699, 0.468845) , - rgb (0.481622, 0.479573, 0.469767) , - rgb (0.485141, 0.482451, 0.470384) , - rgb (0.488697, 0.485318, 0.471008) , - rgb (0.492278, 0.488198, 0.471453) , - rgb (0.495913, 0.491076, 0.471751) , - rgb (0.499552, 0.49396, 0.472032) , - rgb (0.503185, 0.496851, 0.472305) , - rgb (0.506866, 0.499743, 0.472432) , - rgb (0.51054, 0.502643, 0.47255) , - rgb (0.514226, 0.505546, 0.47264) , - rgb (0.51792, 0.508454, 0.472707) , - rgb (0.521643, 0.511367, 0.472639) , - rgb (0.525348, 0.514285, 0.47266) , - rgb (0.529086, 0.517207, 0.472543) , - rgb (0.532829, 0.520135, 0.472401) , - rgb (0.536553, 0.523067, 0.472352) , - rgb (0.540307, 0.526005, 0.472163) , - rgb (0.544069, 0.528948, 0.471947) , - rgb (0.54784, 0.531895, 0.471704) , - rgb (0.551612, 0.534849, 0.471439) , - rgb (0.555393, 0.537807, 0.471147) , - rgb (0.559181, 0.540771, 0.470829) , - rgb (0.562972, 0.543741, 0.470488) , - rgb (0.566802, 0.546715, 0.469988) , - rgb (0.570607, 0.549695, 0.469593) , - rgb (0.574417, 0.552682, 0.469172) , - rgb (0.578236, 0.555673, 0.468724) , - rgb (0.582087, 0.55867, 0.468118) , - rgb (0.585916, 0.561674, 0.467618) , - rgb (0.589753, 0.564682, 0.46709) , - rgb (0.593622, 0.567697, 0.466401) , - rgb (0.597469, 0.570718, 0.465821) , - rgb (0.601354, 0.573743, 0.465074) , - rgb (0.605211, 0.576777, 0.464441) , - rgb (0.609105, 0.579816, 0.463638) , - rgb (0.612977, 0.582861, 0.46295) , - rgb (0.616852, 0.585913, 0.462237) , - rgb (0.620765, 0.58897, 0.461351) , - rgb (0.624654, 0.592034, 0.460583) , - rgb (0.628576, 0.595104, 0.459641) , - rgb (0.632506, 0.59818, 0.458668) , - rgb (0.636412, 0.601264, 0.457818) , - rgb (0.640352, 0.604354, 0.456791) , - rgb (0.64427, 0.60745, 0.455886) , - rgb (0.648222, 0.610553, 0.454801) , - rgb (0.652178, 0.613664, 0.453689) , - rgb (0.656114, 0.61678, 0.452702) , - rgb (0.660082, 0.619904, 0.451534) , - rgb (0.664055, 0.623034, 0.450338) , - rgb (0.668008, 0.626171, 0.44927) , - rgb (0.671991, 0.629316, 0.448018) , - rgb (0.675981, 0.632468, 0.446736) , - rgb (0.679979, 0.635626, 0.445424) , - rgb (0.68395, 0.638793, 0.444251) , - rgb (0.687957, 0.641966, 0.442886) , - rgb (0.691971, 0.645145, 0.441491) , - rgb (0.695985, 0.648334, 0.440072) , - rgb (0.700008, 0.651529, 0.438624) , - rgb (0.704037, 0.654731, 0.437147) , - rgb (0.708067, 0.657942, 0.435647) , - rgb (0.712105, 0.66116, 0.434117) , - rgb (0.716177, 0.664384, 0.432386) , - rgb (0.720222, 0.667618, 0.430805) , - rgb (0.724274, 0.670859, 0.429194) , - rgb (0.728334, 0.674107, 0.427554) , - rgb (0.732422, 0.677364, 0.425717) , - rgb (0.736488, 0.680629, 0.424028) , - rgb (0.740589, 0.6839, 0.422131) , - rgb (0.744664, 0.687181, 0.420393) , - rgb (0.748772, 0.69047, 0.418448) , - rgb (0.752886, 0.693766, 0.416472) , - rgb (0.756975, 0.697071, 0.414659) , - rgb (0.761096, 0.700384, 0.412638) , - rgb (0.765223, 0.703705, 0.410587) , - rgb (0.769353, 0.707035, 0.408516) , - rgb (0.773486, 0.710373, 0.406422) , - rgb (0.777651, 0.713719, 0.404112) , - rgb (0.781795, 0.717074, 0.401966) , - rgb (0.785965, 0.720438, 0.399613) , - rgb (0.790116, 0.72381, 0.397423) , - rgb (0.794298, 0.72719, 0.395016) , - rgb (0.79848, 0.73058, 0.392597) , - rgb (0.802667, 0.733978, 0.390153) , - rgb (0.806859, 0.737385, 0.387684) , - rgb (0.811054, 0.740801, 0.385198) , - rgb (0.815274, 0.744226, 0.382504) , - rgb (0.819499, 0.747659, 0.379785) , - rgb (0.823729, 0.751101, 0.377043) , - rgb (0.827959, 0.754553, 0.374292) , - rgb (0.832192, 0.758014, 0.371529) , - rgb (0.836429, 0.761483, 0.368747) , - rgb (0.840693, 0.764962, 0.365746) , - rgb (0.844957, 0.76845, 0.362741) , - rgb (0.849223, 0.771947, 0.359729) , - rgb (0.853515, 0.775454, 0.3565) , - rgb (0.857809, 0.778969, 0.353259) , - rgb (0.862105, 0.782494, 0.350011) , - rgb (0.866421, 0.786028, 0.346571) , - rgb (0.870717, 0.789572, 0.343333) , - rgb (0.875057, 0.793125, 0.339685) , - rgb (0.879378, 0.796687, 0.336241) , - rgb (0.88372, 0.800258, 0.332599) , - rgb (0.888081, 0.803839, 0.32877) , - rgb (0.89244, 0.80743, 0.324968) , - rgb (0.896818, 0.81103, 0.320982) , - rgb (0.901195, 0.814639, 0.317021) , - rgb (0.905589, 0.818257, 0.312889) , - rgb (0.91, 0.821885, 0.308594) , - rgb (0.914407, 0.825522, 0.304348) , - rgb (0.918828, 0.829168, 0.29996) , - rgb (0.923279, 0.832822, 0.295244) , - rgb (0.927724, 0.836486, 0.290611) , - rgb (0.93218, 0.840159, 0.28588) , - rgb (0.93666, 0.843841, 0.280876) , - rgb (0.941147, 0.84753, 0.275815) , - rgb (0.945654, 0.851228, 0.270532) , - rgb (0.950178, 0.854933, 0.265085) , - rgb (0.954725, 0.858646, 0.259365) , - rgb (0.959284, 0.862365, 0.253563) , - rgb (0.963872, 0.866089, 0.247445) , - rgb (0.968469, 0.869819, 0.24131) , - rgb (0.973114, 0.87355, 0.234677) , - rgb (0.97778, 0.877281, 0.227954) , - rgb (0.982497, 0.881008, 0.220878) , - rgb (0.987293, 0.884718, 0.213336) , - rgb (0.992218, 0.888385, 0.205468) , - rgb (0.994847, 0.892954, 0.203445) , - rgb (0.995249, 0.898384, 0.207561) , - rgb (0.995503, 0.903866, 0.21237) , - rgb (0.995737, 0.909344, 0.217772) -}); + rgb (0.0, 0.135112, 0.304751) , + rgb (0.0, 0.138068, 0.311105) , + rgb (0.0, 0.141013, 0.317579) , + rgb (0.0, 0.143951, 0.323982) , + rgb (0.0, 0.146877, 0.330479) , + rgb (0.0, 0.149791, 0.337065) , + rgb (0.0, 0.152673, 0.343704) , + rgb (0.0, 0.155377, 0.3505) , + rgb (0.0, 0.157932, 0.357521) , + rgb (0.0, 0.160495, 0.364534) , + rgb (0.0, 0.163058, 0.371608) , + rgb (0.0, 0.165621, 0.378769) , + rgb (0.0, 0.168204, 0.385902) , + rgb (0.0, 0.1708, 0.3931) , + rgb (0.0, 0.17342, 0.400353) , + rgb (0.0, 0.176082, 0.407577) , + rgb (0.0, 0.178802, 0.414764) , + rgb (0.0, 0.18161, 0.421859) , + rgb (0.0, 0.18455, 0.428802) , + rgb (0.0, 0.186915, 0.435532) , + rgb (0.0, 0.188769, 0.439563) , + rgb (0.0, 0.19095, 0.441085) , + rgb (0.0, 0.193366, 0.441561) , + rgb (0.003602, 0.195911, 0.441564) , + rgb (0.017852, 0.198528, 0.441248) , + rgb (0.03211, 0.201199, 0.440785) , + rgb (0.046205, 0.203903, 0.440196) , + rgb (0.058378, 0.206629, 0.439531) , + rgb (0.068968, 0.209372, 0.438863) , + rgb (0.078624, 0.212122, 0.438105) , + rgb (0.087465, 0.214879, 0.437342) , + rgb (0.095645, 0.217643, 0.436593) , + rgb (0.103401, 0.220406, 0.43579) , + rgb (0.110658, 0.22317, 0.435067) , + rgb (0.117612, 0.225935, 0.434308) , + rgb (0.124291, 0.228697, 0.433547) , + rgb (0.130669, 0.231458, 0.43284) , + rgb (0.13683, 0.234216, 0.432148) , + rgb (0.142852, 0.236972, 0.431404) , + rgb (0.148638, 0.239724, 0.430752) , + rgb (0.154261, 0.242475, 0.43012) , + rgb (0.159733, 0.245221, 0.429528) , + rgb (0.165113, 0.247965, 0.428908) , + rgb (0.170362, 0.250707, 0.428325) , + rgb (0.17549, 0.253444, 0.42779) , + rgb (0.180503, 0.25618, 0.427299) , + rgb (0.185453, 0.258914, 0.426788) , + rgb (0.190303, 0.261644, 0.426329) , + rgb (0.195057, 0.264372, 0.425924) , + rgb (0.199764, 0.267099, 0.425497) , + rgb (0.204385, 0.269823, 0.425126) , + rgb (0.208926, 0.272546, 0.424809) , + rgb (0.213431, 0.275266, 0.42448) , + rgb (0.217863, 0.277985, 0.424206) , + rgb (0.222264, 0.280702, 0.423914) , + rgb (0.226598, 0.283419, 0.423678) , + rgb (0.230871, 0.286134, 0.423498) , + rgb (0.23512, 0.288848, 0.423304) , + rgb (0.239312, 0.291562, 0.423167) , + rgb (0.243485, 0.294274, 0.423014) , + rgb (0.247605, 0.296986, 0.422917) , + rgb (0.251675, 0.299698, 0.422873) , + rgb (0.255731, 0.302409, 0.422814) , + rgb (0.25974, 0.30512, 0.42281) , + rgb (0.263738, 0.307831, 0.422789) , + rgb (0.267693, 0.310542, 0.422821) , + rgb (0.271639, 0.313253, 0.422837) , + rgb (0.275513, 0.315965, 0.422979) , + rgb (0.279411, 0.318677, 0.423031) , + rgb (0.28324, 0.32139, 0.423211) , + rgb (0.287065, 0.324103, 0.423373) , + rgb (0.290884, 0.326816, 0.423517) , + rgb (0.294669, 0.329531, 0.423716) , + rgb (0.298421, 0.332247, 0.423973) , + rgb (0.302169, 0.334963, 0.424213) , + rgb (0.305886, 0.337681, 0.424512) , + rgb (0.309601, 0.340399, 0.42479) , + rgb (0.313287, 0.34312, 0.42512) , + rgb (0.316941, 0.345842, 0.425512) , + rgb (0.320595, 0.348565, 0.425889) , + rgb (0.32425, 0.351289, 0.42625) , + rgb (0.327875, 0.354016, 0.42667) , + rgb (0.331474, 0.356744, 0.427144) , + rgb (0.335073, 0.359474, 0.427605) , + rgb (0.338673, 0.362206, 0.428053) , + rgb (0.342246, 0.364939, 0.428559) , + rgb (0.345793, 0.367676, 0.429127) , + rgb (0.349341, 0.370414, 0.429685) , + rgb (0.352892, 0.373153, 0.430226) , + rgb (0.356418, 0.375896, 0.430823) , + rgb (0.359916, 0.378641, 0.431501) , + rgb (0.363446, 0.381388, 0.432075) , + rgb (0.366923, 0.384139, 0.432796) , + rgb (0.37043, 0.38689, 0.433428) , + rgb (0.373884, 0.389646, 0.434209) , + rgb (0.377371, 0.392404, 0.43489) , + rgb (0.38083, 0.395164, 0.435653) , + rgb (0.384268, 0.397928, 0.436475) , + rgb (0.387705, 0.400694, 0.437305) , + rgb (0.391151, 0.403464, 0.438096) , + rgb (0.394568, 0.406236, 0.438986) , + rgb (0.397991, 0.409011, 0.439848) , + rgb (0.401418, 0.41179, 0.440708) , + rgb (0.40482, 0.414572, 0.441642) , + rgb (0.408226, 0.417357, 0.44257) , + rgb (0.411607, 0.420145, 0.443577) , + rgb (0.414992, 0.422937, 0.444578) , + rgb (0.418383, 0.425733, 0.44556) , + rgb (0.421748, 0.428531, 0.44664) , + rgb (0.42512, 0.431334, 0.447692) , + rgb (0.428462, 0.43414, 0.448864) , + rgb (0.431817, 0.43695, 0.449982) , + rgb (0.435168, 0.439763, 0.451134) , + rgb (0.438504, 0.44258, 0.452341) , + rgb (0.44181, 0.445402, 0.453659) , + rgb (0.445148, 0.448226, 0.454885) , + rgb (0.448447, 0.451053, 0.456264) , + rgb (0.451759, 0.453887, 0.457582) , + rgb (0.455072, 0.456718, 0.458976) , + rgb (0.458366, 0.459552, 0.460457) , + rgb (0.461616, 0.462405, 0.461969) , + rgb (0.464947, 0.465241, 0.463395) , + rgb (0.468254, 0.468083, 0.464908) , + rgb (0.471501, 0.47096, 0.466357) , + rgb (0.474812, 0.473832, 0.467681) , + rgb (0.478186, 0.476699, 0.468845) , + rgb (0.481622, 0.479573, 0.469767) , + rgb (0.485141, 0.482451, 0.470384) , + rgb (0.488697, 0.485318, 0.471008) , + rgb (0.492278, 0.488198, 0.471453) , + rgb (0.495913, 0.491076, 0.471751) , + rgb (0.499552, 0.49396, 0.472032) , + rgb (0.503185, 0.496851, 0.472305) , + rgb (0.506866, 0.499743, 0.472432) , + rgb (0.51054, 0.502643, 0.47255) , + rgb (0.514226, 0.505546, 0.47264) , + rgb (0.51792, 0.508454, 0.472707) , + rgb (0.521643, 0.511367, 0.472639) , + rgb (0.525348, 0.514285, 0.47266) , + rgb (0.529086, 0.517207, 0.472543) , + rgb (0.532829, 0.520135, 0.472401) , + rgb (0.536553, 0.523067, 0.472352) , + rgb (0.540307, 0.526005, 0.472163) , + rgb (0.544069, 0.528948, 0.471947) , + rgb (0.54784, 0.531895, 0.471704) , + rgb (0.551612, 0.534849, 0.471439) , + rgb (0.555393, 0.537807, 0.471147) , + rgb (0.559181, 0.540771, 0.470829) , + rgb (0.562972, 0.543741, 0.470488) , + rgb (0.566802, 0.546715, 0.469988) , + rgb (0.570607, 0.549695, 0.469593) , + rgb (0.574417, 0.552682, 0.469172) , + rgb (0.578236, 0.555673, 0.468724) , + rgb (0.582087, 0.55867, 0.468118) , + rgb (0.585916, 0.561674, 0.467618) , + rgb (0.589753, 0.564682, 0.46709) , + rgb (0.593622, 0.567697, 0.466401) , + rgb (0.597469, 0.570718, 0.465821) , + rgb (0.601354, 0.573743, 0.465074) , + rgb (0.605211, 0.576777, 0.464441) , + rgb (0.609105, 0.579816, 0.463638) , + rgb (0.612977, 0.582861, 0.46295) , + rgb (0.616852, 0.585913, 0.462237) , + rgb (0.620765, 0.58897, 0.461351) , + rgb (0.624654, 0.592034, 0.460583) , + rgb (0.628576, 0.595104, 0.459641) , + rgb (0.632506, 0.59818, 0.458668) , + rgb (0.636412, 0.601264, 0.457818) , + rgb (0.640352, 0.604354, 0.456791) , + rgb (0.64427, 0.60745, 0.455886) , + rgb (0.648222, 0.610553, 0.454801) , + rgb (0.652178, 0.613664, 0.453689) , + rgb (0.656114, 0.61678, 0.452702) , + rgb (0.660082, 0.619904, 0.451534) , + rgb (0.664055, 0.623034, 0.450338) , + rgb (0.668008, 0.626171, 0.44927) , + rgb (0.671991, 0.629316, 0.448018) , + rgb (0.675981, 0.632468, 0.446736) , + rgb (0.679979, 0.635626, 0.445424) , + rgb (0.68395, 0.638793, 0.444251) , + rgb (0.687957, 0.641966, 0.442886) , + rgb (0.691971, 0.645145, 0.441491) , + rgb (0.695985, 0.648334, 0.440072) , + rgb (0.700008, 0.651529, 0.438624) , + rgb (0.704037, 0.654731, 0.437147) , + rgb (0.708067, 0.657942, 0.435647) , + rgb (0.712105, 0.66116, 0.434117) , + rgb (0.716177, 0.664384, 0.432386) , + rgb (0.720222, 0.667618, 0.430805) , + rgb (0.724274, 0.670859, 0.429194) , + rgb (0.728334, 0.674107, 0.427554) , + rgb (0.732422, 0.677364, 0.425717) , + rgb (0.736488, 0.680629, 0.424028) , + rgb (0.740589, 0.6839, 0.422131) , + rgb (0.744664, 0.687181, 0.420393) , + rgb (0.748772, 0.69047, 0.418448) , + rgb (0.752886, 0.693766, 0.416472) , + rgb (0.756975, 0.697071, 0.414659) , + rgb (0.761096, 0.700384, 0.412638) , + rgb (0.765223, 0.703705, 0.410587) , + rgb (0.769353, 0.707035, 0.408516) , + rgb (0.773486, 0.710373, 0.406422) , + rgb (0.777651, 0.713719, 0.404112) , + rgb (0.781795, 0.717074, 0.401966) , + rgb (0.785965, 0.720438, 0.399613) , + rgb (0.790116, 0.72381, 0.397423) , + rgb (0.794298, 0.72719, 0.395016) , + rgb (0.79848, 0.73058, 0.392597) , + rgb (0.802667, 0.733978, 0.390153) , + rgb (0.806859, 0.737385, 0.387684) , + rgb (0.811054, 0.740801, 0.385198) , + rgb (0.815274, 0.744226, 0.382504) , + rgb (0.819499, 0.747659, 0.379785) , + rgb (0.823729, 0.751101, 0.377043) , + rgb (0.827959, 0.754553, 0.374292) , + rgb (0.832192, 0.758014, 0.371529) , + rgb (0.836429, 0.761483, 0.368747) , + rgb (0.840693, 0.764962, 0.365746) , + rgb (0.844957, 0.76845, 0.362741) , + rgb (0.849223, 0.771947, 0.359729) , + rgb (0.853515, 0.775454, 0.3565) , + rgb (0.857809, 0.778969, 0.353259) , + rgb (0.862105, 0.782494, 0.350011) , + rgb (0.866421, 0.786028, 0.346571) , + rgb (0.870717, 0.789572, 0.343333) , + rgb (0.875057, 0.793125, 0.339685) , + rgb (0.879378, 0.796687, 0.336241) , + rgb (0.88372, 0.800258, 0.332599) , + rgb (0.888081, 0.803839, 0.32877) , + rgb (0.89244, 0.80743, 0.324968) , + rgb (0.896818, 0.81103, 0.320982) , + rgb (0.901195, 0.814639, 0.317021) , + rgb (0.905589, 0.818257, 0.312889) , + rgb (0.91, 0.821885, 0.308594) , + rgb (0.914407, 0.825522, 0.304348) , + rgb (0.918828, 0.829168, 0.29996) , + rgb (0.923279, 0.832822, 0.295244) , + rgb (0.927724, 0.836486, 0.290611) , + rgb (0.93218, 0.840159, 0.28588) , + rgb (0.93666, 0.843841, 0.280876) , + rgb (0.941147, 0.84753, 0.275815) , + rgb (0.945654, 0.851228, 0.270532) , + rgb (0.950178, 0.854933, 0.265085) , + rgb (0.954725, 0.858646, 0.259365) , + rgb (0.959284, 0.862365, 0.253563) , + rgb (0.963872, 0.866089, 0.247445) , + rgb (0.968469, 0.869819, 0.24131) , + rgb (0.973114, 0.87355, 0.234677) , + rgb (0.97778, 0.877281, 0.227954) , + rgb (0.982497, 0.881008, 0.220878) , + rgb (0.987293, 0.884718, 0.213336) , + rgb (0.992218, 0.888385, 0.205468) , + rgb (0.994847, 0.892954, 0.203445) , + rgb (0.995249, 0.898384, 0.207561) , + rgb (0.995503, 0.903866, 0.21237) , + rgb (0.995737, 0.909344, 0.217772) + }); list_data inferno = list_data(new pen[] { - rgb (0.001462, 0.000466, 0.013866) , - rgb (0.002267, 0.00127, 0.01857) , - rgb (0.003299, 0.002249, 0.024239) , - rgb (0.004547, 0.003392, 0.030909) , - rgb (0.006006, 0.004692, 0.038558) , - rgb (0.007676, 0.006136, 0.046836) , - rgb (0.009561, 0.007713, 0.055143) , - rgb (0.011663, 0.009417, 0.06346) , - rgb (0.013995, 0.011225, 0.071862) , - rgb (0.016561, 0.013136, 0.080282) , - rgb (0.019373, 0.015133, 0.088767) , - rgb (0.022447, 0.017199, 0.097327) , - rgb (0.025793, 0.019331, 0.10593) , - rgb (0.029432, 0.021503, 0.114621) , - rgb (0.033385, 0.023702, 0.123397) , - rgb (0.037668, 0.025921, 0.132232) , - rgb (0.042253, 0.028139, 0.141141) , - rgb (0.046915, 0.030324, 0.150164) , - rgb (0.051644, 0.032474, 0.159254) , - rgb (0.056449, 0.034569, 0.168414) , - rgb (0.06134, 0.03659, 0.177642) , - rgb (0.066331, 0.038504, 0.186962) , - rgb (0.071429, 0.040294, 0.196354) , - rgb (0.076637, 0.041905, 0.205799) , - rgb (0.081962, 0.043328, 0.215289) , - rgb (0.087411, 0.044556, 0.224813) , - rgb (0.09299, 0.045583, 0.234358) , - rgb (0.098702, 0.046402, 0.243904) , - rgb (0.104551, 0.047008, 0.25343) , - rgb (0.110536, 0.047399, 0.262912) , - rgb (0.116656, 0.047574, 0.272321) , - rgb (0.122908, 0.047536, 0.281624) , - rgb (0.129285, 0.047293, 0.290788) , - rgb (0.135778, 0.046856, 0.299776) , - rgb (0.142378, 0.046242, 0.308553) , - rgb (0.149073, 0.045468, 0.317085) , - rgb (0.15585, 0.044559, 0.325338) , - rgb (0.162689, 0.043554, 0.333277) , - rgb (0.169575, 0.042489, 0.340874) , - rgb (0.176493, 0.041402, 0.348111) , - rgb (0.183429, 0.040329, 0.354971) , - rgb (0.190367, 0.039309, 0.361447) , - rgb (0.197297, 0.0384, 0.367535) , - rgb (0.204209, 0.037632, 0.373238) , - rgb (0.211095, 0.03703, 0.378563) , - rgb (0.217949, 0.036615, 0.383522) , - rgb (0.224763, 0.036405, 0.388129) , - rgb (0.231538, 0.036405, 0.3924) , - rgb (0.238273, 0.036621, 0.396353) , - rgb (0.244967, 0.037055, 0.400007) , - rgb (0.25162, 0.037705, 0.403378) , - rgb (0.258234, 0.038571, 0.406485) , - rgb (0.26481, 0.039647, 0.409345) , - rgb (0.271347, 0.040922, 0.411976) , - rgb (0.27785, 0.042353, 0.414392) , - rgb (0.284321, 0.043933, 0.416608) , - rgb (0.290763, 0.045644, 0.418637) , - rgb (0.297178, 0.04747, 0.420491) , - rgb (0.303568, 0.049396, 0.422182) , - rgb (0.309935, 0.051407, 0.423721) , - rgb (0.316282, 0.05349, 0.425116) , - rgb (0.32261, 0.055634, 0.426377) , - rgb (0.328921, 0.057827, 0.427511) , - rgb (0.335217, 0.06006, 0.428524) , - rgb (0.3415, 0.062325, 0.429425) , - rgb (0.347771, 0.064616, 0.430217) , - rgb (0.354032, 0.066925, 0.430906) , - rgb (0.360284, 0.069247, 0.431497) , - rgb (0.366529, 0.071579, 0.431994) , - rgb (0.372768, 0.073915, 0.4324) , - rgb (0.379001, 0.076253, 0.432719) , - rgb (0.385228, 0.078591, 0.432955) , - rgb (0.391453, 0.080927, 0.433109) , - rgb (0.397674, 0.083257, 0.433183) , - rgb (0.403894, 0.08558, 0.433179) , - rgb (0.410113, 0.087896, 0.433098) , - rgb (0.416331, 0.090203, 0.432943) , - rgb (0.422549, 0.092501, 0.432714) , - rgb (0.428768, 0.09479, 0.432412) , - rgb (0.434987, 0.097069, 0.432039) , - rgb (0.441207, 0.099338, 0.431594) , - rgb (0.447428, 0.101597, 0.43108) , - rgb (0.453651, 0.103848, 0.430498) , - rgb (0.459875, 0.106089, 0.429846) , - rgb (0.4661, 0.108322, 0.429125) , - rgb (0.472328, 0.110547, 0.428334) , - rgb (0.478558, 0.112764, 0.427475) , - rgb (0.484789, 0.114974, 0.426548) , - rgb (0.491022, 0.117179, 0.425552) , - rgb (0.497257, 0.119379, 0.424488) , - rgb (0.503493, 0.121575, 0.423356) , - rgb (0.50973, 0.123769, 0.422156) , - rgb (0.515967, 0.12596, 0.420887) , - rgb (0.522206, 0.12815, 0.419549) , - rgb (0.528444, 0.130341, 0.418142) , - rgb (0.534683, 0.132534, 0.416667) , - rgb (0.54092, 0.134729, 0.415123) , - rgb (0.547157, 0.136929, 0.413511) , - rgb (0.553392, 0.139134, 0.411829) , - rgb (0.559624, 0.141346, 0.410078) , - rgb (0.565854, 0.143567, 0.408258) , - rgb (0.572081, 0.145797, 0.406369) , - rgb (0.578304, 0.148039, 0.404411) , - rgb (0.584521, 0.150294, 0.402385) , - rgb (0.590734, 0.152563, 0.40029) , - rgb (0.59694, 0.154848, 0.398125) , - rgb (0.603139, 0.157151, 0.395891) , - rgb (0.60933, 0.159474, 0.393589) , - rgb (0.615513, 0.161817, 0.391219) , - rgb (0.621685, 0.164184, 0.388781) , - rgb (0.627847, 0.166575, 0.386276) , - rgb (0.633998, 0.168992, 0.383704) , - rgb (0.640135, 0.171438, 0.381065) , - rgb (0.64626, 0.173914, 0.378359) , - rgb (0.652369, 0.176421, 0.375586) , - rgb (0.658463, 0.178962, 0.372748) , - rgb (0.66454, 0.181539, 0.369846) , - rgb (0.670599, 0.184153, 0.366879) , - rgb (0.676638, 0.186807, 0.363849) , - rgb (0.682656, 0.189501, 0.360757) , - rgb (0.688653, 0.192239, 0.357603) , - rgb (0.694627, 0.195021, 0.354388) , - rgb (0.700576, 0.197851, 0.351113) , - rgb (0.7065, 0.200728, 0.347777) , - rgb (0.712396, 0.203656, 0.344383) , - rgb (0.718264, 0.206636, 0.340931) , - rgb (0.724103, 0.20967, 0.337424) , - rgb (0.729909, 0.212759, 0.333861) , - rgb (0.735683, 0.215906, 0.330245) , - rgb (0.741423, 0.219112, 0.326576) , - rgb (0.747127, 0.222378, 0.322856) , - rgb (0.752794, 0.225706, 0.319085) , - rgb (0.758422, 0.229097, 0.315266) , - rgb (0.76401, 0.232554, 0.311399) , - rgb (0.769556, 0.236077, 0.307485) , - rgb (0.775059, 0.239667, 0.303526) , - rgb (0.780517, 0.243327, 0.299523) , - rgb (0.785929, 0.247056, 0.295477) , - rgb (0.791293, 0.250856, 0.29139) , - rgb (0.796607, 0.254728, 0.287264) , - rgb (0.801871, 0.258674, 0.283099) , - rgb (0.807082, 0.262692, 0.278898) , - rgb (0.812239, 0.266786, 0.274661) , - rgb (0.817341, 0.270954, 0.27039) , - rgb (0.822386, 0.275197, 0.266085) , - rgb (0.827372, 0.279517, 0.26175) , - rgb (0.832299, 0.283913, 0.257383) , - rgb (0.837165, 0.288385, 0.252988) , - rgb (0.841969, 0.292933, 0.248564) , - rgb (0.846709, 0.297559, 0.244113) , - rgb (0.851384, 0.30226, 0.239636) , - rgb (0.855992, 0.307038, 0.235133) , - rgb (0.860533, 0.311892, 0.230606) , - rgb (0.865006, 0.316822, 0.226055) , - rgb (0.869409, 0.321827, 0.221482) , - rgb (0.873741, 0.326906, 0.216886) , - rgb (0.878001, 0.33206, 0.212268) , - rgb (0.882188, 0.337287, 0.207628) , - rgb (0.886302, 0.342586, 0.202968) , - rgb (0.890341, 0.347957, 0.198286) , - rgb (0.894305, 0.353399, 0.193584) , - rgb (0.898192, 0.358911, 0.18886) , - rgb (0.902003, 0.364492, 0.184116) , - rgb (0.905735, 0.37014, 0.17935) , - rgb (0.90939, 0.375856, 0.174563) , - rgb (0.912966, 0.381636, 0.169755) , - rgb (0.916462, 0.387481, 0.164924) , - rgb (0.919879, 0.393389, 0.16007) , - rgb (0.923215, 0.399359, 0.155193) , - rgb (0.92647, 0.405389, 0.150292) , - rgb (0.929644, 0.411479, 0.145367) , - rgb (0.932737, 0.417627, 0.140417) , - rgb (0.935747, 0.423831, 0.13544) , - rgb (0.938675, 0.430091, 0.130438) , - rgb (0.941521, 0.436405, 0.125409) , - rgb (0.944285, 0.442772, 0.120354) , - rgb (0.946965, 0.449191, 0.115272) , - rgb (0.949562, 0.45566, 0.110164) , - rgb (0.952075, 0.462178, 0.105031) , - rgb (0.954506, 0.468744, 0.099874) , - rgb (0.956852, 0.475356, 0.094695) , - rgb (0.959114, 0.482014, 0.089499) , - rgb (0.961293, 0.488716, 0.084289) , - rgb (0.963387, 0.495462, 0.079073) , - rgb (0.965397, 0.502249, 0.073859) , - rgb (0.967322, 0.509078, 0.068659) , - rgb (0.969163, 0.515946, 0.063488) , - rgb (0.970919, 0.522853, 0.058367) , - rgb (0.97259, 0.529798, 0.053324) , - rgb (0.974176, 0.53678, 0.048392) , - rgb (0.975677, 0.543798, 0.043618) , - rgb (0.977092, 0.55085, 0.03905) , - rgb (0.978422, 0.557937, 0.034931) , - rgb (0.979666, 0.565057, 0.031409) , - rgb (0.980824, 0.572209, 0.028508) , - rgb (0.981895, 0.579392, 0.02625) , - rgb (0.982881, 0.586606, 0.024661) , - rgb (0.983779, 0.593849, 0.02377) , - rgb (0.984591, 0.601122, 0.023606) , - rgb (0.985315, 0.608422, 0.024202) , - rgb (0.985952, 0.61575, 0.025592) , - rgb (0.986502, 0.623105, 0.027814) , - rgb (0.986964, 0.630485, 0.030908) , - rgb (0.987337, 0.63789, 0.034916) , - rgb (0.987622, 0.64532, 0.039886) , - rgb (0.987819, 0.652773, 0.045581) , - rgb (0.987926, 0.66025, 0.05175) , - rgb (0.987945, 0.667748, 0.058329) , - rgb (0.987874, 0.675267, 0.065257) , - rgb (0.987714, 0.682807, 0.072489) , - rgb (0.987464, 0.690366, 0.07999) , - rgb (0.987124, 0.697944, 0.087731) , - rgb (0.986694, 0.70554, 0.095694) , - rgb (0.986175, 0.713153, 0.103863) , - rgb (0.985566, 0.720782, 0.112229) , - rgb (0.984865, 0.728427, 0.120785) , - rgb (0.984075, 0.736087, 0.129527) , - rgb (0.983196, 0.743758, 0.138453) , - rgb (0.982228, 0.751442, 0.147565) , - rgb (0.981173, 0.759135, 0.156863) , - rgb (0.980032, 0.766837, 0.166353) , - rgb (0.978806, 0.774545, 0.176037) , - rgb (0.977497, 0.782258, 0.185923) , - rgb (0.976108, 0.789974, 0.196018) , - rgb (0.974638, 0.797692, 0.206332) , - rgb (0.973088, 0.805409, 0.216877) , - rgb (0.971468, 0.813122, 0.227658) , - rgb (0.969783, 0.820825, 0.238686) , - rgb (0.968041, 0.828515, 0.249972) , - rgb (0.966243, 0.836191, 0.261534) , - rgb (0.964394, 0.843848, 0.273391) , - rgb (0.962517, 0.851476, 0.285546) , - rgb (0.960626, 0.859069, 0.29801) , - rgb (0.95872, 0.866624, 0.31082) , - rgb (0.956834, 0.874129, 0.323974) , - rgb (0.954997, 0.881569, 0.337475) , - rgb (0.953215, 0.888942, 0.351369) , - rgb (0.951546, 0.896226, 0.365627) , - rgb (0.950018, 0.903409, 0.380271) , - rgb (0.948683, 0.910473, 0.395289) , - rgb (0.947594, 0.917399, 0.410665) , - rgb (0.946809, 0.924168, 0.426373) , - rgb (0.946392, 0.930761, 0.442367) , - rgb (0.946403, 0.937159, 0.458592) , - rgb (0.946903, 0.943348, 0.47497) , - rgb (0.947937, 0.949318, 0.491426) , - rgb (0.949545, 0.955063, 0.50786) , - rgb (0.95174, 0.960587, 0.524203) , - rgb (0.954529, 0.965896, 0.540361) , - rgb (0.957896, 0.971003, 0.556275) , - rgb (0.961812, 0.975924, 0.571925) , - rgb (0.966249, 0.980678, 0.587206) , - rgb (0.971162, 0.985282, 0.602154) , - rgb (0.976511, 0.989753, 0.61676) , - rgb (0.982257, 0.994109, 0.631017) , - rgb (0.988362, 0.998364, 0.644924) -}); + rgb (0.001462, 0.000466, 0.013866) , + rgb (0.002267, 0.00127, 0.01857) , + rgb (0.003299, 0.002249, 0.024239) , + rgb (0.004547, 0.003392, 0.030909) , + rgb (0.006006, 0.004692, 0.038558) , + rgb (0.007676, 0.006136, 0.046836) , + rgb (0.009561, 0.007713, 0.055143) , + rgb (0.011663, 0.009417, 0.06346) , + rgb (0.013995, 0.011225, 0.071862) , + rgb (0.016561, 0.013136, 0.080282) , + rgb (0.019373, 0.015133, 0.088767) , + rgb (0.022447, 0.017199, 0.097327) , + rgb (0.025793, 0.019331, 0.10593) , + rgb (0.029432, 0.021503, 0.114621) , + rgb (0.033385, 0.023702, 0.123397) , + rgb (0.037668, 0.025921, 0.132232) , + rgb (0.042253, 0.028139, 0.141141) , + rgb (0.046915, 0.030324, 0.150164) , + rgb (0.051644, 0.032474, 0.159254) , + rgb (0.056449, 0.034569, 0.168414) , + rgb (0.06134, 0.03659, 0.177642) , + rgb (0.066331, 0.038504, 0.186962) , + rgb (0.071429, 0.040294, 0.196354) , + rgb (0.076637, 0.041905, 0.205799) , + rgb (0.081962, 0.043328, 0.215289) , + rgb (0.087411, 0.044556, 0.224813) , + rgb (0.09299, 0.045583, 0.234358) , + rgb (0.098702, 0.046402, 0.243904) , + rgb (0.104551, 0.047008, 0.25343) , + rgb (0.110536, 0.047399, 0.262912) , + rgb (0.116656, 0.047574, 0.272321) , + rgb (0.122908, 0.047536, 0.281624) , + rgb (0.129285, 0.047293, 0.290788) , + rgb (0.135778, 0.046856, 0.299776) , + rgb (0.142378, 0.046242, 0.308553) , + rgb (0.149073, 0.045468, 0.317085) , + rgb (0.15585, 0.044559, 0.325338) , + rgb (0.162689, 0.043554, 0.333277) , + rgb (0.169575, 0.042489, 0.340874) , + rgb (0.176493, 0.041402, 0.348111) , + rgb (0.183429, 0.040329, 0.354971) , + rgb (0.190367, 0.039309, 0.361447) , + rgb (0.197297, 0.0384, 0.367535) , + rgb (0.204209, 0.037632, 0.373238) , + rgb (0.211095, 0.03703, 0.378563) , + rgb (0.217949, 0.036615, 0.383522) , + rgb (0.224763, 0.036405, 0.388129) , + rgb (0.231538, 0.036405, 0.3924) , + rgb (0.238273, 0.036621, 0.396353) , + rgb (0.244967, 0.037055, 0.400007) , + rgb (0.25162, 0.037705, 0.403378) , + rgb (0.258234, 0.038571, 0.406485) , + rgb (0.26481, 0.039647, 0.409345) , + rgb (0.271347, 0.040922, 0.411976) , + rgb (0.27785, 0.042353, 0.414392) , + rgb (0.284321, 0.043933, 0.416608) , + rgb (0.290763, 0.045644, 0.418637) , + rgb (0.297178, 0.04747, 0.420491) , + rgb (0.303568, 0.049396, 0.422182) , + rgb (0.309935, 0.051407, 0.423721) , + rgb (0.316282, 0.05349, 0.425116) , + rgb (0.32261, 0.055634, 0.426377) , + rgb (0.328921, 0.057827, 0.427511) , + rgb (0.335217, 0.06006, 0.428524) , + rgb (0.3415, 0.062325, 0.429425) , + rgb (0.347771, 0.064616, 0.430217) , + rgb (0.354032, 0.066925, 0.430906) , + rgb (0.360284, 0.069247, 0.431497) , + rgb (0.366529, 0.071579, 0.431994) , + rgb (0.372768, 0.073915, 0.4324) , + rgb (0.379001, 0.076253, 0.432719) , + rgb (0.385228, 0.078591, 0.432955) , + rgb (0.391453, 0.080927, 0.433109) , + rgb (0.397674, 0.083257, 0.433183) , + rgb (0.403894, 0.08558, 0.433179) , + rgb (0.410113, 0.087896, 0.433098) , + rgb (0.416331, 0.090203, 0.432943) , + rgb (0.422549, 0.092501, 0.432714) , + rgb (0.428768, 0.09479, 0.432412) , + rgb (0.434987, 0.097069, 0.432039) , + rgb (0.441207, 0.099338, 0.431594) , + rgb (0.447428, 0.101597, 0.43108) , + rgb (0.453651, 0.103848, 0.430498) , + rgb (0.459875, 0.106089, 0.429846) , + rgb (0.4661, 0.108322, 0.429125) , + rgb (0.472328, 0.110547, 0.428334) , + rgb (0.478558, 0.112764, 0.427475) , + rgb (0.484789, 0.114974, 0.426548) , + rgb (0.491022, 0.117179, 0.425552) , + rgb (0.497257, 0.119379, 0.424488) , + rgb (0.503493, 0.121575, 0.423356) , + rgb (0.50973, 0.123769, 0.422156) , + rgb (0.515967, 0.12596, 0.420887) , + rgb (0.522206, 0.12815, 0.419549) , + rgb (0.528444, 0.130341, 0.418142) , + rgb (0.534683, 0.132534, 0.416667) , + rgb (0.54092, 0.134729, 0.415123) , + rgb (0.547157, 0.136929, 0.413511) , + rgb (0.553392, 0.139134, 0.411829) , + rgb (0.559624, 0.141346, 0.410078) , + rgb (0.565854, 0.143567, 0.408258) , + rgb (0.572081, 0.145797, 0.406369) , + rgb (0.578304, 0.148039, 0.404411) , + rgb (0.584521, 0.150294, 0.402385) , + rgb (0.590734, 0.152563, 0.40029) , + rgb (0.59694, 0.154848, 0.398125) , + rgb (0.603139, 0.157151, 0.395891) , + rgb (0.60933, 0.159474, 0.393589) , + rgb (0.615513, 0.161817, 0.391219) , + rgb (0.621685, 0.164184, 0.388781) , + rgb (0.627847, 0.166575, 0.386276) , + rgb (0.633998, 0.168992, 0.383704) , + rgb (0.640135, 0.171438, 0.381065) , + rgb (0.64626, 0.173914, 0.378359) , + rgb (0.652369, 0.176421, 0.375586) , + rgb (0.658463, 0.178962, 0.372748) , + rgb (0.66454, 0.181539, 0.369846) , + rgb (0.670599, 0.184153, 0.366879) , + rgb (0.676638, 0.186807, 0.363849) , + rgb (0.682656, 0.189501, 0.360757) , + rgb (0.688653, 0.192239, 0.357603) , + rgb (0.694627, 0.195021, 0.354388) , + rgb (0.700576, 0.197851, 0.351113) , + rgb (0.7065, 0.200728, 0.347777) , + rgb (0.712396, 0.203656, 0.344383) , + rgb (0.718264, 0.206636, 0.340931) , + rgb (0.724103, 0.20967, 0.337424) , + rgb (0.729909, 0.212759, 0.333861) , + rgb (0.735683, 0.215906, 0.330245) , + rgb (0.741423, 0.219112, 0.326576) , + rgb (0.747127, 0.222378, 0.322856) , + rgb (0.752794, 0.225706, 0.319085) , + rgb (0.758422, 0.229097, 0.315266) , + rgb (0.76401, 0.232554, 0.311399) , + rgb (0.769556, 0.236077, 0.307485) , + rgb (0.775059, 0.239667, 0.303526) , + rgb (0.780517, 0.243327, 0.299523) , + rgb (0.785929, 0.247056, 0.295477) , + rgb (0.791293, 0.250856, 0.29139) , + rgb (0.796607, 0.254728, 0.287264) , + rgb (0.801871, 0.258674, 0.283099) , + rgb (0.807082, 0.262692, 0.278898) , + rgb (0.812239, 0.266786, 0.274661) , + rgb (0.817341, 0.270954, 0.27039) , + rgb (0.822386, 0.275197, 0.266085) , + rgb (0.827372, 0.279517, 0.26175) , + rgb (0.832299, 0.283913, 0.257383) , + rgb (0.837165, 0.288385, 0.252988) , + rgb (0.841969, 0.292933, 0.248564) , + rgb (0.846709, 0.297559, 0.244113) , + rgb (0.851384, 0.30226, 0.239636) , + rgb (0.855992, 0.307038, 0.235133) , + rgb (0.860533, 0.311892, 0.230606) , + rgb (0.865006, 0.316822, 0.226055) , + rgb (0.869409, 0.321827, 0.221482) , + rgb (0.873741, 0.326906, 0.216886) , + rgb (0.878001, 0.33206, 0.212268) , + rgb (0.882188, 0.337287, 0.207628) , + rgb (0.886302, 0.342586, 0.202968) , + rgb (0.890341, 0.347957, 0.198286) , + rgb (0.894305, 0.353399, 0.193584) , + rgb (0.898192, 0.358911, 0.18886) , + rgb (0.902003, 0.364492, 0.184116) , + rgb (0.905735, 0.37014, 0.17935) , + rgb (0.90939, 0.375856, 0.174563) , + rgb (0.912966, 0.381636, 0.169755) , + rgb (0.916462, 0.387481, 0.164924) , + rgb (0.919879, 0.393389, 0.16007) , + rgb (0.923215, 0.399359, 0.155193) , + rgb (0.92647, 0.405389, 0.150292) , + rgb (0.929644, 0.411479, 0.145367) , + rgb (0.932737, 0.417627, 0.140417) , + rgb (0.935747, 0.423831, 0.13544) , + rgb (0.938675, 0.430091, 0.130438) , + rgb (0.941521, 0.436405, 0.125409) , + rgb (0.944285, 0.442772, 0.120354) , + rgb (0.946965, 0.449191, 0.115272) , + rgb (0.949562, 0.45566, 0.110164) , + rgb (0.952075, 0.462178, 0.105031) , + rgb (0.954506, 0.468744, 0.099874) , + rgb (0.956852, 0.475356, 0.094695) , + rgb (0.959114, 0.482014, 0.089499) , + rgb (0.961293, 0.488716, 0.084289) , + rgb (0.963387, 0.495462, 0.079073) , + rgb (0.965397, 0.502249, 0.073859) , + rgb (0.967322, 0.509078, 0.068659) , + rgb (0.969163, 0.515946, 0.063488) , + rgb (0.970919, 0.522853, 0.058367) , + rgb (0.97259, 0.529798, 0.053324) , + rgb (0.974176, 0.53678, 0.048392) , + rgb (0.975677, 0.543798, 0.043618) , + rgb (0.977092, 0.55085, 0.03905) , + rgb (0.978422, 0.557937, 0.034931) , + rgb (0.979666, 0.565057, 0.031409) , + rgb (0.980824, 0.572209, 0.028508) , + rgb (0.981895, 0.579392, 0.02625) , + rgb (0.982881, 0.586606, 0.024661) , + rgb (0.983779, 0.593849, 0.02377) , + rgb (0.984591, 0.601122, 0.023606) , + rgb (0.985315, 0.608422, 0.024202) , + rgb (0.985952, 0.61575, 0.025592) , + rgb (0.986502, 0.623105, 0.027814) , + rgb (0.986964, 0.630485, 0.030908) , + rgb (0.987337, 0.63789, 0.034916) , + rgb (0.987622, 0.64532, 0.039886) , + rgb (0.987819, 0.652773, 0.045581) , + rgb (0.987926, 0.66025, 0.05175) , + rgb (0.987945, 0.667748, 0.058329) , + rgb (0.987874, 0.675267, 0.065257) , + rgb (0.987714, 0.682807, 0.072489) , + rgb (0.987464, 0.690366, 0.07999) , + rgb (0.987124, 0.697944, 0.087731) , + rgb (0.986694, 0.70554, 0.095694) , + rgb (0.986175, 0.713153, 0.103863) , + rgb (0.985566, 0.720782, 0.112229) , + rgb (0.984865, 0.728427, 0.120785) , + rgb (0.984075, 0.736087, 0.129527) , + rgb (0.983196, 0.743758, 0.138453) , + rgb (0.982228, 0.751442, 0.147565) , + rgb (0.981173, 0.759135, 0.156863) , + rgb (0.980032, 0.766837, 0.166353) , + rgb (0.978806, 0.774545, 0.176037) , + rgb (0.977497, 0.782258, 0.185923) , + rgb (0.976108, 0.789974, 0.196018) , + rgb (0.974638, 0.797692, 0.206332) , + rgb (0.973088, 0.805409, 0.216877) , + rgb (0.971468, 0.813122, 0.227658) , + rgb (0.969783, 0.820825, 0.238686) , + rgb (0.968041, 0.828515, 0.249972) , + rgb (0.966243, 0.836191, 0.261534) , + rgb (0.964394, 0.843848, 0.273391) , + rgb (0.962517, 0.851476, 0.285546) , + rgb (0.960626, 0.859069, 0.29801) , + rgb (0.95872, 0.866624, 0.31082) , + rgb (0.956834, 0.874129, 0.323974) , + rgb (0.954997, 0.881569, 0.337475) , + rgb (0.953215, 0.888942, 0.351369) , + rgb (0.951546, 0.896226, 0.365627) , + rgb (0.950018, 0.903409, 0.380271) , + rgb (0.948683, 0.910473, 0.395289) , + rgb (0.947594, 0.917399, 0.410665) , + rgb (0.946809, 0.924168, 0.426373) , + rgb (0.946392, 0.930761, 0.442367) , + rgb (0.946403, 0.937159, 0.458592) , + rgb (0.946903, 0.943348, 0.47497) , + rgb (0.947937, 0.949318, 0.491426) , + rgb (0.949545, 0.955063, 0.50786) , + rgb (0.95174, 0.960587, 0.524203) , + rgb (0.954529, 0.965896, 0.540361) , + rgb (0.957896, 0.971003, 0.556275) , + rgb (0.961812, 0.975924, 0.571925) , + rgb (0.966249, 0.980678, 0.587206) , + rgb (0.971162, 0.985282, 0.602154) , + rgb (0.976511, 0.989753, 0.61676) , + rgb (0.982257, 0.994109, 0.631017) , + rgb (0.988362, 0.998364, 0.644924) + }); list_data magma = list_data(new pen[] { - rgb (0.001462, 0.000466, 0.013866) , - rgb (0.002258, 0.001295, 0.018331) , - rgb (0.003279, 0.002305, 0.023708) , - rgb (0.004512, 0.00349, 0.029965) , - rgb (0.00595, 0.004843, 0.03713) , - rgb (0.007588, 0.006356, 0.044973) , - rgb (0.009426, 0.008022, 0.052844) , - rgb (0.011465, 0.009828, 0.06075) , - rgb (0.013708, 0.011771, 0.068667) , - rgb (0.016156, 0.01384, 0.076603) , - rgb (0.018815, 0.016026, 0.084584) , - rgb (0.021692, 0.01832, 0.09261) , - rgb (0.024792, 0.020715, 0.100676) , - rgb (0.028123, 0.023201, 0.108787) , - rgb (0.031696, 0.025765, 0.116965) , - rgb (0.03552, 0.028397, 0.125209) , - rgb (0.039608, 0.03109, 0.133515) , - rgb (0.04383, 0.03383, 0.141886) , - rgb (0.048062, 0.036607, 0.150327) , - rgb (0.05232, 0.039407, 0.158841) , - rgb (0.056615, 0.04216, 0.167446) , - rgb (0.060949, 0.044794, 0.176129) , - rgb (0.06533, 0.047318, 0.184892) , - rgb (0.069764, 0.049726, 0.193735) , - rgb (0.074257, 0.052017, 0.20266) , - rgb (0.078815, 0.054184, 0.211667) , - rgb (0.083446, 0.056225, 0.220755) , - rgb (0.088155, 0.058133, 0.229922) , - rgb (0.092949, 0.059904, 0.239164) , - rgb (0.097833, 0.061531, 0.248477) , - rgb (0.102815, 0.06301, 0.257854) , - rgb (0.107899, 0.064335, 0.267289) , - rgb (0.113094, 0.065492, 0.276784) , - rgb (0.118405, 0.066479, 0.286321) , - rgb (0.123833, 0.067295, 0.295879) , - rgb (0.12938, 0.067935, 0.305443) , - rgb (0.135053, 0.068391, 0.315) , - rgb (0.140858, 0.068654, 0.324538) , - rgb (0.146785, 0.068738, 0.334011) , - rgb (0.152839, 0.068637, 0.343404) , - rgb (0.159018, 0.068354, 0.352688) , - rgb (0.165308, 0.067911, 0.361816) , - rgb (0.171713, 0.067305, 0.370771) , - rgb (0.178212, 0.066576, 0.379497) , - rgb (0.184801, 0.065732, 0.387973) , - rgb (0.19146, 0.064818, 0.396152) , - rgb (0.198177, 0.063862, 0.404009) , - rgb (0.204935, 0.062907, 0.411514) , - rgb (0.211718, 0.061992, 0.418647) , - rgb (0.218512, 0.061158, 0.425392) , - rgb (0.225302, 0.060445, 0.431742) , - rgb (0.232077, 0.059889, 0.437695) , - rgb (0.238826, 0.059517, 0.443256) , - rgb (0.245543, 0.059352, 0.448436) , - rgb (0.25222, 0.059415, 0.453248) , - rgb (0.258857, 0.059706, 0.45771) , - rgb (0.265447, 0.060237, 0.46184) , - rgb (0.271994, 0.060994, 0.46566) , - rgb (0.278493, 0.061978, 0.46919) , - rgb (0.284951, 0.063168, 0.472451) , - rgb (0.291366, 0.064553, 0.475462) , - rgb (0.29774, 0.066117, 0.478243) , - rgb (0.304081, 0.067835, 0.480812) , - rgb (0.310382, 0.069702, 0.483186) , - rgb (0.316654, 0.07169, 0.48538) , - rgb (0.322899, 0.073782, 0.487408) , - rgb (0.329114, 0.075972, 0.489287) , - rgb (0.335308, 0.078236, 0.491024) , - rgb (0.341482, 0.080564, 0.492631) , - rgb (0.347636, 0.082946, 0.494121) , - rgb (0.353773, 0.085373, 0.495501) , - rgb (0.359898, 0.087831, 0.496778) , - rgb (0.366012, 0.090314, 0.49796) , - rgb (0.372116, 0.092816, 0.499053) , - rgb (0.378211, 0.095332, 0.500067) , - rgb (0.384299, 0.097855, 0.501002) , - rgb (0.390384, 0.100379, 0.501864) , - rgb (0.396467, 0.102902, 0.502658) , - rgb (0.402548, 0.10542, 0.503386) , - rgb (0.408629, 0.10793, 0.504052) , - rgb (0.414709, 0.110431, 0.504662) , - rgb (0.420791, 0.11292, 0.505215) , - rgb (0.426877, 0.115395, 0.505714) , - rgb (0.432967, 0.117855, 0.50616) , - rgb (0.439062, 0.120298, 0.506555) , - rgb (0.445163, 0.122724, 0.506901) , - rgb (0.451271, 0.125132, 0.507198) , - rgb (0.457386, 0.127522, 0.507448) , - rgb (0.463508, 0.129893, 0.507652) , - rgb (0.46964, 0.132245, 0.507809) , - rgb (0.47578, 0.134577, 0.507921) , - rgb (0.481929, 0.136891, 0.507989) , - rgb (0.488088, 0.139186, 0.508011) , - rgb (0.494258, 0.141462, 0.507988) , - rgb (0.500438, 0.143719, 0.50792) , - rgb (0.506629, 0.145958, 0.507806) , - rgb (0.512831, 0.148179, 0.507648) , - rgb (0.519045, 0.150383, 0.507443) , - rgb (0.52527, 0.152569, 0.507192) , - rgb (0.531507, 0.154739, 0.506895) , - rgb (0.537755, 0.156894, 0.506551) , - rgb (0.544015, 0.159033, 0.506159) , - rgb (0.550287, 0.161158, 0.505719) , - rgb (0.556571, 0.163269, 0.50523) , - rgb (0.562866, 0.165368, 0.504692) , - rgb (0.569172, 0.167454, 0.504105) , - rgb (0.57549, 0.16953, 0.503466) , - rgb (0.581819, 0.171596, 0.502777) , - rgb (0.588158, 0.173652, 0.502035) , - rgb (0.594508, 0.175701, 0.501241) , - rgb (0.600868, 0.177743, 0.500394) , - rgb (0.607238, 0.179779, 0.499492) , - rgb (0.613617, 0.181811, 0.498536) , - rgb (0.620005, 0.18384, 0.497524) , - rgb (0.626401, 0.185867, 0.496456) , - rgb (0.632805, 0.187893, 0.495332) , - rgb (0.639216, 0.189921, 0.49415) , - rgb (0.645633, 0.191952, 0.49291) , - rgb (0.652056, 0.193986, 0.491611) , - rgb (0.658483, 0.196027, 0.490253) , - rgb (0.664915, 0.198075, 0.488836) , - rgb (0.671349, 0.200133, 0.487358) , - rgb (0.677786, 0.202203, 0.485819) , - rgb (0.684224, 0.204286, 0.484219) , - rgb (0.690661, 0.206384, 0.482558) , - rgb (0.697098, 0.208501, 0.480835) , - rgb (0.703532, 0.210638, 0.479049) , - rgb (0.709962, 0.212797, 0.477201) , - rgb (0.716387, 0.214982, 0.47529) , - rgb (0.722805, 0.217194, 0.473316) , - rgb (0.729216, 0.219437, 0.471279) , - rgb (0.735616, 0.221713, 0.46918) , - rgb (0.742004, 0.224025, 0.467018) , - rgb (0.748378, 0.226377, 0.464794) , - rgb (0.754737, 0.228772, 0.462509) , - rgb (0.761077, 0.231214, 0.460162) , - rgb (0.767398, 0.233705, 0.457755) , - rgb (0.773695, 0.236249, 0.455289) , - rgb (0.779968, 0.238851, 0.452765) , - rgb (0.786212, 0.241514, 0.450184) , - rgb (0.792427, 0.244242, 0.447543) , - rgb (0.798608, 0.24704, 0.444848) , - rgb (0.804752, 0.249911, 0.442102) , - rgb (0.810855, 0.252861, 0.439305) , - rgb (0.816914, 0.255895, 0.436461) , - rgb (0.822926, 0.259016, 0.433573) , - rgb (0.828886, 0.262229, 0.430644) , - rgb (0.834791, 0.26554, 0.427671) , - rgb (0.840636, 0.268953, 0.424666) , - rgb (0.846416, 0.272473, 0.421631) , - rgb (0.852126, 0.276106, 0.418573) , - rgb (0.857763, 0.279857, 0.415496) , - rgb (0.86332, 0.283729, 0.412403) , - rgb (0.868793, 0.287728, 0.409303) , - rgb (0.874176, 0.291859, 0.406205) , - rgb (0.879464, 0.296125, 0.403118) , - rgb (0.884651, 0.30053, 0.400047) , - rgb (0.889731, 0.305079, 0.397002) , - rgb (0.8947, 0.309773, 0.393995) , - rgb (0.899552, 0.314616, 0.391037) , - rgb (0.904281, 0.31961, 0.388137) , - rgb (0.908884, 0.324755, 0.385308) , - rgb (0.913354, 0.330052, 0.382563) , - rgb (0.917689, 0.3355, 0.379915) , - rgb (0.921884, 0.341098, 0.377376) , - rgb (0.925937, 0.346844, 0.374959) , - rgb (0.929845, 0.352734, 0.372677) , - rgb (0.933606, 0.358764, 0.370541) , - rgb (0.937221, 0.364929, 0.368567) , - rgb (0.940687, 0.371224, 0.366762) , - rgb (0.944006, 0.377643, 0.365136) , - rgb (0.94718, 0.384178, 0.363701) , - rgb (0.95021, 0.39082, 0.362468) , - rgb (0.953099, 0.397563, 0.361438) , - rgb (0.955849, 0.4044, 0.360619) , - rgb (0.958464, 0.411324, 0.360014) , - rgb (0.960949, 0.418323, 0.35963) , - rgb (0.96331, 0.42539, 0.359469) , - rgb (0.965549, 0.432519, 0.359529) , - rgb (0.967671, 0.439703, 0.35981) , - rgb (0.96968, 0.446936, 0.360311) , - rgb (0.971582, 0.45421, 0.36103) , - rgb (0.973381, 0.46152, 0.361965) , - rgb (0.975082, 0.468861, 0.363111) , - rgb (0.97669, 0.476226, 0.364466) , - rgb (0.97821, 0.483612, 0.366025) , - rgb (0.979645, 0.491014, 0.367783) , - rgb (0.981, 0.498428, 0.369734) , - rgb (0.982279, 0.505851, 0.371874) , - rgb (0.983485, 0.51328, 0.374198) , - rgb (0.984622, 0.520713, 0.376698) , - rgb (0.985693, 0.528148, 0.379371) , - rgb (0.9867, 0.535582, 0.38221) , - rgb (0.987646, 0.543015, 0.38521) , - rgb (0.988533, 0.550446, 0.388365) , - rgb (0.989363, 0.557873, 0.391671) , - rgb (0.990138, 0.565296, 0.395122) , - rgb (0.990871, 0.572706, 0.398714) , - rgb (0.991558, 0.580107, 0.402441) , - rgb (0.992196, 0.587502, 0.406299) , - rgb (0.992785, 0.594891, 0.410283) , - rgb (0.993326, 0.602275, 0.41439) , - rgb (0.993834, 0.609644, 0.418613) , - rgb (0.994309, 0.616999, 0.42295) , - rgb (0.994738, 0.62435, 0.427397) , - rgb (0.995122, 0.631696, 0.431951) , - rgb (0.99548, 0.639027, 0.436607) , - rgb (0.99581, 0.646344, 0.441361) , - rgb (0.996096, 0.653659, 0.446213) , - rgb (0.996341, 0.660969, 0.45116) , - rgb (0.99658, 0.668256, 0.456192) , - rgb (0.996775, 0.675541, 0.461314) , - rgb (0.996925, 0.682828, 0.466526) , - rgb (0.997077, 0.690088, 0.471811) , - rgb (0.997186, 0.697349, 0.477182) , - rgb (0.997254, 0.704611, 0.482635) , - rgb (0.997325, 0.711848, 0.488154) , - rgb (0.997351, 0.719089, 0.493755) , - rgb (0.997351, 0.726324, 0.499428) , - rgb (0.997341, 0.733545, 0.505167) , - rgb (0.997285, 0.740772, 0.510983) , - rgb (0.997228, 0.747981, 0.516859) , - rgb (0.997138, 0.75519, 0.522806) , - rgb (0.997019, 0.762398, 0.528821) , - rgb (0.996898, 0.769591, 0.534892) , - rgb (0.996727, 0.776795, 0.541039) , - rgb (0.996571, 0.783977, 0.547233) , - rgb (0.996369, 0.791167, 0.553499) , - rgb (0.996162, 0.798348, 0.55982) , - rgb (0.995932, 0.805527, 0.566202) , - rgb (0.99568, 0.812706, 0.572645) , - rgb (0.995424, 0.819875, 0.57914) , - rgb (0.995131, 0.827052, 0.585701) , - rgb (0.994851, 0.834213, 0.592307) , - rgb (0.994524, 0.841387, 0.598983) , - rgb (0.994222, 0.84854, 0.605696) , - rgb (0.993866, 0.855711, 0.612482) , - rgb (0.993545, 0.862859, 0.619299) , - rgb (0.99317, 0.870024, 0.626189) , - rgb (0.992831, 0.877168, 0.633109) , - rgb (0.99244, 0.88433, 0.640099) , - rgb (0.992089, 0.89147, 0.647116) , - rgb (0.991688, 0.898627, 0.654202) , - rgb (0.991332, 0.905763, 0.661309) , - rgb (0.99093, 0.912915, 0.668481) , - rgb (0.99057, 0.920049, 0.675675) , - rgb (0.990175, 0.927196, 0.682926) , - rgb (0.989815, 0.934329, 0.690198) , - rgb (0.989434, 0.94147, 0.697519) , - rgb (0.989077, 0.948604, 0.704863) , - rgb (0.988717, 0.955742, 0.712242) , - rgb (0.988367, 0.962878, 0.719649) , - rgb (0.988033, 0.970012, 0.727077) , - rgb (0.987691, 0.977154, 0.734536) , - rgb (0.987387, 0.984288, 0.742002) , - rgb (0.987053, 0.991438, 0.749504) -}); + rgb (0.001462, 0.000466, 0.013866) , + rgb (0.002258, 0.001295, 0.018331) , + rgb (0.003279, 0.002305, 0.023708) , + rgb (0.004512, 0.00349, 0.029965) , + rgb (0.00595, 0.004843, 0.03713) , + rgb (0.007588, 0.006356, 0.044973) , + rgb (0.009426, 0.008022, 0.052844) , + rgb (0.011465, 0.009828, 0.06075) , + rgb (0.013708, 0.011771, 0.068667) , + rgb (0.016156, 0.01384, 0.076603) , + rgb (0.018815, 0.016026, 0.084584) , + rgb (0.021692, 0.01832, 0.09261) , + rgb (0.024792, 0.020715, 0.100676) , + rgb (0.028123, 0.023201, 0.108787) , + rgb (0.031696, 0.025765, 0.116965) , + rgb (0.03552, 0.028397, 0.125209) , + rgb (0.039608, 0.03109, 0.133515) , + rgb (0.04383, 0.03383, 0.141886) , + rgb (0.048062, 0.036607, 0.150327) , + rgb (0.05232, 0.039407, 0.158841) , + rgb (0.056615, 0.04216, 0.167446) , + rgb (0.060949, 0.044794, 0.176129) , + rgb (0.06533, 0.047318, 0.184892) , + rgb (0.069764, 0.049726, 0.193735) , + rgb (0.074257, 0.052017, 0.20266) , + rgb (0.078815, 0.054184, 0.211667) , + rgb (0.083446, 0.056225, 0.220755) , + rgb (0.088155, 0.058133, 0.229922) , + rgb (0.092949, 0.059904, 0.239164) , + rgb (0.097833, 0.061531, 0.248477) , + rgb (0.102815, 0.06301, 0.257854) , + rgb (0.107899, 0.064335, 0.267289) , + rgb (0.113094, 0.065492, 0.276784) , + rgb (0.118405, 0.066479, 0.286321) , + rgb (0.123833, 0.067295, 0.295879) , + rgb (0.12938, 0.067935, 0.305443) , + rgb (0.135053, 0.068391, 0.315) , + rgb (0.140858, 0.068654, 0.324538) , + rgb (0.146785, 0.068738, 0.334011) , + rgb (0.152839, 0.068637, 0.343404) , + rgb (0.159018, 0.068354, 0.352688) , + rgb (0.165308, 0.067911, 0.361816) , + rgb (0.171713, 0.067305, 0.370771) , + rgb (0.178212, 0.066576, 0.379497) , + rgb (0.184801, 0.065732, 0.387973) , + rgb (0.19146, 0.064818, 0.396152) , + rgb (0.198177, 0.063862, 0.404009) , + rgb (0.204935, 0.062907, 0.411514) , + rgb (0.211718, 0.061992, 0.418647) , + rgb (0.218512, 0.061158, 0.425392) , + rgb (0.225302, 0.060445, 0.431742) , + rgb (0.232077, 0.059889, 0.437695) , + rgb (0.238826, 0.059517, 0.443256) , + rgb (0.245543, 0.059352, 0.448436) , + rgb (0.25222, 0.059415, 0.453248) , + rgb (0.258857, 0.059706, 0.45771) , + rgb (0.265447, 0.060237, 0.46184) , + rgb (0.271994, 0.060994, 0.46566) , + rgb (0.278493, 0.061978, 0.46919) , + rgb (0.284951, 0.063168, 0.472451) , + rgb (0.291366, 0.064553, 0.475462) , + rgb (0.29774, 0.066117, 0.478243) , + rgb (0.304081, 0.067835, 0.480812) , + rgb (0.310382, 0.069702, 0.483186) , + rgb (0.316654, 0.07169, 0.48538) , + rgb (0.322899, 0.073782, 0.487408) , + rgb (0.329114, 0.075972, 0.489287) , + rgb (0.335308, 0.078236, 0.491024) , + rgb (0.341482, 0.080564, 0.492631) , + rgb (0.347636, 0.082946, 0.494121) , + rgb (0.353773, 0.085373, 0.495501) , + rgb (0.359898, 0.087831, 0.496778) , + rgb (0.366012, 0.090314, 0.49796) , + rgb (0.372116, 0.092816, 0.499053) , + rgb (0.378211, 0.095332, 0.500067) , + rgb (0.384299, 0.097855, 0.501002) , + rgb (0.390384, 0.100379, 0.501864) , + rgb (0.396467, 0.102902, 0.502658) , + rgb (0.402548, 0.10542, 0.503386) , + rgb (0.408629, 0.10793, 0.504052) , + rgb (0.414709, 0.110431, 0.504662) , + rgb (0.420791, 0.11292, 0.505215) , + rgb (0.426877, 0.115395, 0.505714) , + rgb (0.432967, 0.117855, 0.50616) , + rgb (0.439062, 0.120298, 0.506555) , + rgb (0.445163, 0.122724, 0.506901) , + rgb (0.451271, 0.125132, 0.507198) , + rgb (0.457386, 0.127522, 0.507448) , + rgb (0.463508, 0.129893, 0.507652) , + rgb (0.46964, 0.132245, 0.507809) , + rgb (0.47578, 0.134577, 0.507921) , + rgb (0.481929, 0.136891, 0.507989) , + rgb (0.488088, 0.139186, 0.508011) , + rgb (0.494258, 0.141462, 0.507988) , + rgb (0.500438, 0.143719, 0.50792) , + rgb (0.506629, 0.145958, 0.507806) , + rgb (0.512831, 0.148179, 0.507648) , + rgb (0.519045, 0.150383, 0.507443) , + rgb (0.52527, 0.152569, 0.507192) , + rgb (0.531507, 0.154739, 0.506895) , + rgb (0.537755, 0.156894, 0.506551) , + rgb (0.544015, 0.159033, 0.506159) , + rgb (0.550287, 0.161158, 0.505719) , + rgb (0.556571, 0.163269, 0.50523) , + rgb (0.562866, 0.165368, 0.504692) , + rgb (0.569172, 0.167454, 0.504105) , + rgb (0.57549, 0.16953, 0.503466) , + rgb (0.581819, 0.171596, 0.502777) , + rgb (0.588158, 0.173652, 0.502035) , + rgb (0.594508, 0.175701, 0.501241) , + rgb (0.600868, 0.177743, 0.500394) , + rgb (0.607238, 0.179779, 0.499492) , + rgb (0.613617, 0.181811, 0.498536) , + rgb (0.620005, 0.18384, 0.497524) , + rgb (0.626401, 0.185867, 0.496456) , + rgb (0.632805, 0.187893, 0.495332) , + rgb (0.639216, 0.189921, 0.49415) , + rgb (0.645633, 0.191952, 0.49291) , + rgb (0.652056, 0.193986, 0.491611) , + rgb (0.658483, 0.196027, 0.490253) , + rgb (0.664915, 0.198075, 0.488836) , + rgb (0.671349, 0.200133, 0.487358) , + rgb (0.677786, 0.202203, 0.485819) , + rgb (0.684224, 0.204286, 0.484219) , + rgb (0.690661, 0.206384, 0.482558) , + rgb (0.697098, 0.208501, 0.480835) , + rgb (0.703532, 0.210638, 0.479049) , + rgb (0.709962, 0.212797, 0.477201) , + rgb (0.716387, 0.214982, 0.47529) , + rgb (0.722805, 0.217194, 0.473316) , + rgb (0.729216, 0.219437, 0.471279) , + rgb (0.735616, 0.221713, 0.46918) , + rgb (0.742004, 0.224025, 0.467018) , + rgb (0.748378, 0.226377, 0.464794) , + rgb (0.754737, 0.228772, 0.462509) , + rgb (0.761077, 0.231214, 0.460162) , + rgb (0.767398, 0.233705, 0.457755) , + rgb (0.773695, 0.236249, 0.455289) , + rgb (0.779968, 0.238851, 0.452765) , + rgb (0.786212, 0.241514, 0.450184) , + rgb (0.792427, 0.244242, 0.447543) , + rgb (0.798608, 0.24704, 0.444848) , + rgb (0.804752, 0.249911, 0.442102) , + rgb (0.810855, 0.252861, 0.439305) , + rgb (0.816914, 0.255895, 0.436461) , + rgb (0.822926, 0.259016, 0.433573) , + rgb (0.828886, 0.262229, 0.430644) , + rgb (0.834791, 0.26554, 0.427671) , + rgb (0.840636, 0.268953, 0.424666) , + rgb (0.846416, 0.272473, 0.421631) , + rgb (0.852126, 0.276106, 0.418573) , + rgb (0.857763, 0.279857, 0.415496) , + rgb (0.86332, 0.283729, 0.412403) , + rgb (0.868793, 0.287728, 0.409303) , + rgb (0.874176, 0.291859, 0.406205) , + rgb (0.879464, 0.296125, 0.403118) , + rgb (0.884651, 0.30053, 0.400047) , + rgb (0.889731, 0.305079, 0.397002) , + rgb (0.8947, 0.309773, 0.393995) , + rgb (0.899552, 0.314616, 0.391037) , + rgb (0.904281, 0.31961, 0.388137) , + rgb (0.908884, 0.324755, 0.385308) , + rgb (0.913354, 0.330052, 0.382563) , + rgb (0.917689, 0.3355, 0.379915) , + rgb (0.921884, 0.341098, 0.377376) , + rgb (0.925937, 0.346844, 0.374959) , + rgb (0.929845, 0.352734, 0.372677) , + rgb (0.933606, 0.358764, 0.370541) , + rgb (0.937221, 0.364929, 0.368567) , + rgb (0.940687, 0.371224, 0.366762) , + rgb (0.944006, 0.377643, 0.365136) , + rgb (0.94718, 0.384178, 0.363701) , + rgb (0.95021, 0.39082, 0.362468) , + rgb (0.953099, 0.397563, 0.361438) , + rgb (0.955849, 0.4044, 0.360619) , + rgb (0.958464, 0.411324, 0.360014) , + rgb (0.960949, 0.418323, 0.35963) , + rgb (0.96331, 0.42539, 0.359469) , + rgb (0.965549, 0.432519, 0.359529) , + rgb (0.967671, 0.439703, 0.35981) , + rgb (0.96968, 0.446936, 0.360311) , + rgb (0.971582, 0.45421, 0.36103) , + rgb (0.973381, 0.46152, 0.361965) , + rgb (0.975082, 0.468861, 0.363111) , + rgb (0.97669, 0.476226, 0.364466) , + rgb (0.97821, 0.483612, 0.366025) , + rgb (0.979645, 0.491014, 0.367783) , + rgb (0.981, 0.498428, 0.369734) , + rgb (0.982279, 0.505851, 0.371874) , + rgb (0.983485, 0.51328, 0.374198) , + rgb (0.984622, 0.520713, 0.376698) , + rgb (0.985693, 0.528148, 0.379371) , + rgb (0.9867, 0.535582, 0.38221) , + rgb (0.987646, 0.543015, 0.38521) , + rgb (0.988533, 0.550446, 0.388365) , + rgb (0.989363, 0.557873, 0.391671) , + rgb (0.990138, 0.565296, 0.395122) , + rgb (0.990871, 0.572706, 0.398714) , + rgb (0.991558, 0.580107, 0.402441) , + rgb (0.992196, 0.587502, 0.406299) , + rgb (0.992785, 0.594891, 0.410283) , + rgb (0.993326, 0.602275, 0.41439) , + rgb (0.993834, 0.609644, 0.418613) , + rgb (0.994309, 0.616999, 0.42295) , + rgb (0.994738, 0.62435, 0.427397) , + rgb (0.995122, 0.631696, 0.431951) , + rgb (0.99548, 0.639027, 0.436607) , + rgb (0.99581, 0.646344, 0.441361) , + rgb (0.996096, 0.653659, 0.446213) , + rgb (0.996341, 0.660969, 0.45116) , + rgb (0.99658, 0.668256, 0.456192) , + rgb (0.996775, 0.675541, 0.461314) , + rgb (0.996925, 0.682828, 0.466526) , + rgb (0.997077, 0.690088, 0.471811) , + rgb (0.997186, 0.697349, 0.477182) , + rgb (0.997254, 0.704611, 0.482635) , + rgb (0.997325, 0.711848, 0.488154) , + rgb (0.997351, 0.719089, 0.493755) , + rgb (0.997351, 0.726324, 0.499428) , + rgb (0.997341, 0.733545, 0.505167) , + rgb (0.997285, 0.740772, 0.510983) , + rgb (0.997228, 0.747981, 0.516859) , + rgb (0.997138, 0.75519, 0.522806) , + rgb (0.997019, 0.762398, 0.528821) , + rgb (0.996898, 0.769591, 0.534892) , + rgb (0.996727, 0.776795, 0.541039) , + rgb (0.996571, 0.783977, 0.547233) , + rgb (0.996369, 0.791167, 0.553499) , + rgb (0.996162, 0.798348, 0.55982) , + rgb (0.995932, 0.805527, 0.566202) , + rgb (0.99568, 0.812706, 0.572645) , + rgb (0.995424, 0.819875, 0.57914) , + rgb (0.995131, 0.827052, 0.585701) , + rgb (0.994851, 0.834213, 0.592307) , + rgb (0.994524, 0.841387, 0.598983) , + rgb (0.994222, 0.84854, 0.605696) , + rgb (0.993866, 0.855711, 0.612482) , + rgb (0.993545, 0.862859, 0.619299) , + rgb (0.99317, 0.870024, 0.626189) , + rgb (0.992831, 0.877168, 0.633109) , + rgb (0.99244, 0.88433, 0.640099) , + rgb (0.992089, 0.89147, 0.647116) , + rgb (0.991688, 0.898627, 0.654202) , + rgb (0.991332, 0.905763, 0.661309) , + rgb (0.99093, 0.912915, 0.668481) , + rgb (0.99057, 0.920049, 0.675675) , + rgb (0.990175, 0.927196, 0.682926) , + rgb (0.989815, 0.934329, 0.690198) , + rgb (0.989434, 0.94147, 0.697519) , + rgb (0.989077, 0.948604, 0.704863) , + rgb (0.988717, 0.955742, 0.712242) , + rgb (0.988367, 0.962878, 0.719649) , + rgb (0.988033, 0.970012, 0.727077) , + rgb (0.987691, 0.977154, 0.734536) , + rgb (0.987387, 0.984288, 0.742002) , + rgb (0.987053, 0.991438, 0.749504) + }); list_data plasma = list_data(new pen[] { - rgb (0.050383, 0.029803, 0.527975) , - rgb (0.063536, 0.028426, 0.533124) , - rgb (0.075353, 0.027206, 0.538007) , - rgb (0.086222, 0.026125, 0.542658) , - rgb (0.096379, 0.025165, 0.547103) , - rgb (0.10598, 0.024309, 0.551368) , - rgb (0.115124, 0.023556, 0.555468) , - rgb (0.123903, 0.022878, 0.559423) , - rgb (0.132381, 0.022258, 0.56325) , - rgb (0.140603, 0.021687, 0.566959) , - rgb (0.148607, 0.021154, 0.570562) , - rgb (0.156421, 0.020651, 0.574065) , - rgb (0.16407, 0.020171, 0.577478) , - rgb (0.171574, 0.019706, 0.580806) , - rgb (0.17895, 0.019252, 0.584054) , - rgb (0.186213, 0.018803, 0.587228) , - rgb (0.193374, 0.018354, 0.59033) , - rgb (0.200445, 0.017902, 0.593364) , - rgb (0.207435, 0.017442, 0.596333) , - rgb (0.21435, 0.016973, 0.599239) , - rgb (0.221197, 0.016497, 0.602083) , - rgb (0.227983, 0.016007, 0.604867) , - rgb (0.234715, 0.015502, 0.607592) , - rgb (0.241396, 0.014979, 0.610259) , - rgb (0.248032, 0.014439, 0.612868) , - rgb (0.254627, 0.013882, 0.615419) , - rgb (0.261183, 0.013308, 0.617911) , - rgb (0.267703, 0.012716, 0.620346) , - rgb (0.274191, 0.012109, 0.622722) , - rgb (0.280648, 0.011488, 0.625038) , - rgb (0.287076, 0.010855, 0.627295) , - rgb (0.293478, 0.010213, 0.62949) , - rgb (0.299855, 0.009561, 0.631624) , - rgb (0.30621, 0.008902, 0.633694) , - rgb (0.312543, 0.008239, 0.6357) , - rgb (0.318856, 0.007576, 0.63764) , - rgb (0.32515, 0.006915, 0.639512) , - rgb (0.331426, 0.006261, 0.641316) , - rgb (0.337683, 0.005618, 0.643049) , - rgb (0.343925, 0.004991, 0.64471) , - rgb (0.35015, 0.004382, 0.646298) , - rgb (0.356359, 0.003798, 0.64781) , - rgb (0.362553, 0.003243, 0.649245) , - rgb (0.368733, 0.002724, 0.650601) , - rgb (0.374897, 0.002245, 0.651876) , - rgb (0.381047, 0.001814, 0.653068) , - rgb (0.387183, 0.001434, 0.654177) , - rgb (0.393304, 0.001114, 0.655199) , - rgb (0.399411, 0.000859, 0.656133) , - rgb (0.405503, 0.000678, 0.656977) , - rgb (0.41158, 0.000577, 0.65773) , - rgb (0.417642, 0.000564, 0.65839) , - rgb (0.423689, 0.000646, 0.658956) , - rgb (0.429719, 0.000831, 0.659425) , - rgb (0.435734, 0.001127, 0.659797) , - rgb (0.441732, 0.00154, 0.660069) , - rgb (0.447714, 0.00208, 0.66024) , - rgb (0.453677, 0.002755, 0.66031) , - rgb (0.459623, 0.003574, 0.660277) , - rgb (0.46555, 0.004545, 0.660139) , - rgb (0.471457, 0.005678, 0.659897) , - rgb (0.477344, 0.00698, 0.659549) , - rgb (0.48321, 0.00846, 0.659095) , - rgb (0.489055, 0.010127, 0.658534) , - rgb (0.494877, 0.01199, 0.657865) , - rgb (0.500678, 0.014055, 0.657088) , - rgb (0.506454, 0.016333, 0.656202) , - rgb (0.512206, 0.018833, 0.655209) , - rgb (0.517933, 0.021563, 0.654109) , - rgb (0.523633, 0.024532, 0.652901) , - rgb (0.529306, 0.027747, 0.651586) , - rgb (0.534952, 0.031217, 0.650165) , - rgb (0.54057, 0.03495, 0.64864) , - rgb (0.546157, 0.038954, 0.64701) , - rgb (0.551715, 0.043136, 0.645277) , - rgb (0.557243, 0.047331, 0.643443) , - rgb (0.562738, 0.051545, 0.641509) , - rgb (0.568201, 0.055778, 0.639477) , - rgb (0.573632, 0.060028, 0.637349) , - rgb (0.579029, 0.064296, 0.635126) , - rgb (0.584391, 0.068579, 0.632812) , - rgb (0.589719, 0.072878, 0.630408) , - rgb (0.595011, 0.07719, 0.627917) , - rgb (0.600266, 0.081516, 0.625342) , - rgb (0.605485, 0.085854, 0.622686) , - rgb (0.610667, 0.090204, 0.619951) , - rgb (0.615812, 0.094564, 0.61714) , - rgb (0.620919, 0.098934, 0.614257) , - rgb (0.625987, 0.103312, 0.611305) , - rgb (0.631017, 0.107699, 0.608287) , - rgb (0.636008, 0.112092, 0.605205) , - rgb (0.640959, 0.116492, 0.602065) , - rgb (0.645872, 0.120898, 0.598867) , - rgb (0.650746, 0.125309, 0.595617) , - rgb (0.65558, 0.129725, 0.592317) , - rgb (0.660374, 0.134144, 0.588971) , - rgb (0.665129, 0.138566, 0.585582) , - rgb (0.669845, 0.142992, 0.582154) , - rgb (0.674522, 0.147419, 0.578688) , - rgb (0.67916, 0.151848, 0.575189) , - rgb (0.683758, 0.156278, 0.57166) , - rgb (0.688318, 0.160709, 0.568103) , - rgb (0.69284, 0.165141, 0.564522) , - rgb (0.697324, 0.169573, 0.560919) , - rgb (0.701769, 0.174005, 0.557296) , - rgb (0.706178, 0.178437, 0.553657) , - rgb (0.710549, 0.182868, 0.550004) , - rgb (0.714883, 0.187299, 0.546338) , - rgb (0.719181, 0.191729, 0.542663) , - rgb (0.723444, 0.196158, 0.538981) , - rgb (0.72767, 0.200586, 0.535293) , - rgb (0.731862, 0.205013, 0.531601) , - rgb (0.736019, 0.209439, 0.527908) , - rgb (0.740143, 0.213864, 0.524216) , - rgb (0.744232, 0.218288, 0.520524) , - rgb (0.748289, 0.222711, 0.516834) , - rgb (0.752312, 0.227133, 0.513149) , - rgb (0.756304, 0.231555, 0.509468) , - rgb (0.760264, 0.235976, 0.505794) , - rgb (0.764193, 0.240396, 0.502126) , - rgb (0.76809, 0.244817, 0.498465) , - rgb (0.771958, 0.249237, 0.494813) , - rgb (0.775796, 0.253658, 0.491171) , - rgb (0.779604, 0.258078, 0.487539) , - rgb (0.783383, 0.2625, 0.483918) , - rgb (0.787133, 0.266922, 0.480307) , - rgb (0.790855, 0.271345, 0.476706) , - rgb (0.794549, 0.27577, 0.473117) , - rgb (0.798216, 0.280197, 0.469538) , - rgb (0.801855, 0.284626, 0.465971) , - rgb (0.805467, 0.289057, 0.462415) , - rgb (0.809052, 0.293491, 0.45887) , - rgb (0.812612, 0.297928, 0.455338) , - rgb (0.816144, 0.302368, 0.451816) , - rgb (0.819651, 0.306812, 0.448306) , - rgb (0.823132, 0.311261, 0.444806) , - rgb (0.826588, 0.315714, 0.441316) , - rgb (0.830018, 0.320172, 0.437836) , - rgb (0.833422, 0.324635, 0.434366) , - rgb (0.836801, 0.329105, 0.430905) , - rgb (0.840155, 0.33358, 0.427455) , - rgb (0.843484, 0.338062, 0.424013) , - rgb (0.846788, 0.342551, 0.420579) , - rgb (0.850066, 0.347048, 0.417153) , - rgb (0.853319, 0.351553, 0.413734) , - rgb (0.856547, 0.356066, 0.410322) , - rgb (0.85975, 0.360588, 0.406917) , - rgb (0.862927, 0.365119, 0.403519) , - rgb (0.866078, 0.36966, 0.400126) , - rgb (0.869203, 0.374212, 0.396738) , - rgb (0.872303, 0.378774, 0.393355) , - rgb (0.875376, 0.383347, 0.389976) , - rgb (0.878423, 0.387932, 0.3866) , - rgb (0.881443, 0.392529, 0.383229) , - rgb (0.884436, 0.397139, 0.37986) , - rgb (0.887402, 0.401762, 0.376494) , - rgb (0.89034, 0.406398, 0.37313) , - rgb (0.89325, 0.411048, 0.369768) , - rgb (0.896131, 0.415712, 0.366407) , - rgb (0.898984, 0.420392, 0.363047) , - rgb (0.901807, 0.425087, 0.359688) , - rgb (0.904601, 0.429797, 0.356329) , - rgb (0.907365, 0.434524, 0.35297) , - rgb (0.910098, 0.439268, 0.34961) , - rgb (0.9128, 0.444029, 0.346251) , - rgb (0.915471, 0.448807, 0.34289) , - rgb (0.918109, 0.453603, 0.339529) , - rgb (0.920714, 0.458417, 0.336166) , - rgb (0.923287, 0.463251, 0.332801) , - rgb (0.925825, 0.468103, 0.329435) , - rgb (0.928329, 0.472975, 0.326067) , - rgb (0.930798, 0.477867, 0.322697) , - rgb (0.933232, 0.48278, 0.319325) , - rgb (0.93563, 0.487712, 0.315952) , - rgb (0.93799, 0.492667, 0.312575) , - rgb (0.940313, 0.497642, 0.309197) , - rgb (0.942598, 0.502639, 0.305816) , - rgb (0.944844, 0.507658, 0.302433) , - rgb (0.947051, 0.512699, 0.299049) , - rgb (0.949217, 0.517763, 0.295662) , - rgb (0.951344, 0.52285, 0.292275) , - rgb (0.953428, 0.52796, 0.288883) , - rgb (0.95547, 0.533093, 0.28549) , - rgb (0.957469, 0.53825, 0.282096) , - rgb (0.959424, 0.543431, 0.278701) , - rgb (0.961336, 0.548636, 0.275305) , - rgb (0.963203, 0.553865, 0.271909) , - rgb (0.965024, 0.559118, 0.268513) , - rgb (0.966798, 0.564396, 0.265118) , - rgb (0.968526, 0.5697, 0.261721) , - rgb (0.970205, 0.575028, 0.258325) , - rgb (0.971835, 0.580382, 0.254931) , - rgb (0.973416, 0.585761, 0.25154) , - rgb (0.974947, 0.591165, 0.248151) , - rgb (0.976428, 0.596595, 0.244767) , - rgb (0.977856, 0.602051, 0.241387) , - rgb (0.979233, 0.607532, 0.238013) , - rgb (0.980556, 0.613039, 0.234646) , - rgb (0.981826, 0.618572, 0.231287) , - rgb (0.983041, 0.624131, 0.227937) , - rgb (0.984199, 0.629718, 0.224595) , - rgb (0.985301, 0.63533, 0.221265) , - rgb (0.986345, 0.640969, 0.217948) , - rgb (0.987332, 0.646633, 0.214648) , - rgb (0.98826, 0.652325, 0.211364) , - rgb (0.989128, 0.658043, 0.2081) , - rgb (0.989935, 0.663787, 0.204859) , - rgb (0.990681, 0.669558, 0.201642) , - rgb (0.991365, 0.675355, 0.198453) , - rgb (0.991985, 0.681179, 0.195295) , - rgb (0.992541, 0.68703, 0.19217) , - rgb (0.993032, 0.692907, 0.189084) , - rgb (0.993456, 0.69881, 0.186041) , - rgb (0.993814, 0.704741, 0.183043) , - rgb (0.994103, 0.710698, 0.180097) , - rgb (0.994324, 0.716681, 0.177208) , - rgb (0.994474, 0.722691, 0.174381) , - rgb (0.994553, 0.728728, 0.171622) , - rgb (0.994561, 0.734791, 0.168938) , - rgb (0.994495, 0.74088, 0.166335) , - rgb (0.994355, 0.746995, 0.163821) , - rgb (0.994141, 0.753137, 0.161404) , - rgb (0.993851, 0.759304, 0.159092) , - rgb (0.993482, 0.765499, 0.156891) , - rgb (0.993033, 0.77172, 0.154808) , - rgb (0.992505, 0.777967, 0.152855) , - rgb (0.991897, 0.784239, 0.151042) , - rgb (0.991209, 0.790537, 0.149377) , - rgb (0.990439, 0.796859, 0.14787) , - rgb (0.989587, 0.803205, 0.146529) , - rgb (0.988648, 0.809579, 0.145357) , - rgb (0.987621, 0.815978, 0.144363) , - rgb (0.986509, 0.822401, 0.143557) , - rgb (0.985314, 0.828846, 0.142945) , - rgb (0.984031, 0.835315, 0.142528) , - rgb (0.982653, 0.841812, 0.142303) , - rgb (0.98119, 0.848329, 0.142279) , - rgb (0.979644, 0.854866, 0.142453) , - rgb (0.977995, 0.861432, 0.142808) , - rgb (0.976265, 0.868016, 0.143351) , - rgb (0.974443, 0.874622, 0.144061) , - rgb (0.97253, 0.88125, 0.144923) , - rgb (0.970533, 0.887896, 0.145919) , - rgb (0.968443, 0.894564, 0.147014) , - rgb (0.966271, 0.901249, 0.14818) , - rgb (0.964021, 0.90795, 0.14937) , - rgb (0.961681, 0.914672, 0.15052) , - rgb (0.959276, 0.921407, 0.151566) , - rgb (0.956808, 0.928152, 0.152409) , - rgb (0.954287, 0.934908, 0.152921) , - rgb (0.951726, 0.941671, 0.152925) , - rgb (0.949151, 0.948435, 0.152178) , - rgb (0.946602, 0.95519, 0.150328) , - rgb (0.944152, 0.961916, 0.146861) , - rgb (0.941896, 0.96859, 0.140956) , - rgb (0.940015, 0.975158, 0.131326) -}); + rgb (0.050383, 0.029803, 0.527975) , + rgb (0.063536, 0.028426, 0.533124) , + rgb (0.075353, 0.027206, 0.538007) , + rgb (0.086222, 0.026125, 0.542658) , + rgb (0.096379, 0.025165, 0.547103) , + rgb (0.10598, 0.024309, 0.551368) , + rgb (0.115124, 0.023556, 0.555468) , + rgb (0.123903, 0.022878, 0.559423) , + rgb (0.132381, 0.022258, 0.56325) , + rgb (0.140603, 0.021687, 0.566959) , + rgb (0.148607, 0.021154, 0.570562) , + rgb (0.156421, 0.020651, 0.574065) , + rgb (0.16407, 0.020171, 0.577478) , + rgb (0.171574, 0.019706, 0.580806) , + rgb (0.17895, 0.019252, 0.584054) , + rgb (0.186213, 0.018803, 0.587228) , + rgb (0.193374, 0.018354, 0.59033) , + rgb (0.200445, 0.017902, 0.593364) , + rgb (0.207435, 0.017442, 0.596333) , + rgb (0.21435, 0.016973, 0.599239) , + rgb (0.221197, 0.016497, 0.602083) , + rgb (0.227983, 0.016007, 0.604867) , + rgb (0.234715, 0.015502, 0.607592) , + rgb (0.241396, 0.014979, 0.610259) , + rgb (0.248032, 0.014439, 0.612868) , + rgb (0.254627, 0.013882, 0.615419) , + rgb (0.261183, 0.013308, 0.617911) , + rgb (0.267703, 0.012716, 0.620346) , + rgb (0.274191, 0.012109, 0.622722) , + rgb (0.280648, 0.011488, 0.625038) , + rgb (0.287076, 0.010855, 0.627295) , + rgb (0.293478, 0.010213, 0.62949) , + rgb (0.299855, 0.009561, 0.631624) , + rgb (0.30621, 0.008902, 0.633694) , + rgb (0.312543, 0.008239, 0.6357) , + rgb (0.318856, 0.007576, 0.63764) , + rgb (0.32515, 0.006915, 0.639512) , + rgb (0.331426, 0.006261, 0.641316) , + rgb (0.337683, 0.005618, 0.643049) , + rgb (0.343925, 0.004991, 0.64471) , + rgb (0.35015, 0.004382, 0.646298) , + rgb (0.356359, 0.003798, 0.64781) , + rgb (0.362553, 0.003243, 0.649245) , + rgb (0.368733, 0.002724, 0.650601) , + rgb (0.374897, 0.002245, 0.651876) , + rgb (0.381047, 0.001814, 0.653068) , + rgb (0.387183, 0.001434, 0.654177) , + rgb (0.393304, 0.001114, 0.655199) , + rgb (0.399411, 0.000859, 0.656133) , + rgb (0.405503, 0.000678, 0.656977) , + rgb (0.41158, 0.000577, 0.65773) , + rgb (0.417642, 0.000564, 0.65839) , + rgb (0.423689, 0.000646, 0.658956) , + rgb (0.429719, 0.000831, 0.659425) , + rgb (0.435734, 0.001127, 0.659797) , + rgb (0.441732, 0.00154, 0.660069) , + rgb (0.447714, 0.00208, 0.66024) , + rgb (0.453677, 0.002755, 0.66031) , + rgb (0.459623, 0.003574, 0.660277) , + rgb (0.46555, 0.004545, 0.660139) , + rgb (0.471457, 0.005678, 0.659897) , + rgb (0.477344, 0.00698, 0.659549) , + rgb (0.48321, 0.00846, 0.659095) , + rgb (0.489055, 0.010127, 0.658534) , + rgb (0.494877, 0.01199, 0.657865) , + rgb (0.500678, 0.014055, 0.657088) , + rgb (0.506454, 0.016333, 0.656202) , + rgb (0.512206, 0.018833, 0.655209) , + rgb (0.517933, 0.021563, 0.654109) , + rgb (0.523633, 0.024532, 0.652901) , + rgb (0.529306, 0.027747, 0.651586) , + rgb (0.534952, 0.031217, 0.650165) , + rgb (0.54057, 0.03495, 0.64864) , + rgb (0.546157, 0.038954, 0.64701) , + rgb (0.551715, 0.043136, 0.645277) , + rgb (0.557243, 0.047331, 0.643443) , + rgb (0.562738, 0.051545, 0.641509) , + rgb (0.568201, 0.055778, 0.639477) , + rgb (0.573632, 0.060028, 0.637349) , + rgb (0.579029, 0.064296, 0.635126) , + rgb (0.584391, 0.068579, 0.632812) , + rgb (0.589719, 0.072878, 0.630408) , + rgb (0.595011, 0.07719, 0.627917) , + rgb (0.600266, 0.081516, 0.625342) , + rgb (0.605485, 0.085854, 0.622686) , + rgb (0.610667, 0.090204, 0.619951) , + rgb (0.615812, 0.094564, 0.61714) , + rgb (0.620919, 0.098934, 0.614257) , + rgb (0.625987, 0.103312, 0.611305) , + rgb (0.631017, 0.107699, 0.608287) , + rgb (0.636008, 0.112092, 0.605205) , + rgb (0.640959, 0.116492, 0.602065) , + rgb (0.645872, 0.120898, 0.598867) , + rgb (0.650746, 0.125309, 0.595617) , + rgb (0.65558, 0.129725, 0.592317) , + rgb (0.660374, 0.134144, 0.588971) , + rgb (0.665129, 0.138566, 0.585582) , + rgb (0.669845, 0.142992, 0.582154) , + rgb (0.674522, 0.147419, 0.578688) , + rgb (0.67916, 0.151848, 0.575189) , + rgb (0.683758, 0.156278, 0.57166) , + rgb (0.688318, 0.160709, 0.568103) , + rgb (0.69284, 0.165141, 0.564522) , + rgb (0.697324, 0.169573, 0.560919) , + rgb (0.701769, 0.174005, 0.557296) , + rgb (0.706178, 0.178437, 0.553657) , + rgb (0.710549, 0.182868, 0.550004) , + rgb (0.714883, 0.187299, 0.546338) , + rgb (0.719181, 0.191729, 0.542663) , + rgb (0.723444, 0.196158, 0.538981) , + rgb (0.72767, 0.200586, 0.535293) , + rgb (0.731862, 0.205013, 0.531601) , + rgb (0.736019, 0.209439, 0.527908) , + rgb (0.740143, 0.213864, 0.524216) , + rgb (0.744232, 0.218288, 0.520524) , + rgb (0.748289, 0.222711, 0.516834) , + rgb (0.752312, 0.227133, 0.513149) , + rgb (0.756304, 0.231555, 0.509468) , + rgb (0.760264, 0.235976, 0.505794) , + rgb (0.764193, 0.240396, 0.502126) , + rgb (0.76809, 0.244817, 0.498465) , + rgb (0.771958, 0.249237, 0.494813) , + rgb (0.775796, 0.253658, 0.491171) , + rgb (0.779604, 0.258078, 0.487539) , + rgb (0.783383, 0.2625, 0.483918) , + rgb (0.787133, 0.266922, 0.480307) , + rgb (0.790855, 0.271345, 0.476706) , + rgb (0.794549, 0.27577, 0.473117) , + rgb (0.798216, 0.280197, 0.469538) , + rgb (0.801855, 0.284626, 0.465971) , + rgb (0.805467, 0.289057, 0.462415) , + rgb (0.809052, 0.293491, 0.45887) , + rgb (0.812612, 0.297928, 0.455338) , + rgb (0.816144, 0.302368, 0.451816) , + rgb (0.819651, 0.306812, 0.448306) , + rgb (0.823132, 0.311261, 0.444806) , + rgb (0.826588, 0.315714, 0.441316) , + rgb (0.830018, 0.320172, 0.437836) , + rgb (0.833422, 0.324635, 0.434366) , + rgb (0.836801, 0.329105, 0.430905) , + rgb (0.840155, 0.33358, 0.427455) , + rgb (0.843484, 0.338062, 0.424013) , + rgb (0.846788, 0.342551, 0.420579) , + rgb (0.850066, 0.347048, 0.417153) , + rgb (0.853319, 0.351553, 0.413734) , + rgb (0.856547, 0.356066, 0.410322) , + rgb (0.85975, 0.360588, 0.406917) , + rgb (0.862927, 0.365119, 0.403519) , + rgb (0.866078, 0.36966, 0.400126) , + rgb (0.869203, 0.374212, 0.396738) , + rgb (0.872303, 0.378774, 0.393355) , + rgb (0.875376, 0.383347, 0.389976) , + rgb (0.878423, 0.387932, 0.3866) , + rgb (0.881443, 0.392529, 0.383229) , + rgb (0.884436, 0.397139, 0.37986) , + rgb (0.887402, 0.401762, 0.376494) , + rgb (0.89034, 0.406398, 0.37313) , + rgb (0.89325, 0.411048, 0.369768) , + rgb (0.896131, 0.415712, 0.366407) , + rgb (0.898984, 0.420392, 0.363047) , + rgb (0.901807, 0.425087, 0.359688) , + rgb (0.904601, 0.429797, 0.356329) , + rgb (0.907365, 0.434524, 0.35297) , + rgb (0.910098, 0.439268, 0.34961) , + rgb (0.9128, 0.444029, 0.346251) , + rgb (0.915471, 0.448807, 0.34289) , + rgb (0.918109, 0.453603, 0.339529) , + rgb (0.920714, 0.458417, 0.336166) , + rgb (0.923287, 0.463251, 0.332801) , + rgb (0.925825, 0.468103, 0.329435) , + rgb (0.928329, 0.472975, 0.326067) , + rgb (0.930798, 0.477867, 0.322697) , + rgb (0.933232, 0.48278, 0.319325) , + rgb (0.93563, 0.487712, 0.315952) , + rgb (0.93799, 0.492667, 0.312575) , + rgb (0.940313, 0.497642, 0.309197) , + rgb (0.942598, 0.502639, 0.305816) , + rgb (0.944844, 0.507658, 0.302433) , + rgb (0.947051, 0.512699, 0.299049) , + rgb (0.949217, 0.517763, 0.295662) , + rgb (0.951344, 0.52285, 0.292275) , + rgb (0.953428, 0.52796, 0.288883) , + rgb (0.95547, 0.533093, 0.28549) , + rgb (0.957469, 0.53825, 0.282096) , + rgb (0.959424, 0.543431, 0.278701) , + rgb (0.961336, 0.548636, 0.275305) , + rgb (0.963203, 0.553865, 0.271909) , + rgb (0.965024, 0.559118, 0.268513) , + rgb (0.966798, 0.564396, 0.265118) , + rgb (0.968526, 0.5697, 0.261721) , + rgb (0.970205, 0.575028, 0.258325) , + rgb (0.971835, 0.580382, 0.254931) , + rgb (0.973416, 0.585761, 0.25154) , + rgb (0.974947, 0.591165, 0.248151) , + rgb (0.976428, 0.596595, 0.244767) , + rgb (0.977856, 0.602051, 0.241387) , + rgb (0.979233, 0.607532, 0.238013) , + rgb (0.980556, 0.613039, 0.234646) , + rgb (0.981826, 0.618572, 0.231287) , + rgb (0.983041, 0.624131, 0.227937) , + rgb (0.984199, 0.629718, 0.224595) , + rgb (0.985301, 0.63533, 0.221265) , + rgb (0.986345, 0.640969, 0.217948) , + rgb (0.987332, 0.646633, 0.214648) , + rgb (0.98826, 0.652325, 0.211364) , + rgb (0.989128, 0.658043, 0.2081) , + rgb (0.989935, 0.663787, 0.204859) , + rgb (0.990681, 0.669558, 0.201642) , + rgb (0.991365, 0.675355, 0.198453) , + rgb (0.991985, 0.681179, 0.195295) , + rgb (0.992541, 0.68703, 0.19217) , + rgb (0.993032, 0.692907, 0.189084) , + rgb (0.993456, 0.69881, 0.186041) , + rgb (0.993814, 0.704741, 0.183043) , + rgb (0.994103, 0.710698, 0.180097) , + rgb (0.994324, 0.716681, 0.177208) , + rgb (0.994474, 0.722691, 0.174381) , + rgb (0.994553, 0.728728, 0.171622) , + rgb (0.994561, 0.734791, 0.168938) , + rgb (0.994495, 0.74088, 0.166335) , + rgb (0.994355, 0.746995, 0.163821) , + rgb (0.994141, 0.753137, 0.161404) , + rgb (0.993851, 0.759304, 0.159092) , + rgb (0.993482, 0.765499, 0.156891) , + rgb (0.993033, 0.77172, 0.154808) , + rgb (0.992505, 0.777967, 0.152855) , + rgb (0.991897, 0.784239, 0.151042) , + rgb (0.991209, 0.790537, 0.149377) , + rgb (0.990439, 0.796859, 0.14787) , + rgb (0.989587, 0.803205, 0.146529) , + rgb (0.988648, 0.809579, 0.145357) , + rgb (0.987621, 0.815978, 0.144363) , + rgb (0.986509, 0.822401, 0.143557) , + rgb (0.985314, 0.828846, 0.142945) , + rgb (0.984031, 0.835315, 0.142528) , + rgb (0.982653, 0.841812, 0.142303) , + rgb (0.98119, 0.848329, 0.142279) , + rgb (0.979644, 0.854866, 0.142453) , + rgb (0.977995, 0.861432, 0.142808) , + rgb (0.976265, 0.868016, 0.143351) , + rgb (0.974443, 0.874622, 0.144061) , + rgb (0.97253, 0.88125, 0.144923) , + rgb (0.970533, 0.887896, 0.145919) , + rgb (0.968443, 0.894564, 0.147014) , + rgb (0.966271, 0.901249, 0.14818) , + rgb (0.964021, 0.90795, 0.14937) , + rgb (0.961681, 0.914672, 0.15052) , + rgb (0.959276, 0.921407, 0.151566) , + rgb (0.956808, 0.928152, 0.152409) , + rgb (0.954287, 0.934908, 0.152921) , + rgb (0.951726, 0.941671, 0.152925) , + rgb (0.949151, 0.948435, 0.152178) , + rgb (0.946602, 0.95519, 0.150328) , + rgb (0.944152, 0.961916, 0.146861) , + rgb (0.941896, 0.96859, 0.140956) , + rgb (0.940015, 0.975158, 0.131326) + }); list_data twilight = list_data(new pen[] { - rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) , - rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) , - rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) , - rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) , - rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) , - rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) , - rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) , - rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) , - rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) , - rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) , - rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) , - rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) , - rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) , - rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) , - rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) , - rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) , - rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) , - rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) , - rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) , - rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) , - rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) , - rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) , - rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) , - rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) , - rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) , - rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) , - rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) , - rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) , - rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) , - rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) , - rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) , - rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) , - rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) , - rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) , - rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) , - rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) , - rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) , - rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) , - rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) , - rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) , - rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) , - rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) , - rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) , - rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) , - rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) , - rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) , - rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) , - rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) , - rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) , - rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) , - rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) , - rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) , - rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) , - rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) , - rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) , - rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) , - rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) , - rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) , - rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) , - rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) , - rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) , - rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) , - rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) , - rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) , - rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) , - rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) , - rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) , - rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) , - rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) , - rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) , - rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) , - rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) , - rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) , - rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) , - rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) , - rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) , - rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) , - rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) , - rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) , - rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) , - rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) , - rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) , - rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) , - rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) , - rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) , - rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) , - rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) , - rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) , - rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) , - rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) , - rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) , - rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) , - rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) , - rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) , - rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) , - rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) , - rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) , - rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) , - rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) , - rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) , - rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) , - rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) , - rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) , - rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) , - rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) , - rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) , - rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) , - rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) , - rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) , - rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) , - rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) , - rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) , - rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) , - rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) , - rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) , - rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) , - rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) , - rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) , - rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) , - rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) , - rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) , - rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) , - rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) , - rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) , - rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) , - rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) , - rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) , - rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) , - rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) , - rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) , - rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) , - rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) , - rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) , - rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) , - rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) , - rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) , - rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) , - rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) , - rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) , - rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) , - rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) , - rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) , - rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) , - rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) , - rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) , - rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) , - rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) , - rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) , - rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) , - rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) , - rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) , - rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) , - rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) , - rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) , - rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) , - rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) , - rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) , - rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) , - rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) , - rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) , - rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) , - rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) , - rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) , - rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) , - rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) , - rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) , - rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) , - rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) , - rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) , - rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) , - rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) , - rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) , - rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) , - rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) , - rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) , - rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) , - rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) , - rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) , - rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) , - rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) , - rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) , - rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) , - rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) , - rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) , - rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) , - rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) , - rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) , - rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) , - rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) , - rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) , - rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) , - rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) , - rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) , - rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) , - rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) , - rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) , - rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) , - rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) , - rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) , - rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) , - rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) , - rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) , - rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) , - rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) , - rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) , - rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) , - rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) , - rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) , - rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) , - rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) , - rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) , - rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) , - rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) , - rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) , - rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) , - rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) , - rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) , - rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) , - rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) , - rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) , - rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) , - rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) , - rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) , - rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) , - rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) , - rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) , - rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) , - rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) , - rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) , - rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) , - rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) , - rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) , - rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) , - rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) , - rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) , - rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) , - rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) , - rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) , - rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) , - rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) , - rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) , - rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) , - rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) , - rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) , - rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) , - rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) , - rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) , - rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) , - rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) , - rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) , - rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) , - rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) , - rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) , - rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) , - rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) , - rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993) , - rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) , - rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) , - rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) , - rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) , - rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) , - rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) , - rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) , - rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) , - rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) , - rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) , - rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) , - rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) , - rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) , - rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) , - rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) , - rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) , - rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) , - rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) , - rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) , - rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) , - rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) , - rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) , - rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) , - rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) , - rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) , - rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) , - rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) , - rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) , - rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) , - rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) , - rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) , - rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) , - rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) , - rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) , - rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) , - rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) , - rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) , - rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) , - rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) , - rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) , - rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) , - rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) , - rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) , - rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) , - rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) , - rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) , - rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) , - rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) , - rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) , - rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) , - rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) , - rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) , - rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) , - rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) , - rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) , - rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) , - rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) , - rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) , - rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) , - rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) , - rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) , - rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) , - rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) , - rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) , - rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) , - rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) , - rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) , - rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) , - rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) , - rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) , - rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) , - rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) , - rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) , - rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) , - rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) , - rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) , - rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) , - rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) , - rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) , - rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) , - rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) , - rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) , - rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) , - rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) , - rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) , - rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) , - rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) , - rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) , - rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) , - rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) , - rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) , - rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) , - rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) , - rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) , - rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) , - rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) , - rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) , - rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) , - rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) , - rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) , - rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) , - rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) , - rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) , - rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) , - rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) , - rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) , - rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) , - rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) , - rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) , - rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) , - rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) , - rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) , - rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) , - rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) , - rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) , - rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) , - rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) , - rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) , - rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) , - rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) , - rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) , - rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) , - rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) , - rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) , - rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) , - rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) , - rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) , - rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) , - rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) , - rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) , - rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) , - rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) , - rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) , - rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) , - rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) , - rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) , - rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) , - rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) , - rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) , - rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) , - rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) , - rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) , - rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) , - rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) , - rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) , - rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) , - rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) , - rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) , - rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) , - rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) , - rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) , - rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) , - rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) , - rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) , - rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) , - rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) , - rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) , - rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) , - rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) , - rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) , - rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) , - rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) , - rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) , - rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) , - rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) , - rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) , - rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) , - rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) , - rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) , - rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) , - rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) , - rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) , - rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) , - rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) , - rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) , - rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) , - rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) , - rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) , - rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) , - rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) , - rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) , - rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) , - rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) , - rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) , - rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) , - rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) , - rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) , - rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) , - rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) , - rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) , - rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) , - rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) , - rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) , - rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) , - rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) , - rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) , - rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) , - rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) , - rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) , - rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) , - rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) , - rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) , - rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) , - rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) , - rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) , - rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) , - rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) , - rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) , - rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) , - rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) , - rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) , - rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) , - rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) , - rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) , - rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) , - rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) , - rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) , - rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) , - rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) , - rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) , - rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) , - rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) , - rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) , - rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) , - rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) , - rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) , - rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) , - rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) , - rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) , - rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) , - rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) , - rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) , - rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) , - rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) , - rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) , - rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) , - rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) , - rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) , - rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) , - rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) , - rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) , - rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) , - rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) , - rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) , - rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) , - rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) , - rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) , - rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) , - rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) , - rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) , - rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) , - rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) , - rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) , - rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712) -}); + rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) , + rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) , + rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) , + rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) , + rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) , + rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) , + rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) , + rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) , + rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) , + rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) , + rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) , + rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) , + rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) , + rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) , + rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) , + rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) , + rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) , + rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) , + rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) , + rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) , + rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) , + rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) , + rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) , + rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) , + rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) , + rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) , + rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) , + rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) , + rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) , + rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) , + rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) , + rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) , + rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) , + rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) , + rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) , + rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) , + rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) , + rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) , + rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) , + rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) , + rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) , + rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) , + rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) , + rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) , + rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) , + rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) , + rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) , + rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) , + rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) , + rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) , + rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) , + rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) , + rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) , + rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) , + rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) , + rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) , + rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) , + rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) , + rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) , + rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) , + rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) , + rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) , + rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) , + rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) , + rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) , + rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) , + rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) , + rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) , + rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) , + rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) , + rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) , + rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) , + rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) , + rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) , + rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) , + rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) , + rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) , + rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) , + rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) , + rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) , + rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) , + rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) , + rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) , + rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) , + rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) , + rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) , + rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) , + rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) , + rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) , + rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) , + rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) , + rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) , + rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) , + rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) , + rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) , + rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) , + rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) , + rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) , + rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) , + rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) , + rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) , + rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) , + rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) , + rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) , + rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) , + rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) , + rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) , + rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) , + rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) , + rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) , + rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) , + rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) , + rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) , + rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) , + rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) , + rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) , + rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) , + rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) , + rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) , + rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) , + rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) , + rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) , + rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) , + rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) , + rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) , + rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) , + rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) , + rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) , + rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) , + rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) , + rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) , + rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) , + rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) , + rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) , + rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) , + rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) , + rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) , + rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) , + rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) , + rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) , + rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) , + rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) , + rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) , + rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) , + rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) , + rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) , + rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) , + rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) , + rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) , + rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) , + rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) , + rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) , + rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) , + rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) , + rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) , + rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) , + rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) , + rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) , + rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) , + rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) , + rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) , + rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) , + rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) , + rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) , + rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) , + rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) , + rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) , + rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) , + rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) , + rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) , + rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) , + rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) , + rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) , + rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) , + rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) , + rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) , + rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) , + rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) , + rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) , + rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) , + rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) , + rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) , + rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) , + rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) , + rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) , + rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) , + rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) , + rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) , + rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) , + rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) , + rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) , + rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) , + rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) , + rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) , + rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) , + rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) , + rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) , + rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) , + rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) , + rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) , + rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) , + rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) , + rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) , + rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) , + rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) , + rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) , + rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) , + rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) , + rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) , + rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) , + rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) , + rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) , + rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) , + rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) , + rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) , + rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) , + rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) , + rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) , + rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) , + rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) , + rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) , + rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) , + rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) , + rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) , + rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) , + rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) , + rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) , + rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) , + rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) , + rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) , + rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) , + rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) , + rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) , + rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) , + rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) , + rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) , + rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) , + rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) , + rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) , + rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) , + rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) , + rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) , + rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) , + rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) , + rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) , + rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) , + rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) , + rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) , + rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) , + rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) , + rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) , + rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) , + rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) , + rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) , + rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) , + rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993) , + rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) , + rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) , + rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) , + rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) , + rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) , + rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) , + rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) , + rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) , + rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) , + rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) , + rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) , + rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) , + rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) , + rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) , + rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) , + rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) , + rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) , + rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) , + rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) , + rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) , + rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) , + rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) , + rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) , + rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) , + rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) , + rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) , + rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) , + rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) , + rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) , + rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) , + rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) , + rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) , + rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) , + rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) , + rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) , + rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) , + rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) , + rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) , + rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) , + rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) , + rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) , + rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) , + rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) , + rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) , + rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) , + rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) , + rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) , + rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) , + rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) , + rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) , + rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) , + rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) , + rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) , + rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) , + rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) , + rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) , + rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) , + rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) , + rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) , + rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) , + rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) , + rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) , + rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) , + rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) , + rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) , + rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) , + rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) , + rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) , + rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) , + rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) , + rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) , + rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) , + rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) , + rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) , + rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) , + rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) , + rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) , + rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) , + rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) , + rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) , + rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) , + rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) , + rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) , + rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) , + rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) , + rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) , + rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) , + rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) , + rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) , + rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) , + rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) , + rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) , + rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) , + rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) , + rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) , + rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) , + rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) , + rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) , + rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) , + rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) , + rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) , + rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) , + rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) , + rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) , + rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) , + rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) , + rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) , + rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) , + rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) , + rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) , + rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) , + rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) , + rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) , + rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) , + rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) , + rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) , + rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) , + rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) , + rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) , + rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) , + rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) , + rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) , + rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) , + rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) , + rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) , + rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) , + rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) , + rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) , + rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) , + rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) , + rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) , + rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) , + rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) , + rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) , + rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) , + rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) , + rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) , + rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) , + rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) , + rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) , + rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) , + rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) , + rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) , + rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) , + rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) , + rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) , + rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) , + rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) , + rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) , + rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) , + rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) , + rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) , + rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) , + rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) , + rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) , + rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) , + rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) , + rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) , + rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) , + rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) , + rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) , + rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) , + rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) , + rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) , + rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) , + rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) , + rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) , + rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) , + rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) , + rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) , + rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) , + rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) , + rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) , + rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) , + rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) , + rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) , + rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) , + rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) , + rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) , + rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) , + rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) , + rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) , + rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) , + rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) , + rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) , + rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) , + rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) , + rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) , + rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) , + rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) , + rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) , + rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) , + rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) , + rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) , + rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) , + rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) , + rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) , + rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) , + rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) , + rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) , + rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) , + rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) , + rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) , + rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) , + rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) , + rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) , + rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) , + rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) , + rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) , + rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) , + rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) , + rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) , + rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) , + rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) , + rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) , + rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) , + rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) , + rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) , + rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) , + rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) , + rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) , + rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) , + rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) , + rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) , + rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) , + rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) , + rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) , + rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) , + rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) , + rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) , + rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) , + rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) , + rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) , + rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) , + rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) , + rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) , + rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) , + rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) , + rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) , + rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) , + rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) , + rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) , + rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) , + rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) , + rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) , + rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) , + rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) , + rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) , + rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) , + rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) , + rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) , + rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) , + rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) , + rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712) + }); list_data twilight_shifted = list_data(new pen[] { - rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) , - rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) , - rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) , - rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) , - rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) , - rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) , - rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) , - rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) , - rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) , - rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) , - rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) , - rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) , - rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) , - rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) , - rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) , - rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) , - rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) , - rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) , - rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) , - rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) , - rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) , - rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) , - rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) , - rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) , - rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) , - rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) , - rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) , - rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) , - rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) , - rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) , - rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) , - rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) , - rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) , - rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) , - rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) , - rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) , - rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) , - rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) , - rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) , - rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) , - rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) , - rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) , - rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) , - rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) , - rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) , - rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) , - rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) , - rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) , - rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) , - rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) , - rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) , - rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) , - rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) , - rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) , - rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) , - rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) , - rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) , - rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) , - rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) , - rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) , - rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) , - rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) , - rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) , - rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) , - rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) , - rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) , - rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) , - rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) , - rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) , - rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) , - rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) , - rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) , - rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) , - rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) , - rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) , - rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) , - rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) , - rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) , - rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) , - rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) , - rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) , - rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) , - rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) , - rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) , - rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) , - rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) , - rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) , - rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) , - rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) , - rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) , - rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) , - rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) , - rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) , - rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) , - rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) , - rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) , - rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) , - rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) , - rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) , - rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) , - rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) , - rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) , - rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) , - rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) , - rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) , - rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) , - rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) , - rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) , - rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) , - rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) , - rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) , - rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) , - rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) , - rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) , - rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) , - rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) , - rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) , - rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) , - rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) , - rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) , - rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) , - rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) , - rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) , - rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) , - rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) , - rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) , - rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) , - rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) , - rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) , - rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) , - rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) , - rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) , - rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) , - rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) , - rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) , - rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) , - rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) , - rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) , - rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) , - rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) , - rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) , - rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) , - rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) , - rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) , - rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) , - rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) , - rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) , - rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) , - rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) , - rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) , - rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) , - rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) , - rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) , - rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) , - rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) , - rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) , - rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) , - rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) , - rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) , - rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) , - rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) , - rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) , - rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) , - rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) , - rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) , - rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) , - rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) , - rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) , - rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) , - rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) , - rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) , - rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) , - rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) , - rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) , - rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) , - rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) , - rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) , - rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) , - rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) , - rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) , - rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) , - rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) , - rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) , - rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) , - rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) , - rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) , - rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) , - rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) , - rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) , - rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) , - rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) , - rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) , - rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) , - rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) , - rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) , - rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) , - rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) , - rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) , - rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) , - rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) , - rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) , - rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) , - rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) , - rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) , - rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) , - rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) , - rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) , - rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) , - rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) , - rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) , - rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) , - rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) , - rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) , - rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) , - rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) , - rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) , - rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) , - rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) , - rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) , - rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) , - rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) , - rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) , - rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) , - rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) , - rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) , - rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) , - rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) , - rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) , - rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) , - rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) , - rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) , - rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) , - rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) , - rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) , - rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) , - rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) , - rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) , - rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) , - rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) , - rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) , - rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) , - rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) , - rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) , - rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) , - rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) , - rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) , - rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) , - rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) , - rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) , - rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) , - rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) , - rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) , - rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) , - rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) , - rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) , - rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712) , - rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) , - rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) , - rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) , - rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) , - rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) , - rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) , - rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) , - rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) , - rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) , - rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) , - rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) , - rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) , - rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) , - rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) , - rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) , - rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) , - rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) , - rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) , - rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) , - rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) , - rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) , - rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) , - rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) , - rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) , - rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) , - rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) , - rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) , - rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) , - rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) , - rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) , - rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) , - rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) , - rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) , - rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) , - rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) , - rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) , - rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) , - rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) , - rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) , - rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) , - rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) , - rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) , - rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) , - rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) , - rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) , - rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) , - rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) , - rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) , - rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) , - rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) , - rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) , - rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) , - rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) , - rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) , - rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) , - rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) , - rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) , - rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) , - rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) , - rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) , - rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) , - rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) , - rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) , - rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) , - rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) , - rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) , - rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) , - rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) , - rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) , - rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) , - rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) , - rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) , - rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) , - rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) , - rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) , - rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) , - rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) , - rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) , - rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) , - rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) , - rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) , - rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) , - rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) , - rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) , - rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) , - rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) , - rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) , - rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) , - rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) , - rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) , - rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) , - rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) , - rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) , - rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) , - rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) , - rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) , - rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) , - rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) , - rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) , - rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) , - rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) , - rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) , - rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) , - rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) , - rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) , - rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) , - rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) , - rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) , - rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) , - rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) , - rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) , - rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) , - rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) , - rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) , - rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) , - rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) , - rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) , - rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) , - rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) , - rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) , - rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) , - rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) , - rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) , - rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) , - rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) , - rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) , - rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) , - rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) , - rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) , - rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) , - rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) , - rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) , - rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) , - rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) , - rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) , - rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) , - rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) , - rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) , - rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) , - rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) , - rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) , - rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) , - rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) , - rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) , - rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) , - rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) , - rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) , - rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) , - rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) , - rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) , - rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) , - rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) , - rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) , - rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) , - rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) , - rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) , - rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) , - rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) , - rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) , - rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) , - rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) , - rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) , - rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) , - rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) , - rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) , - rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) , - rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) , - rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) , - rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) , - rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) , - rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) , - rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) , - rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) , - rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) , - rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) , - rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) , - rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) , - rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) , - rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) , - rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) , - rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) , - rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) , - rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) , - rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) , - rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) , - rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) , - rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) , - rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) , - rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) , - rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) , - rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) , - rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) , - rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) , - rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) , - rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) , - rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) , - rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) , - rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) , - rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) , - rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) , - rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) , - rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) , - rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) , - rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) , - rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) , - rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) , - rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) , - rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) , - rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) , - rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) , - rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) , - rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) , - rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) , - rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) , - rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) , - rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) , - rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) , - rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) , - rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) , - rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) , - rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) , - rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) , - rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) , - rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) , - rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) , - rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) , - rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) , - rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) , - rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) , - rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) , - rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) , - rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) , - rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) , - rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) , - rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) , - rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) , - rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) , - rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) , - rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) , - rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) , - rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) , - rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) , - rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) , - rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) , - rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) , - rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) , - rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) , - rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) , - rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) , - rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) , - rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) , - rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) , - rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) , - rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993) -}); + rgb (0.18739228342697645, 0.07710209689958833, 0.21618875376309582) , + rgb (0.18975853639094634, 0.07501986186214377, 0.2193005075652994) , + rgb (0.19199449184606268, 0.0731828306492733, 0.22243385243433622) , + rgb (0.19410351363791453, 0.07160830485689157, 0.22558727307410353) , + rgb (0.1960826032659409, 0.07032122724242362, 0.22874673279569585) , + rgb (0.19794834061899208, 0.06931406607166066, 0.23194647381302336) , + rgb (0.19971571438603364, 0.06859271055370472, 0.23517094067076993) , + rgb (0.2015613376412984, 0.06798327102620025, 0.23852974228695395) , + rgb (0.20352007949514977, 0.06744417961242422, 0.24205576625191821) , + rgb (0.20558051999470117, 0.06699046239786874, 0.24572497420147632) , + rgb (0.2077442377448806, 0.06661453200418091, 0.24954644291943817) , + rgb (0.21001214221188125, 0.06630857391894718, 0.2535289048041211) , + rgb (0.21237411048541005, 0.06608502466175845, 0.2576516509356954) , + rgb (0.21482843531473683, 0.06594038561377849, 0.26191675992376573) , + rgb (0.21737845072382705, 0.06585966123356204, 0.2663420934966951) , + rgb (0.22001251100779617, 0.0658579189189076, 0.2709027999432586) , + rgb (0.22272706739121817, 0.06593379067565194, 0.275597146520537) , + rgb (0.22552164337737857, 0.0660781731193956, 0.28043398847505197) , + rgb (0.2283917709422868, 0.06628997924139618, 0.28541074411068496) , + rgb (0.23132955273021344, 0.06657618693909059, 0.29051361067988485) , + rgb (0.23433055727563878, 0.0669355996616394, 0.295740099298676) , + rgb (0.23739062429054825, 0.06736588805055552, 0.3010892218406587) , + rgb (0.2405081333229594, 0.0678571038148556, 0.3065705449367832) , + rgb (0.24367372557466271, 0.06841985515092269, 0.3121652405088837) , + rgb (0.24688226237959, 0.06905363944920445, 0.31786993834254956) , + rgb (0.2501284530619938, 0.06975820642910699, 0.32368100685760637) , + rgb (0.25340685873736807, 0.07053358292685183, 0.3295945757321303) , + rgb (0.256711916510839, 0.07138010624208224, 0.3356064898460009) , + rgb (0.26003895187439957, 0.0722947810433622, 0.3417175669546984) , + rgb (0.26338121807151404, 0.07328165793989708, 0.34791888996380105) , + rgb (0.26673233211995284, 0.0743440180285462, 0.3542027606624096) , + rgb (0.2700863774911405, 0.07548367558427554, 0.36056376228111864) , + rgb (0.2734373934245081, 0.07670280023749607, 0.36699616136347685) , + rgb (0.2767793961581559, 0.07800394103378822, 0.37349382846504675) , + rgb (0.2801063857697547, 0.07938999480226153, 0.38005028528138707) , + rgb (0.28341239797185225, 0.08086415336549937, 0.38665868550105914) , + rgb (0.28669151388283165, 0.08242987384848069, 0.39331182532243375) , + rgb (0.2899379244517661, 0.08409078829085731, 0.40000214725256295) , + rgb (0.2931459309698525, 0.08585065688962071, 0.40672178082365834) , + rgb (0.2963100038890529, 0.08771325096046395, 0.41346259134143476) , + rgb (0.2994248396021477, 0.08968225371675004, 0.42021619665853854) , + rgb (0.3024853636457425, 0.0917611873973036, 0.42697404043749887) , + rgb (0.30548675819945936, 0.09395276484082374, 0.4337284999936111) , + rgb (0.30842444457210105, 0.09625938534057774, 0.44047194882050544) , + rgb (0.31129434479712365, 0.0986847719340522, 0.4471931371516162) , + rgb (0.3140927841475553, 0.10123077676403242, 0.45388335612058467) , + rgb (0.316816480890235, 0.10389861387653518, 0.46053414662739794) , + rgb (0.31946262395497965, 0.1066887988239266, 0.46713728801395243) , + rgb (0.3220288227606932, 0.10960114111258401, 0.4736849472572688) , + rgb (0.32451307931207785, 0.11263459791730848, 0.48017007211645196) , + rgb (0.3269137124539796, 0.1157873496841953, 0.4865864649569746) , + rgb (0.3292300520323141, 0.11905764321981127, 0.49292595612342666) , + rgb (0.33146154891145124, 0.12244245263391232, 0.4991827458843107) , + rgb (0.33360804901486, 0.1259381830100592, 0.505351647966549) , + rgb (0.33566978565015315, 0.12954074251271822, 0.5114280721516895) , + rgb (0.3376473209067111, 0.13324562282438077, 0.5174080757397947) , + rgb (0.33954168752669694, 0.1370480189671817, 0.5232879753508524) , + rgb (0.34135411074506483, 0.1409427920655632, 0.5290650094033675) , + rgb (0.34308600291572294, 0.14492465359918028, 0.534737042820671) , + rgb (0.34473901574536375, 0.1489882058982641, 0.5403024592040654) , + rgb (0.3463150717579309, 0.15312802296627787, 0.5457599924248665) , + rgb (0.3478165323877778, 0.1573386351115298, 0.5511085345270326) , + rgb (0.34924513554955644, 0.16161477763045118, 0.5563483747416378) , + rgb (0.3506030444193101, 0.1659512998472086, 0.5614796470399323) , + rgb (0.3518924860887379, 0.17034320478524959, 0.5665028491121665) , + rgb (0.35311574421123737, 0.17478570377561287, 0.5714187152355529) , + rgb (0.3542753496066376, 0.17927413271618647, 0.5762280966066872) , + rgb (0.3553741530690672, 0.18380392577704466, 0.580931914318328) , + rgb (0.35641381143126327, 0.18837119869242164, 0.5855320765920552) , + rgb (0.35739663292915563, 0.1929720819784246, 0.5900301125106313) , + rgb (0.3583248996661781, 0.197602942459778, 0.5944276851750107) , + rgb (0.35920088560930186, 0.20226037920758122, 0.5987265295935138) , + rgb (0.36002681809096376, 0.20694122817889948, 0.6029284543191687) , + rgb (0.36080493826624654, 0.21164251793458128, 0.6070353217206471) , + rgb (0.36153829010998356, 0.21636111429594002, 0.6110488067964093) , + rgb (0.36222809558295926, 0.22109488427338303, 0.6149711234609613) , + rgb (0.3628764356004103, 0.2258414929328703, 0.6188041741082302) , + rgb (0.36348537610385145, 0.2305987621839642, 0.6225498862239288) , + rgb (0.3640569302208851, 0.23536470386204195, 0.6262101345195302) , + rgb (0.3645930889012501, 0.24013747024823828, 0.629786801550261) , + rgb (0.3650957984588681, 0.24491536803550484, 0.6332817352005559) , + rgb (0.3655669837353898, 0.24969683475296395, 0.6366967518748858) , + rgb (0.36600853966739794, 0.25448043878086224, 0.6400336180336859) , + rgb (0.3664224325155063, 0.25926481158628106, 0.6432940914076554) , + rgb (0.3668108554010799, 0.26404857724525643, 0.6464799165290824) , + rgb (0.36717513650699446, 0.26883085667326956, 0.6495927229789225) , + rgb (0.36751707094367697, 0.2736106331709098, 0.6526341171161864) , + rgb (0.3678384369653108, 0.2783869718129776, 0.655605668384537) , + rgb (0.3681410147989972, 0.2831590122118299, 0.6585088880697231) , + rgb (0.36842655638020444, 0.2879259643777846, 0.661345269109446) , + rgb (0.3686968223189527, 0.292687098561501, 0.6641162529823691) , + rgb (0.3689535530659678, 0.29744175492366276, 0.6668232208982426) , + rgb (0.36919847837592484, 0.3021893217650707, 0.6694675433161452) , + rgb (0.3694333459127623, 0.3069292355186234, 0.6720505284912062) , + rgb (0.36965987626565955, 0.3116609876295197, 0.6745734474341955) , + rgb (0.3698798032902536, 0.31638410101153364, 0.6770375543809057) , + rgb (0.37009487130772695, 0.3210981375964933, 0.6794440539905685) , + rgb (0.37030682071842685, 0.32580269697872455, 0.6817941168448668) , + rgb (0.37051738634484427, 0.3304974124430785, 0.6840888878885721) , + rgb (0.3707283327942267, 0.33518193808489577, 0.6863294816960677) , + rgb (0.3709415155133733, 0.33985591488818123, 0.6885170337950512) , + rgb (0.37115856636209105, 0.3445191141023017, 0.6906525358646499) , + rgb (0.37138124223736607, 0.34917126878479027, 0.6927370347192883) , + rgb (0.3716113323440048, 0.3538121372967869, 0.6947714991938089) , + rgb (0.3718506155898596, 0.3584414828587522, 0.6967569581025654) , + rgb (0.3721008970244382, 0.3630590973698238, 0.6986943461507372) , + rgb (0.37236397858465387, 0.36766477862108266, 0.7005846349652077) , + rgb (0.37264166757849604, 0.3722583500483685, 0.7024287314570723) , + rgb (0.3729357864666503, 0.3768396383521984, 0.7042275578058994) , + rgb (0.37324816143326384, 0.38140848555753937, 0.7059820097480604) , + rgb (0.3735806215098284, 0.3859647438605754, 0.7076929760731058) , + rgb (0.3739349933047578, 0.3905082752937583, 0.7093613429347845) , + rgb (0.3743131319931234, 0.3950389482828331, 0.7109879652237746) , + rgb (0.3747168601930223, 0.3995566498711684, 0.7125736851650046) , + rgb (0.37514802505380473, 0.4040612609993941, 0.7141193695725726) , + rgb (0.375608469194424, 0.40855267638072096, 0.7156258509158755) , + rgb (0.37610001286385814, 0.4130307995247706, 0.7170939691992023) , + rgb (0.37662448930806297, 0.41749553747893614, 0.7185245473617611) , + rgb (0.3771837184425123, 0.4219468022345483, 0.7199184152447577) , + rgb (0.3777794975351373, 0.4263845142616835, 0.7212763999353023) , + rgb (0.378413635091359, 0.43080859411413064, 0.7225993199306104) , + rgb (0.3790878928311076, 0.43521897612544935, 0.7238879869132313) , + rgb (0.3798040374484875, 0.4396155882122263, 0.7251432377876109) , + rgb (0.3805638069656562, 0.4439983720863372, 0.7263658704513531) , + rgb (0.3813688793045416, 0.4483672766927786, 0.7275567131714135) , + rgb (0.38222094988570376, 0.45272225034283325, 0.7287165614400378) , + rgb (0.3831216808440275, 0.457063235814072, 0.7298462679135326) , + rgb (0.38407269378943537, 0.46139018782416635, 0.7309466543290268) , + rgb (0.3850755679365139, 0.46570306719930193, 0.732018540336905) , + rgb (0.386131841788921, 0.4700018340988123, 0.7330627749243106) , + rgb (0.3872430145933025, 0.4742864593363539, 0.7340801678785439) , + rgb (0.3884105330084243, 0.47855691131792805, 0.7350715764115726) , + rgb (0.38963580160340855, 0.48281316715123496, 0.7360378254693274) , + rgb (0.390920175719949, 0.4870552025122304, 0.7369797713388125) , + rgb (0.39226494876209317, 0.4912830033289926, 0.7378982478447508) , + rgb (0.39367135736822567, 0.4954965577745118, 0.738794102296364) , + rgb (0.3951405880820763, 0.4996958532637776, 0.7396682021171571) , + rgb (0.3966737490566561, 0.5038808905384797, 0.7405213858051674) , + rgb (0.3982719152586337, 0.5080516653927614, 0.7413545091809972) , + rgb (0.39993606933454834, 0.5122081814321852, 0.7421684457131799) , + rgb (0.40166714010896104, 0.5163504496968876, 0.7429640345324835) , + rgb (0.40346600333905397, 0.5204784765384003, 0.7437421522356709) , + rgb (0.4053334378930318, 0.5245922817498312, 0.7445036583670813) , + rgb (0.4072701869421907, 0.5286918801105741, 0.7452494263758127) , + rgb (0.4092768899914751, 0.5327773017713032, 0.7459803063570782) , + rgb (0.4113541469730457, 0.5368485776500593, 0.7466971285506578) , + rgb (0.4135024574331473, 0.5409057477109848, 0.7474007329754309) , + rgb (0.4157223260454232, 0.544948827153504, 0.7480920445900052) , + rgb (0.4180141407923363, 0.5489778542188889, 0.7487719316700112) , + rgb (0.42037822361396326, 0.5529928715810817, 0.7494412559451894) , + rgb (0.4228148567577266, 0.5569939212699658, 0.7501008698822764) , + rgb (0.42532423665011354, 0.560981049599503, 0.7507516498900512) , + rgb (0.42790652284925834, 0.5649543060909209, 0.7513944352191484) , + rgb (0.4305617907305757, 0.5689137457245718, 0.752030080993127) , + rgb (0.43329008867358393, 0.5728594162560667, 0.7526594653256667) , + rgb (0.4360913895835637, 0.5767913799818608, 0.7532834105961016) , + rgb (0.43896563958048396, 0.5807096924109849, 0.7539027620828594) , + rgb (0.441912717666964, 0.5846144110017557, 0.7545183888441067) , + rgb (0.4449324685421538, 0.5885055998308617, 0.7551311041857901) , + rgb (0.4480247093358917, 0.5923833145214658, 0.7557417647410792) , + rgb (0.45118918687617743, 0.5962476205135354, 0.7563512064324664) , + rgb (0.45442563977552913, 0.6000985950385866, 0.7569601366060649) , + rgb (0.45773377230160567, 0.6039363004658646, 0.7575693690185916) , + rgb (0.4611132664702388, 0.607760777169989, 0.7581798643680714) , + rgb (0.4645637671630393, 0.6115720882286415, 0.7587924262302581) , + rgb (0.46808490970531597, 0.6153702869579029, 0.7594078989109274) , + rgb (0.4716762951887709, 0.6191554324288464, 0.7600270922788305) , + rgb (0.47533752394906287, 0.6229275728383581, 0.7606508557181775) , + rgb (0.47906816236197386, 0.6266867625186013, 0.7612800037566242) , + rgb (0.4828677867260272, 0.6304330455306234, 0.761915371498953) , + rgb (0.4867359599430568, 0.6341664625110051, 0.7625578008592404) , + rgb (0.4906722493856122, 0.6378870485884708, 0.7632081276316384) , + rgb (0.4946761847863938, 0.6415948411950443, 0.7638671900213091) , + rgb (0.4987473366135607, 0.6452898684900934, 0.7645357873418008) , + rgb (0.5028853540415561, 0.6489721673409526, 0.7652144671817491) , + rgb (0.5070896957645166, 0.6526417240314645, 0.7659044566083585) , + rgb (0.5113599254160193, 0.6562985398183186, 0.7666066378064533) , + rgb (0.5156955988596057, 0.65994260812898, 0.7673219148959617) , + rgb (0.5200962739223556, 0.6635739143403039, 0.768051194033441) , + rgb (0.5245615147059358, 0.6671924299614223, 0.7687954171423095) , + rgb (0.529090861832473, 0.6707981230280622, 0.7695555229231313) , + rgb (0.533683891477284, 0.6743909370521273, 0.7703325054879735) , + rgb (0.5383401557517628, 0.677970811290954, 0.7711273443905772) , + rgb (0.5430593242401823, 0.6815376725306588, 0.7719407969783508) , + rgb (0.5478409815301863, 0.6850914221850988, 0.7727738647344087) , + rgb (0.5526845058934713, 0.6886319451516638, 0.7736279426902245) , + rgb (0.5575894041960517, 0.6921591145825405, 0.7745041337932782) , + rgb (0.5625551535721934, 0.6956727838162965, 0.7754035914230984) , + rgb (0.5675811785386197, 0.6991727930264627, 0.776327485342753) , + rgb (0.5726668948158774, 0.7026589535425779, 0.7772770268091199) , + rgb (0.5778116438998202, 0.7061310615715398, 0.7782534512102552) , + rgb (0.5830148703693241, 0.7095888767699747, 0.7792578182047659) , + rgb (0.588275797805555, 0.7130321464645814, 0.7802914140563652) , + rgb (0.5935933569683722, 0.7164606049658685, 0.781355882376401) , + rgb (0.5989665814482068, 0.7198739489224673, 0.7824525989934664) , + rgb (0.6043943420027486, 0.7232718614323369, 0.7835829559353559) , + rgb (0.6098754317609306, 0.7266539875975829, 0.7847483573269471) , + rgb (0.6154084641177048, 0.7300199523273969, 0.7859502270675048) , + rgb (0.6209919306481755, 0.733369347989232, 0.7871899462469658) , + rgb (0.6266240202260459, 0.7367017540369944, 0.7884690131633456) , + rgb (0.6323027138710603, 0.740016721601314, 0.7897889276264043) , + rgb (0.6380258682854598, 0.7433137671403319, 0.7911510045957317) , + rgb (0.6437910831099849, 0.7465923800833657, 0.7925565320130605) , + rgb (0.6495957300425348, 0.7498520122194177, 0.7940067402149911) , + rgb (0.6554369232645472, 0.7530920875676843, 0.7955027112903105) , + rgb (0.6613112930078745, 0.7563120270871903, 0.7970456043491897) , + rgb (0.6672147980375281, 0.7595112803730375, 0.7986367465453776) , + rgb (0.6731442255942621, 0.7626890873389048, 0.8002762854580953) , + rgb (0.6790955449988215, 0.765844721313959, 0.8019646617300199) , + rgb (0.6850644615439593, 0.7689774029354699, 0.8037020626717691) , + rgb (0.691046410093091, 0.7720862946067809, 0.8054884169067907) , + rgb (0.6970365443886174, 0.7751705000806606, 0.8073233538006345) , + rgb (0.7030297722540817, 0.7782290497335813, 0.8092061884805697) , + rgb (0.709020781345393, 0.7812608871607091, 0.8111359185511793) , + rgb (0.7150040307625213, 0.7842648709158119, 0.8131111655994991) , + rgb (0.7209728066553678, 0.7872399592345264, 0.8151307392087926) , + rgb (0.726921775128297, 0.7901846863592763, 0.8171921746672638) , + rgb (0.7328454364552346, 0.7930974646884407, 0.8192926338423038) , + rgb (0.7387377170049494, 0.7959766573503101, 0.8214292278043301) , + rgb (0.7445924777189017, 0.7988204771958325, 0.8235986758615652) , + rgb (0.750403467654067, 0.8016269900896532, 0.8257973785108242) , + rgb (0.7561644358438198, 0.8043940873347794, 0.8280213899472) , + rgb (0.7618690793798029, 0.8071194938764749, 0.830266486168872) , + rgb (0.7675110850441786, 0.8098007598713145, 0.8325281663805967) , + rgb (0.7730841659017094, 0.8124352473546601, 0.8348017295057968) , + rgb (0.7785789200822759, 0.8150208937874255, 0.8370834463093898) , + rgb (0.7839910104276492, 0.8175542640053343, 0.8393674746403673) , + rgb (0.7893144556460892, 0.8200321318870201, 0.8416486380471222) , + rgb (0.7945430508923111, 0.8224511622630462, 0.8439218478682798) , + rgb (0.79967075421268, 0.8248078181208093, 0.8461821002957853) , + rgb (0.8046916442981458, 0.8270983878056066, 0.8484244929697402) , + rgb (0.8095999819094809, 0.8293189667350546, 0.8506444160105037) , + rgb (0.8143898212114309, 0.8314655869419785, 0.8528375906214702) , + rgb (0.8190465467793753, 0.8335364929949034, 0.855002062870101) , + rgb (0.8235742968025285, 0.8355248776479544, 0.8571319132851495) , + rgb (0.8279689431601354, 0.837426007513952, 0.8592239945130679) , + rgb (0.8322270571293441, 0.8392349062775448, 0.8612756350042788) , + rgb (0.8363403180919118, 0.8409479651895194, 0.8632852800107016) , + rgb (0.8403042080595778, 0.8425605950855084, 0.865250882410458) , + rgb (0.8441261828674842, 0.8440648271103739, 0.8671697332269007) , + rgb (0.8478071070257792, 0.8454546229209523, 0.8690403678369444) , + rgb (0.8513371457085719, 0.8467273579611647, 0.8708608165735044) , + rgb (0.8547259318925698, 0.8478748812467282, 0.8726282980930582) , + rgb (0.8579825924567037, 0.8488893481028184, 0.8743403855344628) , + rgb (0.8611024543689985, 0.8497675485700126, 0.8759924292343957) , + rgb (0.86408985081464, 0.8505039116750779, 0.8775792578489263) , + rgb (0.8669601550533358, 0.8510896085314068, 0.8790976697717334) , + rgb (0.8697047485350982, 0.8515240300479789, 0.8805388339000336) , + rgb (0.8723313408512408, 0.8518016547808089, 0.8818970435500162) , + rgb (0.8748534750857597, 0.8519152612302319, 0.8831692696761383) , + rgb (0.8772488085896548, 0.8518702833887027, 0.8843412038131143) , + rgb (0.8795410528270573, 0.8516567540749572, 0.8854143767924102) , + rgb (0.8817223105928579, 0.8512759407765347, 0.8863805692551482) , + rgb (0.8837852019553906, 0.8507294054031063, 0.8872322209694989) , + rgb (0.8857501584075443, 0.8500092494306783, 0.8879736506427196) , + rgb (0.8857115512284565, 0.8500218611585632, 0.8857253899008712) , + rgb (0.8855471481195238, 0.8498717428363158, 0.8833620612117095) , + rgb (0.8852589797263047, 0.8495589281098921, 0.8808841479402484) , + rgb (0.8848513815990857, 0.849084264228938, 0.8782823528537247) , + rgb (0.8843271305411354, 0.8484474157205542, 0.8755678522824297) , + rgb (0.8836912714589804, 0.8476489176151927, 0.8727414710144156) , + rgb (0.8829516859544853, 0.8466897027569927, 0.8697961704819097) , + rgb (0.8821154248940161, 0.8455700725455935, 0.8667376504623333) , + rgb (0.8811916987134195, 0.8442906671771735, 0.8635659516866988) , + rgb (0.8801929331569581, 0.8428522482477862, 0.8602739992715663) , + rgb (0.8791324424079277, 0.8412555488447591, 0.8568557229103964) , + rgb (0.8780229843664901, 0.8395016561854007, 0.8533064535245892) , + rgb (0.8768784845161469, 0.8375923807118654, 0.8496137354915025) , + rgb (0.875714587099614, 0.8355302318472394, 0.8457553751902708) , + rgb (0.8745379332026019, 0.8333197294864546, 0.8417192535806901) , + rgb (0.8733517136091627, 0.8309671525127262, 0.8374885100119709) , + rgb (0.8721533197845432, 0.8284805282370967, 0.8330486712880828) , + rgb (0.8709384671729751, 0.8258685788943851, 0.8283849726114961) , + rgb (0.8696913150261381, 0.8231415885956916, 0.8235047668317317) , + rgb (0.8683995469581863, 0.8203087551218152, 0.8184163896312899) , + rgb (0.867053149070485, 0.8173780404191124, 0.813134196269114) , + rgb (0.8656493432560532, 0.8143554406751491, 0.8076697232416455) , + rgb (0.8641834372394103, 0.8112464422465354, 0.8020461269686395) , + rgb (0.8626560105112757, 0.8080552380426153, 0.796282666437655) , + rgb (0.8610711702756552, 0.8047851790981223, 0.7903952966373629) , + rgb (0.8594346370300241, 0.8014392309950078, 0.7843978875138392) , + rgb (0.857756629435049, 0.7980196314271393, 0.778295716672475) , + rgb (0.856040223147254, 0.7945296360155061, 0.7721061003767414) , + rgb (0.8542921961147046, 0.7909719677709199, 0.765838014779141) , + rgb (0.8525190720770844, 0.7873493613354844, 0.7594994148789691) , + rgb (0.8507269702317879, 0.7836645734238389, 0.7530974636118285) , + rgb (0.8489224556311764, 0.7799202140765015, 0.7466371929366437) , + rgb (0.847111955079651, 0.7761188023604716, 0.7401227576280706) , + rgb (0.8452981073195511, 0.7722633860104472, 0.7335636824054149) , + rgb (0.843485292229337, 0.7683566039987018, 0.7269653699897204) , + rgb (0.8416775076684515, 0.7644010120098295, 0.7203329938728462) , + rgb (0.8398783988412087, 0.7603990719977968, 0.7136714781112923) , + rgb (0.8380912347613196, 0.7563531486080863, 0.7069856139021298) , + rgb (0.8363189884473793, 0.7522654895287526, 0.7002799902886496) , + rgb (0.8345656905566583, 0.7481379479992134, 0.6935569764986385) , + rgb (0.8328327718577798, 0.7439727181745988, 0.6868223587464855) , + rgb (0.8311216352909631, 0.7397718464763862, 0.6800812520363146) , + rgb (0.8294340781648147, 0.7355371221572935, 0.6733377200930191) , + rgb (0.8277716072353446, 0.7312702332407809, 0.6665957020468297) , + rgb (0.8261354971058026, 0.7269727551823826, 0.659859001562165) , + rgb (0.8245268129450285, 0.7226461431208888, 0.653131379154226) , + rgb (0.8229463511042843, 0.7182917733129006, 0.6464164243818421) , + rgb (0.8213947205565636, 0.7139109141951604, 0.6397176669767276) , + rgb (0.8198723065045529, 0.7095047497878748, 0.6330385704006711) , + rgb (0.8183793116449822, 0.705074381896351, 0.626382454789333) , + rgb (0.8169157577505589, 0.7006208301478398, 0.6197526063725792) , + rgb (0.8154814662727948, 0.6961450550830809, 0.6131522120932265) , + rgb (0.8140761104699334, 0.6916479479148213, 0.6065843782630862) , + rgb (0.8126992203988149, 0.6871303371461888, 0.600052148204351) , + rgb (0.8113501401176333, 0.6825930154624339, 0.5935584890905076) , + rgb (0.8100280946652069, 0.6780367267397182, 0.5871062690808275) , + rgb (0.8087321917008969, 0.6734621670219452, 0.5806983480557674) , + rgb (0.8074614045096935, 0.6688700095398864, 0.5743374637345958) , + rgb (0.8062146052692706, 0.6642608958528229, 0.5680262917864979) , + rgb (0.804990547908103, 0.6596354502756416, 0.5617674511054698) , + rgb (0.8037879253107763, 0.6549942654947263, 0.5555635086708381) , + rgb (0.8026053114611295, 0.6503379374810385, 0.5494169158460365) , + rgb (0.8014412429256005, 0.6456670345921877, 0.5433300863249918) , + rgb (0.8002941538975398, 0.6409821330674986, 0.5373053518514104) , + rgb (0.7991624518501963, 0.6362837937202919, 0.5313449594256143) , + rgb (0.7980444781513664, 0.6315725822508955, 0.5254510814483478) , + rgb (0.7969385471995161, 0.626849056792967, 0.5196258425240281) , + rgb (0.7958429237958377, 0.6221137880845115, 0.5138712409190979) , + rgb (0.7947558597265404, 0.617367344002207, 0.5081892121310299) , + rgb (0.7936755969866496, 0.6126102933407219, 0.5025816129126943) , + rgb (0.7926003430423745, 0.6078432208703702, 0.4970502062153201) , + rgb (0.7915283284347561, 0.603066705931472, 0.49159667021646397) , + rgb (0.7904577684772788, 0.5982813427706246, 0.48622257801969754) , + rgb (0.7893873776625194, 0.5934875421745599, 0.48092913815357724) , + rgb (0.7883151404562396, 0.5886860017356244, 0.4757179187907608) , + rgb (0.7872390410818835, 0.5838774374455721, 0.47059039582133383) , + rgb (0.7861573713233296, 0.5790624629815756, 0.465547782819184) , + rgb (0.7850684501960684, 0.5742417003617839, 0.46059116206904965) , + rgb (0.7839706083641448, 0.5694157832671042, 0.4557215474289206) , + rgb (0.7828622526444091, 0.5645853311116688, 0.45093985823706345) , + rgb (0.7817418047898184, 0.5597509805259486, 0.44624687186865436) , + rgb (0.7806077474948377, 0.5549133574489061, 0.4416433242636464) , + rgb (0.7794586273150664, 0.5500730841397727, 0.4371297985644476) , + rgb (0.7782934580763312, 0.545230594884266, 0.432706647838971) , + rgb (0.7771103295521099, 0.5403867491056124, 0.4283745037125848) , + rgb (0.775907907306857, 0.5355421788246119, 0.42413367909988375) , + rgb (0.774684947460632, 0.5306974938477673, 0.4199844035696376) , + rgb (0.7734402182988989, 0.5258533209345156, 0.41592679539764366) , + rgb (0.7721725722960555, 0.5210102658711383, 0.4119608998712287) , + rgb (0.7708809196230247, 0.516168926434691, 0.40808667584648967) , + rgb (0.7695642334401418, 0.5113298901696085, 0.4043039806968248) , + rgb (0.768221765997353, 0.5064936237128791, 0.40061257089416885) , + rgb (0.7668522895064389, 0.5016608471009063, 0.39701221751773474) , + rgb (0.7654549259333051, 0.4968321290972723, 0.3935025400011538) , + rgb (0.7640288560928866, 0.49200802533379656, 0.39008308392311997) , + rgb (0.7625733355405261, 0.48718906673415824, 0.38675335037837993) , + rgb (0.7610876378057071, 0.48237579130289127, 0.3835127572385229) , + rgb (0.7595711110534006, 0.4775687122205708, 0.380360657784311) , + rgb (0.7580232553845584, 0.4727682731566229, 0.3772963553109668) , + rgb (0.7564434157714071, 0.4679750143794846, 0.37431909037543515) , + rgb (0.7548310506695954, 0.46318942799460555, 0.3714280448394211) , + rgb (0.7531856636904657, 0.45841199172949604, 0.3686223664223477) , + rgb (0.7515068504589166, 0.45364314496866825, 0.36590112443835765) , + rgb (0.7497942054717047, 0.4488833348154881, 0.3632633755836028) , + rgb (0.7480473927555956, 0.44413297780351974, 0.36070813602540136) , + rgb (0.7462661578916344, 0.439392450449735, 0.3582343914230064) , + rgb (0.7444501867657067, 0.4346621718461711, 0.35584108091122535) , + rgb (0.7425992159973317, 0.42994254036133867, 0.3535270924537459) , + rgb (0.7407130161950609, 0.4252339389526239, 0.35129130890802607) , + rgb (0.7387914002459927, 0.4205367299231533, 0.34913260148542435) , + rgb (0.7368342217358587, 0.4158512585029011, 0.347049785207584) , + rgb (0.7348413359856494, 0.4111778700451951, 0.3450416947080907) , + rgb (0.7328127050626875, 0.4065168468778026, 0.3431071517341082) , + rgb (0.7307482075484517, 0.401868526884681, 0.3412449533046818) , + rgb (0.7286477385671655, 0.39723324476747235, 0.33945384341064017) , + rgb (0.7265112290022755, 0.3926113126792577, 0.3377325942005665) , + rgb (0.7243386564778159, 0.38800301593162145, 0.3360799596569183) , + rgb (0.7221299918421461, 0.3834086450896306, 0.33449469983585844) , + rgb (0.7198852149054985, 0.37882848839337313, 0.332975552002454) , + rgb (0.7176044490813385, 0.3742627271068619, 0.3315213862095893) , + rgb (0.7152876061484729, 0.3697117022522345, 0.3301308728723546) , + rgb (0.7129346683977347, 0.36517570519856757, 0.3288027427038317) , + rgb (0.7105456546582587, 0.36065500290840113, 0.3275357416278876) , + rgb (0.7081205956842048, 0.356149855233803, 0.32632861885644465) , + rgb (0.7056595112261009, 0.3516605297812094, 0.32518014084085567) , + rgb (0.7031624945881415, 0.34718723719598, 0.32408913679491225) , + rgb (0.700629624772421, 0.34273019305341756, 0.32305449047765694) , + rgb (0.6980608153581771, 0.3382897632604862, 0.3220747885521809) , + rgb (0.6954560834689112, 0.33386622163232865, 0.3211488430698579) , + rgb (0.6928154484676493, 0.32945984647042675, 0.3202754315314667) , + rgb (0.6901389321505248, 0.32507091815606004, 0.319453323328983) , + rgb (0.6874265643516962, 0.32069970535138104, 0.3186813762227769) , + rgb (0.6846785094249453, 0.3163463482122221, 0.31795870784057567) , + rgb (0.6818945715094452, 0.31201133280550686, 0.3172838048924495) , + rgb (0.6790747402815734, 0.30769497879760166, 0.31665545668946665) , + rgb (0.6762189792440975, 0.30339762792450425, 0.3160724937230589) , + rgb (0.6733272556481733, 0.29911962764489264, 0.3155337232398221) , + rgb (0.670399595476762, 0.29486126309253047, 0.3150381395687221) , + rgb (0.6674360376636913, 0.29062280081258873, 0.31458483752056837) , + rgb (0.6644363246987884, 0.2864048361425618, 0.31417223403606975) , + rgb (0.6614003753260178, 0.28220778870555907, 0.3137991292649849) , + rgb (0.6583280801134499, 0.2780321095766563, 0.3134643447952643) , + rgb (0.6552193260932713, 0.2738782665241015, 0.3131666792687211) , + rgb (0.652074172902773, 0.269746505252367, 0.3129056060581917) , + rgb (0.6488923016945825, 0.2656375533620908, 0.3126794181957019) , + rgb (0.6456734938264543, 0.2615520316161528, 0.31248673753935263) , + rgb (0.642417577481186, 0.257490519876798, 0.31232631707560987) , + rgb (0.6391243387840212, 0.2534536546198314, 0.3121968961206398) , + rgb (0.6357937104834237, 0.24944185818822678, 0.3120979395330059) , + rgb (0.6324253485421027, 0.24545598775548677, 0.3120276597462445) , + rgb (0.6290189201698587, 0.24149689191922535, 0.3119844719564572) , + rgb (0.6255741650043496, 0.23756535071152696, 0.3119669831491227) , + rgb (0.6220907982108261, 0.2336621873300741, 0.3119738327362739) , + rgb (0.6185686525887719, 0.2297879924917992, 0.3120046383872893) , + rgb (0.6150072323639137, 0.22594402043981826, 0.3120568068576574) , + rgb (0.6114062072731884, 0.22213124697023234, 0.3121288139643524) , + rgb (0.6077652399481865, 0.21835070166659282, 0.312219032918702) , + rgb (0.6040840169673274, 0.21460331490206347, 0.31232652641170694) , + rgb (0.6003621301041158, 0.21089030138947745, 0.3124493441041469) , + rgb (0.5965991810912237, 0.207212956082026, 0.3125852303112123) , + rgb (0.5927948053652026, 0.20357251410079796, 0.3127323483930494) , + rgb (0.5889486193554471, 0.19997020971775276, 0.31288922211590126) , + rgb (0.5850602439646688, 0.19640737049066315, 0.3130540116373273) , + rgb (0.5811293276158656, 0.19288548904692518, 0.3132239939418394) , + rgb (0.5771555081299204, 0.18940601489760422, 0.3133970433357208) , + rgb (0.5731384575410787, 0.18597036007065024, 0.3135712686852) , + rgb (0.5690778478401143, 0.18258004462335425, 0.3137444095679653) , + rgb (0.564973435290177, 0.17923664950367169, 0.3139136046337036) , + rgb (0.5608249903911717, 0.17594170887918095, 0.31407639883970623) , + rgb (0.5566322903496934, 0.17269677158182117, 0.31423043195101424) , + rgb (0.5523952157271191, 0.16950338809328983, 0.3143729155461537) , + rgb (0.5481137003346762, 0.1663630904279047, 0.3145010299091471) , + rgb (0.5437877131360856, 0.16327738551419116, 0.31461204226295625) , + rgb (0.5394173664919906, 0.16024769309971934, 0.31470295028655965) , + rgb (0.5350027976174474, 0.15727540775107324, 0.3147708520739653) , + rgb (0.5305442048985645, 0.15436183633886777, 0.3148129978918713) , + rgb (0.5260418962547748, 0.15150818660835483, 0.31482653406646727) , + rgb (0.5214965286322996, 0.14871544765633712, 0.3148076795453443) , + rgb (0.5169084880054446, 0.14598463068714407, 0.3147540759228004) , + rgb (0.5122783510532176, 0.14331656120063752, 0.3146630922831542) , + rgb (0.5076068118105369, 0.14071192654913128, 0.3145320012008257) , + rgb (0.5028952497497061, 0.13817086581280427, 0.3143566215383367) , + rgb (0.4981443546207415, 0.13569380302451714, 0.314135190862664) , + rgb (0.49335504375145617, 0.13328091630401023, 0.31386561956734976) , + rgb (0.48852847371852987, 0.13093210934893723, 0.31354553695453014) , + rgb (0.48366628618847957, 0.1286467902201389, 0.31317188565991266) , + rgb (0.47877034239726296, 0.12642401401409453, 0.3127417273582196) , + rgb (0.473841437035254, 0.12426354237989065, 0.31225470169927194) , + rgb (0.46888111384598413, 0.12216445576414045, 0.31170911458932665) , + rgb (0.46389102840284874, 0.12012561256850712, 0.31110343446582983) , + rgb (0.45887288947308297, 0.11814571137706886, 0.3104363697903881) , + rgb (0.4538300508699989, 0.11622183788331528, 0.3097044124984492) , + rgb (0.4487629917317482, 0.1143535557462255, 0.30890905921943196) , + rgb (0.44367358645071275, 0.11253912421257944, 0.3080497309546545) , + rgb (0.4385637818793154, 0.11077667828375456, 0.30712600062348083) , + rgb (0.4334355841041439, 0.1090642347484701, 0.3061376792828915) , + rgb (0.4282910131578975, 0.1073997763055258, 0.30508479060294547) , + rgb (0.42313214269556043, 0.10578120994917611, 0.3039675809469457) , + rgb (0.41796105205173684, 0.10420644885760968, 0.3027865203963184) , + rgb (0.41277985630360303, 0.1026734006932461, 0.3015422643746897) , + rgb (0.4075912039268871, 0.10117945586419633, 0.300235195077286) , + rgb (0.40239692379737496, 0.09972293031495055, 0.2988667436973397) , + rgb (0.39719876876325577, 0.09830232096827862, 0.2974385647628578) , + rgb (0.39199887556812907, 0.09691583650296684, 0.2959521200550908) , + rgb (0.3867993907954417, 0.09556181960083443, 0.29440901248173756) , + rgb (0.38160247377467543, 0.09423873126371218, 0.2928110750626949) , + rgb (0.3764103053221462, 0.09294519809377791, 0.2911602415731392) , + rgb (0.3712250843130934, 0.09167999748026273, 0.2894586539763317) , + rgb (0.36605031412464006, 0.0904406854276979, 0.2877077458811747) , + rgb (0.36088752387578377, 0.0892271943627452, 0.28591050458531014) , + rgb (0.35573889947341125, 0.08803897435024335, 0.2840695897279818) , + rgb (0.3506067824603248, 0.08687555176033529, 0.28218770540182386) , + rgb (0.345493557138718, 0.08573665496512634, 0.28026769921081435) , + rgb (0.34040164359597463, 0.08462223619170267, 0.27831254595259397) , + rgb (0.3353335322445545, 0.08353243411900396, 0.2763253435679004) , + rgb (0.3302917447118144, 0.08246763389003825, 0.27430929404579435) , + rgb (0.3252788886040126, 0.08142839007654609, 0.27226772884656186) , + rgb (0.3202998655799406, 0.08041299473755484, 0.2702032289303951) , + rgb (0.3153587000920581, 0.07942099731524319, 0.2681190407694196) , + rgb (0.31045520848595526, 0.07845687167618218, 0.2660200572779356) , + rgb (0.30559226007249934, 0.07752196310753731, 0.2639100669211966) , + rgb (0.3007727681291869, 0.07661782433616476, 0.2617929409781967) , + rgb (0.2960004726065818, 0.07574533600095842, 0.25967245030364566) , + rgb (0.29128515387578635, 0.0748990498474667, 0.25755101595750435) , + rgb (0.28662309235899847, 0.07408846082680887, 0.2554347867371703) , + rgb (0.2820174629736694, 0.07331569321404097, 0.25332800295084507) , + rgb (0.277471508091428, 0.07258296989925478, 0.2512349399594277) , + rgb (0.272997015188973, 0.07188355544616351, 0.2491584709323293) , + rgb (0.2685909594817286, 0.07122671627792246, 0.24710443563450618) , + rgb (0.2642551220706094, 0.07061659562299544, 0.24507758869355967) , + rgb (0.25999463887892144, 0.07005385560386188, 0.24308218808684579) , + rgb (0.2558213554748177, 0.06953231029187984, 0.24112190491594204) , + rgb (0.25172899728289466, 0.0690646308260355, 0.23920260612763083) , + rgb (0.247720929905011, 0.06865333790948652, 0.2373288009471749) , + rgb (0.2438114972024792, 0.06828985152901187, 0.23550427698321885) , + rgb (0.23999586188690308, 0.06798502996477995, 0.23373434258507808) , + rgb (0.23627495835774248, 0.06774359820987802, 0.23202360805926608) , + rgb (0.23266299920501882, 0.06755710438847978, 0.23037617493752832) , + rgb (0.2291562027859284, 0.06743473087115257, 0.22879681433956656) , + rgb (0.2257539681670791, 0.06738213230014747, 0.22728984778098055) , + rgb (0.22247308588973624, 0.06738821405309284, 0.22585960379408354) , + rgb (0.21930503925136402, 0.06746578636294004, 0.22451023616807558) , + rgb (0.21625279838647882, 0.06761633027051639, 0.22324568672294431) , + rgb (0.2133313859647627, 0.06783014842602667, 0.2220704321302429) , + rgb (0.21052882914958676, 0.06812195249816172, 0.22098759107715404) , + rgb (0.20785704662965598, 0.06848439879702528, 0.22000133917653536) , + rgb (0.20531725273301316, 0.06891959226639757, 0.21911516689288835) , + rgb (0.20290365333558247, 0.06943524858045896, 0.21833167885096033) , + rgb (0.20058760685133747, 0.07006457614998421, 0.21762721310371608) , + rgb (0.19819343656336558, 0.07097462525273879, 0.21690975060032436) , + rgb (0.19571853588267552, 0.07215778103960274, 0.21617499187076789) , + rgb (0.1931548636579131, 0.07360681904011795, 0.21542362939081539) , + rgb (0.19049578401722037, 0.07531127841678764, 0.2146562337112265) , + rgb (0.18774482037046955, 0.07725158846803931, 0.21387448578597812) , + rgb (0.18488035509396164, 0.07942573027972388, 0.21307651648984993) + }); list_data viridis = list_data(new pen[] { - rgb (0.267004, 0.004874, 0.329415) , - rgb (0.26851, 0.009605, 0.335427) , - rgb (0.269944, 0.014625, 0.341379) , - rgb (0.271305, 0.019942, 0.347269) , - rgb (0.272594, 0.025563, 0.353093) , - rgb (0.273809, 0.031497, 0.358853) , - rgb (0.274952, 0.037752, 0.364543) , - rgb (0.276022, 0.044167, 0.370164) , - rgb (0.277018, 0.050344, 0.375715) , - rgb (0.277941, 0.056324, 0.381191) , - rgb (0.278791, 0.062145, 0.386592) , - rgb (0.279566, 0.067836, 0.391917) , - rgb (0.280267, 0.073417, 0.397163) , - rgb (0.280894, 0.078907, 0.402329) , - rgb (0.281446, 0.08432, 0.407414) , - rgb (0.281924, 0.089666, 0.412415) , - rgb (0.282327, 0.094955, 0.417331) , - rgb (0.282656, 0.100196, 0.42216) , - rgb (0.28291, 0.105393, 0.426902) , - rgb (0.283091, 0.110553, 0.431554) , - rgb (0.283197, 0.11568, 0.436115) , - rgb (0.283229, 0.120777, 0.440584) , - rgb (0.283187, 0.125848, 0.44496) , - rgb (0.283072, 0.130895, 0.449241) , - rgb (0.282884, 0.13592, 0.453427) , - rgb (0.282623, 0.140926, 0.457517) , - rgb (0.28229, 0.145912, 0.46151) , - rgb (0.281887, 0.150881, 0.465405) , - rgb (0.281412, 0.155834, 0.469201) , - rgb (0.280868, 0.160771, 0.472899) , - rgb (0.280255, 0.165693, 0.476498) , - rgb (0.279574, 0.170599, 0.479997) , - rgb (0.278826, 0.17549, 0.483397) , - rgb (0.278012, 0.180367, 0.486697) , - rgb (0.277134, 0.185228, 0.489898) , - rgb (0.276194, 0.190074, 0.493001) , - rgb (0.275191, 0.194905, 0.496005) , - rgb (0.274128, 0.199721, 0.498911) , - rgb (0.273006, 0.20452, 0.501721) , - rgb (0.271828, 0.209303, 0.504434) , - rgb (0.270595, 0.214069, 0.507052) , - rgb (0.269308, 0.218818, 0.509577) , - rgb (0.267968, 0.223549, 0.512008) , - rgb (0.26658, 0.228262, 0.514349) , - rgb (0.265145, 0.232956, 0.516599) , - rgb (0.263663, 0.237631, 0.518762) , - rgb (0.262138, 0.242286, 0.520837) , - rgb (0.260571, 0.246922, 0.522828) , - rgb (0.258965, 0.251537, 0.524736) , - rgb (0.257322, 0.25613, 0.526563) , - rgb (0.255645, 0.260703, 0.528312) , - rgb (0.253935, 0.265254, 0.529983) , - rgb (0.252194, 0.269783, 0.531579) , - rgb (0.250425, 0.27429, 0.533103) , - rgb (0.248629, 0.278775, 0.534556) , - rgb (0.246811, 0.283237, 0.535941) , - rgb (0.244972, 0.287675, 0.53726) , - rgb (0.243113, 0.292092, 0.538516) , - rgb (0.241237, 0.296485, 0.539709) , - rgb (0.239346, 0.300855, 0.540844) , - rgb (0.237441, 0.305202, 0.541921) , - rgb (0.235526, 0.309527, 0.542944) , - rgb (0.233603, 0.313828, 0.543914) , - rgb (0.231674, 0.318106, 0.544834) , - rgb (0.229739, 0.322361, 0.545706) , - rgb (0.227802, 0.326594, 0.546532) , - rgb (0.225863, 0.330805, 0.547314) , - rgb (0.223925, 0.334994, 0.548053) , - rgb (0.221989, 0.339161, 0.548752) , - rgb (0.220057, 0.343307, 0.549413) , - rgb (0.21813, 0.347432, 0.550038) , - rgb (0.21621, 0.351535, 0.550627) , - rgb (0.214298, 0.355619, 0.551184) , - rgb (0.212395, 0.359683, 0.55171) , - rgb (0.210503, 0.363727, 0.552206) , - rgb (0.208623, 0.367752, 0.552675) , - rgb (0.206756, 0.371758, 0.553117) , - rgb (0.204903, 0.375746, 0.553533) , - rgb (0.203063, 0.379716, 0.553925) , - rgb (0.201239, 0.38367, 0.554294) , - rgb (0.19943, 0.387607, 0.554642) , - rgb (0.197636, 0.391528, 0.554969) , - rgb (0.19586, 0.395433, 0.555276) , - rgb (0.1941, 0.399323, 0.555565) , - rgb (0.192357, 0.403199, 0.555836) , - rgb (0.190631, 0.407061, 0.556089) , - rgb (0.188923, 0.41091, 0.556326) , - rgb (0.187231, 0.414746, 0.556547) , - rgb (0.185556, 0.41857, 0.556753) , - rgb (0.183898, 0.422383, 0.556944) , - rgb (0.182256, 0.426184, 0.55712) , - rgb (0.180629, 0.429975, 0.557282) , - rgb (0.179019, 0.433756, 0.55743) , - rgb (0.177423, 0.437527, 0.557565) , - rgb (0.175841, 0.44129, 0.557685) , - rgb (0.174274, 0.445044, 0.557792) , - rgb (0.172719, 0.448791, 0.557885) , - rgb (0.171176, 0.45253, 0.557965) , - rgb (0.169646, 0.456262, 0.55803) , - rgb (0.168126, 0.459988, 0.558082) , - rgb (0.166617, 0.463708, 0.558119) , - rgb (0.165117, 0.467423, 0.558141) , - rgb (0.163625, 0.471133, 0.558148) , - rgb (0.162142, 0.474838, 0.55814) , - rgb (0.160665, 0.47854, 0.558115) , - rgb (0.159194, 0.482237, 0.558073) , - rgb (0.157729, 0.485932, 0.558013) , - rgb (0.15627, 0.489624, 0.557936) , - rgb (0.154815, 0.493313, 0.55784) , - rgb (0.153364, 0.497, 0.557724) , - rgb (0.151918, 0.500685, 0.557587) , - rgb (0.150476, 0.504369, 0.55743) , - rgb (0.149039, 0.508051, 0.55725) , - rgb (0.147607, 0.511733, 0.557049) , - rgb (0.14618, 0.515413, 0.556823) , - rgb (0.144759, 0.519093, 0.556572) , - rgb (0.143343, 0.522773, 0.556295) , - rgb (0.141935, 0.526453, 0.555991) , - rgb (0.140536, 0.530132, 0.555659) , - rgb (0.139147, 0.533812, 0.555298) , - rgb (0.13777, 0.537492, 0.554906) , - rgb (0.136408, 0.541173, 0.554483) , - rgb (0.135066, 0.544853, 0.554029) , - rgb (0.133743, 0.548535, 0.553541) , - rgb (0.132444, 0.552216, 0.553018) , - rgb (0.131172, 0.555899, 0.552459) , - rgb (0.129933, 0.559582, 0.551864) , - rgb (0.128729, 0.563265, 0.551229) , - rgb (0.127568, 0.566949, 0.550556) , - rgb (0.126453, 0.570633, 0.549841) , - rgb (0.125394, 0.574318, 0.549086) , - rgb (0.124395, 0.578002, 0.548287) , - rgb (0.123463, 0.581687, 0.547445) , - rgb (0.122606, 0.585371, 0.546557) , - rgb (0.121831, 0.589055, 0.545623) , - rgb (0.121148, 0.592739, 0.544641) , - rgb (0.120565, 0.596422, 0.543611) , - rgb (0.120092, 0.600104, 0.54253) , - rgb (0.119738, 0.603785, 0.5414) , - rgb (0.119512, 0.607464, 0.540218) , - rgb (0.119423, 0.611141, 0.538982) , - rgb (0.119483, 0.614817, 0.537692) , - rgb (0.119699, 0.61849, 0.536347) , - rgb (0.120081, 0.622161, 0.534946) , - rgb (0.120638, 0.625828, 0.533488) , - rgb (0.12138, 0.629492, 0.531973) , - rgb (0.122312, 0.633153, 0.530398) , - rgb (0.123444, 0.636809, 0.528763) , - rgb (0.12478, 0.640461, 0.527068) , - rgb (0.126326, 0.644107, 0.525311) , - rgb (0.128087, 0.647749, 0.523491) , - rgb (0.130067, 0.651384, 0.521608) , - rgb (0.132268, 0.655014, 0.519661) , - rgb (0.134692, 0.658636, 0.517649) , - rgb (0.137339, 0.662252, 0.515571) , - rgb (0.14021, 0.665859, 0.513427) , - rgb (0.143303, 0.669459, 0.511215) , - rgb (0.146616, 0.67305, 0.508936) , - rgb (0.150148, 0.676631, 0.506589) , - rgb (0.153894, 0.680203, 0.504172) , - rgb (0.157851, 0.683765, 0.501686) , - rgb (0.162016, 0.687316, 0.499129) , - rgb (0.166383, 0.690856, 0.496502) , - rgb (0.170948, 0.694384, 0.493803) , - rgb (0.175707, 0.6979, 0.491033) , - rgb (0.180653, 0.701402, 0.488189) , - rgb (0.185783, 0.704891, 0.485273) , - rgb (0.19109, 0.708366, 0.482284) , - rgb (0.196571, 0.711827, 0.479221) , - rgb (0.202219, 0.715272, 0.476084) , - rgb (0.20803, 0.718701, 0.472873) , - rgb (0.214, 0.722114, 0.469588) , - rgb (0.220124, 0.725509, 0.466226) , - rgb (0.226397, 0.728888, 0.462789) , - rgb (0.232815, 0.732247, 0.459277) , - rgb (0.239374, 0.735588, 0.455688) , - rgb (0.24607, 0.73891, 0.452024) , - rgb (0.252899, 0.742211, 0.448284) , - rgb (0.259857, 0.745492, 0.444467) , - rgb (0.266941, 0.748751, 0.440573) , - rgb (0.274149, 0.751988, 0.436601) , - rgb (0.281477, 0.755203, 0.432552) , - rgb (0.288921, 0.758394, 0.428426) , - rgb (0.296479, 0.761561, 0.424223) , - rgb (0.304148, 0.764704, 0.419943) , - rgb (0.311925, 0.767822, 0.415586) , - rgb (0.319809, 0.770914, 0.411152) , - rgb (0.327796, 0.77398, 0.40664) , - rgb (0.335885, 0.777018, 0.402049) , - rgb (0.344074, 0.780029, 0.397381) , - rgb (0.35236, 0.783011, 0.392636) , - rgb (0.360741, 0.785964, 0.387814) , - rgb (0.369214, 0.788888, 0.382914) , - rgb (0.377779, 0.791781, 0.377939) , - rgb (0.386433, 0.794644, 0.372886) , - rgb (0.395174, 0.797475, 0.367757) , - rgb (0.404001, 0.800275, 0.362552) , - rgb (0.412913, 0.803041, 0.357269) , - rgb (0.421908, 0.805774, 0.35191) , - rgb (0.430983, 0.808473, 0.346476) , - rgb (0.440137, 0.811138, 0.340967) , - rgb (0.449368, 0.813768, 0.335384) , - rgb (0.458674, 0.816363, 0.329727) , - rgb (0.468053, 0.818921, 0.323998) , - rgb (0.477504, 0.821444, 0.318195) , - rgb (0.487026, 0.823929, 0.312321) , - rgb (0.496615, 0.826376, 0.306377) , - rgb (0.506271, 0.828786, 0.300362) , - rgb (0.515992, 0.831158, 0.294279) , - rgb (0.525776, 0.833491, 0.288127) , - rgb (0.535621, 0.835785, 0.281908) , - rgb (0.545524, 0.838039, 0.275626) , - rgb (0.555484, 0.840254, 0.269281) , - rgb (0.565498, 0.84243, 0.262877) , - rgb (0.575563, 0.844566, 0.256415) , - rgb (0.585678, 0.846661, 0.249897) , - rgb (0.595839, 0.848717, 0.243329) , - rgb (0.606045, 0.850733, 0.236712) , - rgb (0.616293, 0.852709, 0.230052) , - rgb (0.626579, 0.854645, 0.223353) , - rgb (0.636902, 0.856542, 0.21662) , - rgb (0.647257, 0.8584, 0.209861) , - rgb (0.657642, 0.860219, 0.203082) , - rgb (0.668054, 0.861999, 0.196293) , - rgb (0.678489, 0.863742, 0.189503) , - rgb (0.688944, 0.865448, 0.182725) , - rgb (0.699415, 0.867117, 0.175971) , - rgb (0.709898, 0.868751, 0.169257) , - rgb (0.720391, 0.87035, 0.162603) , - rgb (0.730889, 0.871916, 0.156029) , - rgb (0.741388, 0.873449, 0.149561) , - rgb (0.751884, 0.874951, 0.143228) , - rgb (0.762373, 0.876424, 0.137064) , - rgb (0.772852, 0.877868, 0.131109) , - rgb (0.783315, 0.879285, 0.125405) , - rgb (0.79376, 0.880678, 0.120005) , - rgb (0.804182, 0.882046, 0.114965) , - rgb (0.814576, 0.883393, 0.110347) , - rgb (0.82494, 0.88472, 0.106217) , - rgb (0.83527, 0.886029, 0.102646) , - rgb (0.845561, 0.887322, 0.099702) , - rgb (0.85581, 0.888601, 0.097452) , - rgb (0.866013, 0.889868, 0.095953) , - rgb (0.876168, 0.891125, 0.09525) , - rgb (0.886271, 0.892374, 0.095374) , - rgb (0.89632, 0.893616, 0.096335) , - rgb (0.906311, 0.894855, 0.098125) , - rgb (0.916242, 0.896091, 0.100717) , - rgb (0.926106, 0.89733, 0.104071) , - rgb (0.935904, 0.89857, 0.108131) , - rgb (0.945636, 0.899815, 0.112838) , - rgb (0.9553, 0.901065, 0.118128) , - rgb (0.964894, 0.902323, 0.123941) , - rgb (0.974417, 0.90359, 0.130215) , - rgb (0.983868, 0.904867, 0.136897) , - rgb (0.993248, 0.906157, 0.143936) -}); + rgb (0.267004, 0.004874, 0.329415) , + rgb (0.26851, 0.009605, 0.335427) , + rgb (0.269944, 0.014625, 0.341379) , + rgb (0.271305, 0.019942, 0.347269) , + rgb (0.272594, 0.025563, 0.353093) , + rgb (0.273809, 0.031497, 0.358853) , + rgb (0.274952, 0.037752, 0.364543) , + rgb (0.276022, 0.044167, 0.370164) , + rgb (0.277018, 0.050344, 0.375715) , + rgb (0.277941, 0.056324, 0.381191) , + rgb (0.278791, 0.062145, 0.386592) , + rgb (0.279566, 0.067836, 0.391917) , + rgb (0.280267, 0.073417, 0.397163) , + rgb (0.280894, 0.078907, 0.402329) , + rgb (0.281446, 0.08432, 0.407414) , + rgb (0.281924, 0.089666, 0.412415) , + rgb (0.282327, 0.094955, 0.417331) , + rgb (0.282656, 0.100196, 0.42216) , + rgb (0.28291, 0.105393, 0.426902) , + rgb (0.283091, 0.110553, 0.431554) , + rgb (0.283197, 0.11568, 0.436115) , + rgb (0.283229, 0.120777, 0.440584) , + rgb (0.283187, 0.125848, 0.44496) , + rgb (0.283072, 0.130895, 0.449241) , + rgb (0.282884, 0.13592, 0.453427) , + rgb (0.282623, 0.140926, 0.457517) , + rgb (0.28229, 0.145912, 0.46151) , + rgb (0.281887, 0.150881, 0.465405) , + rgb (0.281412, 0.155834, 0.469201) , + rgb (0.280868, 0.160771, 0.472899) , + rgb (0.280255, 0.165693, 0.476498) , + rgb (0.279574, 0.170599, 0.479997) , + rgb (0.278826, 0.17549, 0.483397) , + rgb (0.278012, 0.180367, 0.486697) , + rgb (0.277134, 0.185228, 0.489898) , + rgb (0.276194, 0.190074, 0.493001) , + rgb (0.275191, 0.194905, 0.496005) , + rgb (0.274128, 0.199721, 0.498911) , + rgb (0.273006, 0.20452, 0.501721) , + rgb (0.271828, 0.209303, 0.504434) , + rgb (0.270595, 0.214069, 0.507052) , + rgb (0.269308, 0.218818, 0.509577) , + rgb (0.267968, 0.223549, 0.512008) , + rgb (0.26658, 0.228262, 0.514349) , + rgb (0.265145, 0.232956, 0.516599) , + rgb (0.263663, 0.237631, 0.518762) , + rgb (0.262138, 0.242286, 0.520837) , + rgb (0.260571, 0.246922, 0.522828) , + rgb (0.258965, 0.251537, 0.524736) , + rgb (0.257322, 0.25613, 0.526563) , + rgb (0.255645, 0.260703, 0.528312) , + rgb (0.253935, 0.265254, 0.529983) , + rgb (0.252194, 0.269783, 0.531579) , + rgb (0.250425, 0.27429, 0.533103) , + rgb (0.248629, 0.278775, 0.534556) , + rgb (0.246811, 0.283237, 0.535941) , + rgb (0.244972, 0.287675, 0.53726) , + rgb (0.243113, 0.292092, 0.538516) , + rgb (0.241237, 0.296485, 0.539709) , + rgb (0.239346, 0.300855, 0.540844) , + rgb (0.237441, 0.305202, 0.541921) , + rgb (0.235526, 0.309527, 0.542944) , + rgb (0.233603, 0.313828, 0.543914) , + rgb (0.231674, 0.318106, 0.544834) , + rgb (0.229739, 0.322361, 0.545706) , + rgb (0.227802, 0.326594, 0.546532) , + rgb (0.225863, 0.330805, 0.547314) , + rgb (0.223925, 0.334994, 0.548053) , + rgb (0.221989, 0.339161, 0.548752) , + rgb (0.220057, 0.343307, 0.549413) , + rgb (0.21813, 0.347432, 0.550038) , + rgb (0.21621, 0.351535, 0.550627) , + rgb (0.214298, 0.355619, 0.551184) , + rgb (0.212395, 0.359683, 0.55171) , + rgb (0.210503, 0.363727, 0.552206) , + rgb (0.208623, 0.367752, 0.552675) , + rgb (0.206756, 0.371758, 0.553117) , + rgb (0.204903, 0.375746, 0.553533) , + rgb (0.203063, 0.379716, 0.553925) , + rgb (0.201239, 0.38367, 0.554294) , + rgb (0.19943, 0.387607, 0.554642) , + rgb (0.197636, 0.391528, 0.554969) , + rgb (0.19586, 0.395433, 0.555276) , + rgb (0.1941, 0.399323, 0.555565) , + rgb (0.192357, 0.403199, 0.555836) , + rgb (0.190631, 0.407061, 0.556089) , + rgb (0.188923, 0.41091, 0.556326) , + rgb (0.187231, 0.414746, 0.556547) , + rgb (0.185556, 0.41857, 0.556753) , + rgb (0.183898, 0.422383, 0.556944) , + rgb (0.182256, 0.426184, 0.55712) , + rgb (0.180629, 0.429975, 0.557282) , + rgb (0.179019, 0.433756, 0.55743) , + rgb (0.177423, 0.437527, 0.557565) , + rgb (0.175841, 0.44129, 0.557685) , + rgb (0.174274, 0.445044, 0.557792) , + rgb (0.172719, 0.448791, 0.557885) , + rgb (0.171176, 0.45253, 0.557965) , + rgb (0.169646, 0.456262, 0.55803) , + rgb (0.168126, 0.459988, 0.558082) , + rgb (0.166617, 0.463708, 0.558119) , + rgb (0.165117, 0.467423, 0.558141) , + rgb (0.163625, 0.471133, 0.558148) , + rgb (0.162142, 0.474838, 0.55814) , + rgb (0.160665, 0.47854, 0.558115) , + rgb (0.159194, 0.482237, 0.558073) , + rgb (0.157729, 0.485932, 0.558013) , + rgb (0.15627, 0.489624, 0.557936) , + rgb (0.154815, 0.493313, 0.55784) , + rgb (0.153364, 0.497, 0.557724) , + rgb (0.151918, 0.500685, 0.557587) , + rgb (0.150476, 0.504369, 0.55743) , + rgb (0.149039, 0.508051, 0.55725) , + rgb (0.147607, 0.511733, 0.557049) , + rgb (0.14618, 0.515413, 0.556823) , + rgb (0.144759, 0.519093, 0.556572) , + rgb (0.143343, 0.522773, 0.556295) , + rgb (0.141935, 0.526453, 0.555991) , + rgb (0.140536, 0.530132, 0.555659) , + rgb (0.139147, 0.533812, 0.555298) , + rgb (0.13777, 0.537492, 0.554906) , + rgb (0.136408, 0.541173, 0.554483) , + rgb (0.135066, 0.544853, 0.554029) , + rgb (0.133743, 0.548535, 0.553541) , + rgb (0.132444, 0.552216, 0.553018) , + rgb (0.131172, 0.555899, 0.552459) , + rgb (0.129933, 0.559582, 0.551864) , + rgb (0.128729, 0.563265, 0.551229) , + rgb (0.127568, 0.566949, 0.550556) , + rgb (0.126453, 0.570633, 0.549841) , + rgb (0.125394, 0.574318, 0.549086) , + rgb (0.124395, 0.578002, 0.548287) , + rgb (0.123463, 0.581687, 0.547445) , + rgb (0.122606, 0.585371, 0.546557) , + rgb (0.121831, 0.589055, 0.545623) , + rgb (0.121148, 0.592739, 0.544641) , + rgb (0.120565, 0.596422, 0.543611) , + rgb (0.120092, 0.600104, 0.54253) , + rgb (0.119738, 0.603785, 0.5414) , + rgb (0.119512, 0.607464, 0.540218) , + rgb (0.119423, 0.611141, 0.538982) , + rgb (0.119483, 0.614817, 0.537692) , + rgb (0.119699, 0.61849, 0.536347) , + rgb (0.120081, 0.622161, 0.534946) , + rgb (0.120638, 0.625828, 0.533488) , + rgb (0.12138, 0.629492, 0.531973) , + rgb (0.122312, 0.633153, 0.530398) , + rgb (0.123444, 0.636809, 0.528763) , + rgb (0.12478, 0.640461, 0.527068) , + rgb (0.126326, 0.644107, 0.525311) , + rgb (0.128087, 0.647749, 0.523491) , + rgb (0.130067, 0.651384, 0.521608) , + rgb (0.132268, 0.655014, 0.519661) , + rgb (0.134692, 0.658636, 0.517649) , + rgb (0.137339, 0.662252, 0.515571) , + rgb (0.14021, 0.665859, 0.513427) , + rgb (0.143303, 0.669459, 0.511215) , + rgb (0.146616, 0.67305, 0.508936) , + rgb (0.150148, 0.676631, 0.506589) , + rgb (0.153894, 0.680203, 0.504172) , + rgb (0.157851, 0.683765, 0.501686) , + rgb (0.162016, 0.687316, 0.499129) , + rgb (0.166383, 0.690856, 0.496502) , + rgb (0.170948, 0.694384, 0.493803) , + rgb (0.175707, 0.6979, 0.491033) , + rgb (0.180653, 0.701402, 0.488189) , + rgb (0.185783, 0.704891, 0.485273) , + rgb (0.19109, 0.708366, 0.482284) , + rgb (0.196571, 0.711827, 0.479221) , + rgb (0.202219, 0.715272, 0.476084) , + rgb (0.20803, 0.718701, 0.472873) , + rgb (0.214, 0.722114, 0.469588) , + rgb (0.220124, 0.725509, 0.466226) , + rgb (0.226397, 0.728888, 0.462789) , + rgb (0.232815, 0.732247, 0.459277) , + rgb (0.239374, 0.735588, 0.455688) , + rgb (0.24607, 0.73891, 0.452024) , + rgb (0.252899, 0.742211, 0.448284) , + rgb (0.259857, 0.745492, 0.444467) , + rgb (0.266941, 0.748751, 0.440573) , + rgb (0.274149, 0.751988, 0.436601) , + rgb (0.281477, 0.755203, 0.432552) , + rgb (0.288921, 0.758394, 0.428426) , + rgb (0.296479, 0.761561, 0.424223) , + rgb (0.304148, 0.764704, 0.419943) , + rgb (0.311925, 0.767822, 0.415586) , + rgb (0.319809, 0.770914, 0.411152) , + rgb (0.327796, 0.77398, 0.40664) , + rgb (0.335885, 0.777018, 0.402049) , + rgb (0.344074, 0.780029, 0.397381) , + rgb (0.35236, 0.783011, 0.392636) , + rgb (0.360741, 0.785964, 0.387814) , + rgb (0.369214, 0.788888, 0.382914) , + rgb (0.377779, 0.791781, 0.377939) , + rgb (0.386433, 0.794644, 0.372886) , + rgb (0.395174, 0.797475, 0.367757) , + rgb (0.404001, 0.800275, 0.362552) , + rgb (0.412913, 0.803041, 0.357269) , + rgb (0.421908, 0.805774, 0.35191) , + rgb (0.430983, 0.808473, 0.346476) , + rgb (0.440137, 0.811138, 0.340967) , + rgb (0.449368, 0.813768, 0.335384) , + rgb (0.458674, 0.816363, 0.329727) , + rgb (0.468053, 0.818921, 0.323998) , + rgb (0.477504, 0.821444, 0.318195) , + rgb (0.487026, 0.823929, 0.312321) , + rgb (0.496615, 0.826376, 0.306377) , + rgb (0.506271, 0.828786, 0.300362) , + rgb (0.515992, 0.831158, 0.294279) , + rgb (0.525776, 0.833491, 0.288127) , + rgb (0.535621, 0.835785, 0.281908) , + rgb (0.545524, 0.838039, 0.275626) , + rgb (0.555484, 0.840254, 0.269281) , + rgb (0.565498, 0.84243, 0.262877) , + rgb (0.575563, 0.844566, 0.256415) , + rgb (0.585678, 0.846661, 0.249897) , + rgb (0.595839, 0.848717, 0.243329) , + rgb (0.606045, 0.850733, 0.236712) , + rgb (0.616293, 0.852709, 0.230052) , + rgb (0.626579, 0.854645, 0.223353) , + rgb (0.636902, 0.856542, 0.21662) , + rgb (0.647257, 0.8584, 0.209861) , + rgb (0.657642, 0.860219, 0.203082) , + rgb (0.668054, 0.861999, 0.196293) , + rgb (0.678489, 0.863742, 0.189503) , + rgb (0.688944, 0.865448, 0.182725) , + rgb (0.699415, 0.867117, 0.175971) , + rgb (0.709898, 0.868751, 0.169257) , + rgb (0.720391, 0.87035, 0.162603) , + rgb (0.730889, 0.871916, 0.156029) , + rgb (0.741388, 0.873449, 0.149561) , + rgb (0.751884, 0.874951, 0.143228) , + rgb (0.762373, 0.876424, 0.137064) , + rgb (0.772852, 0.877868, 0.131109) , + rgb (0.783315, 0.879285, 0.125405) , + rgb (0.79376, 0.880678, 0.120005) , + rgb (0.804182, 0.882046, 0.114965) , + rgb (0.814576, 0.883393, 0.110347) , + rgb (0.82494, 0.88472, 0.106217) , + rgb (0.83527, 0.886029, 0.102646) , + rgb (0.845561, 0.887322, 0.099702) , + rgb (0.85581, 0.888601, 0.097452) , + rgb (0.866013, 0.889868, 0.095953) , + rgb (0.876168, 0.891125, 0.09525) , + rgb (0.886271, 0.892374, 0.095374) , + rgb (0.89632, 0.893616, 0.096335) , + rgb (0.906311, 0.894855, 0.098125) , + rgb (0.916242, 0.896091, 0.100717) , + rgb (0.926106, 0.89733, 0.104071) , + rgb (0.935904, 0.89857, 0.108131) , + rgb (0.945636, 0.899815, 0.112838) , + rgb (0.9553, 0.901065, 0.118128) , + rgb (0.964894, 0.902323, 0.123941) , + rgb (0.974417, 0.90359, 0.130215) , + rgb (0.983868, 0.904867, 0.136897) , + rgb (0.993248, 0.906157, 0.143936) + }); diff --git a/Master/texmf-dist/asymptote/contour.asy b/Master/texmf-dist/asymptote/contour.asy index fbb4cd1c71a..8c6dbba86b3 100644 --- a/Master/texmf-dist/asymptote/contour.asy +++ b/Master/texmf-dist/asymptote/contour.asy @@ -1,10 +1,10 @@ // Contour routines written by Radoslav Marinov and John Bowman. - + import graph_settings; real eps=10000*realEpsilon; -// 1 +// 1 // 6 +-------------------+ 5 // | \ / | // | \ / | @@ -16,7 +16,7 @@ real eps=10000*realEpsilon; // | / \ | // | / \ | // 7 +-------------------+ 4 or 8 -// 3 +// 3 private struct segment { @@ -76,11 +76,11 @@ private segment case3(pair p0, pair p1, pair p2, private segment checktriangle(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=-1) { - // default null return + // default null return static segment dflt; real eps=eps*max(abs(v0),abs(v1),abs(v2)); - + if(v0 < -eps) { if(v1 < -eps) { if(v2 < -eps) return dflt; // nothing to do @@ -92,10 +92,10 @@ private segment checktriangle(pair p0, pair p1, pair p2, else return case2(p1,p0,p2,v1,v0,v2,5+edge); } else { if(v2 < -eps) return case3(p0,p1,p2,v0,v1,v2,edge); - else if(v2 <= eps) + else if(v2 <= eps) return case2(p2,p0,p1,v2,v0,v1,edge); else return case3(p1,p0,p2,v1,v0,v2,edge); - } + } } else if(v0 <= eps) { if(v1 < -eps) { if(v2 < -eps) return dflt; // nothing to do @@ -109,7 +109,7 @@ private segment checktriangle(pair p0, pair p1, pair p2, if(v2 < -eps) return case2(p0,p1,p2,v0,v1,v2,4+edge); else if(v2 <= eps) return case1(p0,p2,4+edge); else return dflt; // nothing to do - } + } } else { if(v1 < -eps) { if(v2 < -eps) return case3(p1,p0,p2,v1,v0,v2,edge); @@ -124,8 +124,8 @@ private segment checktriangle(pair p0, pair p1, pair p2, if(v2 < -eps) return case3(p0,p2,p1,v0,v2,v1); else if(v2 <= eps) return dflt; // nothing to do else return dflt; // nothing to do - } - } + } + } } // Collect connecting path segments. @@ -135,7 +135,7 @@ private void collect(pair[][][] points, real[] c) int[] reverseF(int n) {return sequence(new int(int x){return n-1-x;},n-1);} // use to reverse an array, omitting the last point int[] reverseL(int n) {return sequence(new int(int x){return n-2-x;},n-1);} - + for(int cnt=0; cnt < c.length; ++cnt) { pair[][] gdscnt=points[cnt]; for(int i=0; i < gdscnt.length; ++i) { @@ -144,11 +144,11 @@ private void collect(pair[][][] points, real[] c) for(int j=i+1; j < gdscnt.length; ++j) { pair[] gjg=gdscnt[j]; int Lj=gjg.length; - if(abs(gig[0]-gjg[0]) < eps) { + if(abs(gig[0]-gjg[0]) < eps) { gdscnt[j]=gjg[reverseF(Lj)]; gdscnt[j].append(gig); - gdscnt.delete(i); - --i; + gdscnt.delete(i); + --i; break; } else if(abs(gig[0]-gjg[Lj-1]) < eps) { gig.delete(0); @@ -169,14 +169,15 @@ private void collect(pair[][][] points, real[] c) gdscnt.delete(i); --i; break; - } + } } } } } // Join path segments. -private guide[][] connect(pair[][][] points, real[] c, interpolate join) +private guide[][] connect(picture pic, pair[][][] points, real[] c, + interpolate join) { // set up return value guide[][] result=new guide[c.length][]; @@ -189,13 +190,13 @@ private guide[][] connect(pair[][][] points, real[] c, interpolate join) if(pts.length > 0) { if(pts.length > 1 && abs(pts[0]-pts[pts.length-1]) < eps) { guide[] g=sequence(new guide(int i) { - return pts[i]; + return (pic.scale.x.T(pts[i].x), pic.scale.y.T(pts[i].y)); },pts.length-1); g.push(cycle); gd=join(...g); } else gd=join(...sequence(new guide(int i) { - return pts[i]; + return (pic.scale.x.T(pts[i].x), pic.scale.y.T(pts[i].y)); },pts.length)); } resultcnt[i]=gd; @@ -211,7 +212,7 @@ private guide[][] connect(pair[][][] points, real[] c, interpolate join) // midpoint: optional array containing values of f at cell midpoints // c: array of contour values // join: interpolation operator (e.g. operator -- or operator ..) -guide[][] contour(pair[][] z, real[][] f, +guide[][] contour(picture pic=currentpicture, pair[][] z, real[][] f, real[][] midpoint=new real[][], real[] c, interpolate join=operator --) { @@ -224,7 +225,7 @@ guide[][] contour(pair[][] z, real[][] f, c=sort(c); bool midpoints=midpoint.length > 0; - + segment segments[][][]=new segment[nx][ny][]; // go over region a rectangle at a time @@ -238,7 +239,7 @@ guide[][] contour(pair[][] z, real[][] f, segment[][] segmentsi=segments[i]; for(int j=0; j < ny; ++j) { segment[] segmentsij=segmentsi[j]; - + // define points pair bleft=zi[j]; pair bright=zp[j]; @@ -264,26 +265,26 @@ guide[][] contour(pair[][] z, real[][] f, int countm=0; int countz=0; int countp=0; - + void check(real vertdat) { if(vertdat < -eps) ++countm; else { - if(vertdat <= eps) ++countz; + if(vertdat <= eps) ++countz; else ++countp; } } - + check(vertdat0); check(vertdat1); check(vertdat2); check(vertdat3); - if(countm == 4) return 1; // nothing to do - if(countp == 4) return -1; // nothing to do + if(countm == 4) return 1; // nothing to do + if(countp == 4) return -1; // nothing to do if((countm == 3 || countp == 3) && countz == 1) return 0; // go through the triangles - + void addseg(segment seg) { if(seg.active) { seg.c=cnt; @@ -301,7 +302,7 @@ guide[][] contour(pair[][] z, real[][] f, vertdat0,vertdat1,vertdat4,3)); return 0; } - + void process(int l, int u) { if(l >= u) return; int i=quotient(l+u,2); @@ -313,7 +314,7 @@ guide[][] contour(pair[][] z, real[][] f, process(i+1,u); } } - + process(0,c.length); } } @@ -356,7 +357,7 @@ guide[][] contour(pair[][] z, real[][] f, } return -1; } - + int backward(int I, int J, bool first=true) { if(I >= 0 && I < nx && J >= 0 && J < ny) { segment[] segmentsIJ=segments[I][J]; @@ -380,7 +381,7 @@ guide[][] contour(pair[][] z, real[][] f, } return -1; } - + void follow(int f(int, int, bool first=true), int edge) { int I=i; int J=j; @@ -445,7 +446,7 @@ guide[][] contour(pair[][] z, real[][] f, collect(points,c); // Required to join remaining case1 cycles. - return connect(points,c,join); + return connect(pic,points,c,join); } // Return contour guides for a 2D data array on a uniform lattice @@ -454,8 +455,8 @@ guide[][] contour(pair[][] z, real[][] f, // a,b: diagonally opposite vertices of rectangular domain // c: array of contour values // join: interpolation operator (e.g. operator -- or operator ..) -guide[][] contour(real[][] f, real[][] midpoint=new real[][], - pair a, pair b, real[] c, +guide[][] contour(picture pic=currentpicture, real[][] f, + real[][] midpoint=new real[][], pair a, pair b, real[] c, interpolate join=operator --) { int nx=f.length-1; @@ -473,7 +474,7 @@ guide[][] contour(real[][] f, real[][] midpoint=new real[][], zi[j]=(xi,interp(a.y,b.y,j/ny)); } } - return contour(z,f,midpoint,c,join); + return contour(pic,z,f,midpoint,c,join); } // return contour guides for a real-valued function @@ -482,14 +483,14 @@ guide[][] contour(real[][] f, real[][] midpoint=new real[][], // c: array of contour values // nx,ny: number of subdivisions in x and y directions (determines accuracy) // join: interpolation operator (e.g. operator -- or operator ..) -guide[][] contour(real f(real, real), pair a, pair b, - real[] c, int nx=ngraph, int ny=nx, +guide[][] contour(picture pic=currentpicture, real f(real, real), pair a, + pair b, real[] c, int nx=ngraph, int ny=nx, interpolate join=operator --) { // evaluate function at points and midpoints real[][] dat=new real[nx+1][ny+1]; real[][] midpoint=new real[nx+1][ny+1]; - + for(int i=0; i <= nx; ++i) { real x=interp(a.x,b.x,i/nx); real x2=interp(a.x,b.x,(i+0.5)/nx); @@ -501,9 +502,9 @@ guide[][] contour(real f(real, real), pair a, pair b, } } - return contour(dat,midpoint,a,b,c,join); + return contour(pic,dat,midpoint,a,b,c,join); } - + void draw(picture pic=currentpicture, Label[] L=new Label[], guide[][] g, pen[] p) { @@ -576,7 +577,7 @@ pen[][] interior(picture pic=currentpicture, guide[][] g, pen[] palette) index=i; } } - } + } fillpalettei[j]=palette[index]; } fillpalette[i]=fillpalettei; @@ -620,7 +621,7 @@ void fill(picture pic=currentpicture, guide[][] g, pen[][] palette) // check existing guides and adds new segment to them if possible, // or otherwise store segment as a new guide private void addseg(pair[][] gds, segment seg) -{ +{ if(!seg.active) return; // search for a path to extend for(int i=0; i < gds.length; ++i) { @@ -629,33 +630,33 @@ private void addseg(pair[][] gds, segment seg) gd.insert(0,seg.a); return; } else if(abs(gd[gd.length-1]-seg.b) < eps) { - gd.push(seg.a); + gd.push(seg.a); return; } else if(abs(gd[0]-seg.a) < eps) { gd.insert(0,seg.b); return; - } else if(abs(gd[gd.length-1]-seg.a) < eps) { + } else if(abs(gd[gd.length-1]-seg.a) < eps) { gd.push(seg.b); return; } } - + // in case nothing is found pair[] segm; - segm=new pair[] {seg.a,seg.b}; + segm=new pair[] {seg.a,seg.b}; gds.push(segm); - + return; } -guide[][] contour(real f(pair), pair a, pair b, +guide[][] contour(picture pic=currentpicture, real f(pair), pair a, pair b, real[] c, int nx=ngraph, int ny=nx, interpolate join=operator --) { - return contour(new real(real x, real y) {return f((x,y));},a,b,c,nx,ny,join); + return contour(pic,new real(real x, real y) {return f((x,y));},a,b,c,nx,ny,join); } -guide[][] contour(pair[] z, real[] f, real[] c, interpolate join=operator --) +guide[][] contour(picture pic=currentpicture, pair[] z, real[] f, real[] c, interpolate join=operator --) { if(z.length != f.length) abort("z and f arrays have different lengths"); @@ -664,7 +665,7 @@ guide[][] contour(pair[] z, real[] f, real[] c, interpolate join=operator --) // array to store guides found so far pair[][][] points=new pair[c.length][][]; - + for(int cnt=0; cnt < c.length; ++cnt) { pair[][] pointscnt=points[cnt]; real C=c[cnt]; @@ -678,5 +679,5 @@ guide[][] contour(pair[] z, real[] f, real[] c, interpolate join=operator --) collect(points,c); - return connect(points,c,join); + return connect(pic,points,c,join); } diff --git a/Master/texmf-dist/asymptote/contour3.asy b/Master/texmf-dist/asymptote/contour3.asy index 4977a351bf2..a15a6663b23 100644 --- a/Master/texmf-dist/asymptote/contour3.asy +++ b/Master/texmf-dist/asymptote/contour3.asy @@ -81,7 +81,7 @@ vertex[][] contour3(triple[][][] v, real[][][] f, int j2=2j; int j2p1=j2+1; int j2p2=j2+2; - + for(int k=0; k < nz; ++k) { // vertex values real vdat0=fij[k]; @@ -108,21 +108,21 @@ vertex[][] contour3(triple[][][] v, real[][][] f, triple m3=0.25*(p100+p000+p001+p101); triple m4=0.25*(p000+p010+p011+p001); triple m5=0.25*(p001+p011+p111+p101); - triple mc=0.5*(m0+m5); + triple mc=0.5*(m0+m5); // optimization: we make sure we don't work with empty rectangles int countm=0; int countz=0; int countp=0; - + void check(real vdat) { if(vdat < -eps) ++countm; else { - if(vdat <= eps) ++countz; + if(vdat <= eps) ++countz; else ++countp; } } - + check(vdat0); check(vdat1); check(vdat2); @@ -132,32 +132,32 @@ vertex[][] contour3(triple[][][] v, real[][][] f, check(vdat6); check(vdat7); - if(countm == 8 || countp == 8 || + if(countm == 8 || countp == 8 || ((countm == 7 || countp == 7) && countz == 1)) continue; int k2=2k; int k2p1=k2+1; int k2p2=k2+2; - + // Evaluate midpoints of cube sides. // Then evaluate midpoint of cube. real vdat8=midpoints ? midpoint[i2p1][j2p1][k2] : 0.25*(vdat0+vdat2+vdat6+vdat4); - real vdat9=midpoints ? midpoint[i2p1][j2p2][k2p1] : + real vdat9=midpoints ? midpoint[i2p1][j2p2][k2p1] : 0.25*(vdat2+vdat6+vdat7+vdat3); - real vdat10=midpoints ? midpoint[i2p2][j2p1][k2p1] : + real vdat10=midpoints ? midpoint[i2p2][j2p1][k2p1] : 0.25*(vdat7+vdat6+vdat4+vdat5); - real vdat11=midpoints ? midpoint[i2p1][j2][k2p1] : + real vdat11=midpoints ? midpoint[i2p1][j2][k2p1] : 0.25*(vdat0+vdat4+vdat5+vdat1); - real vdat12=midpoints ? midpoint[i2][j2p1][k2p1] : + real vdat12=midpoints ? midpoint[i2][j2p1][k2p1] : 0.25*(vdat0+vdat2+vdat3+vdat1); - real vdat13=midpoints ? midpoint[i2p1][j2p1][k2p2] : + real vdat13=midpoints ? midpoint[i2p1][j2p1][k2p2] : 0.25*(vdat1+vdat3+vdat7+vdat5); - real vdat14=midpoints ? midpoint[i2p1][j2p1][k2p1] : + real vdat14=midpoints ? midpoint[i2p1][j2p1][k2p1] : 0.125*(vdat0+vdat1+vdat2+vdat3+vdat4+vdat5+vdat6+vdat7); - + // Go through the 24 pyramids, 4 for each side. - + void addval(int kp0, int kp1, int kp2, triple add, triple v) { bucket[] cur=kps[kp0][kp1][kp2]; for(int q=0; q < cur.length; ++q) { @@ -192,8 +192,14 @@ vertex[][] contour3(triple[][][] v, real[][][] f, vec0=unit(vec0); triple normal=cross(vec2,vec1); normal *= sgn(dot(normal,dir)); - real angle0=acos(-dot(vec1,vec2)); - real angle1=acos(-dot(vec2,vec0)); + + real angle(triple u, triple v) { + real Dot=-dot(u,v); + return Dot > 1 ? 0 : Dot < -1 ? pi : acos(Dot); + } + + real angle0=angle(vec1,vec2); + real angle1=angle(vec2,vec0); pts[0].normal=normal*angle0; pts[1].normal=normal*angle1; pts[2].normal=normal*(pi-angle0-angle1); @@ -206,7 +212,7 @@ vertex[][] contour3(triple[][][] v, real[][][] f, weighted[] points=obj.pts; object obj1; object obj2; - obj1.active=true; + obj1.active=true; obj2.active=true; obj1.pts=new weighted[] {points[0],points[1],points[2]}; obj2.pts=new weighted[] {points[1],points[2],points[3]}; @@ -220,7 +226,7 @@ vertex[][] contour3(triple[][][] v, real[][][] f, } } - weighted setupweighted(triple va, triple vb, real da, real db, + weighted setupweighted(triple va, triple vb, real da, real db, int[] kpa, int[] kpb) { weighted w; real ratio=abs(da/(db-da)); @@ -318,7 +324,7 @@ vertex[][] contour3(triple[][][] v, real[][][] f, static int[] pm4={0,1,1}; static int[] pm5={1,1,2}; static int[] pmc={1,1,1}; - + check4pyr(p000,p010,p110,p100,mc,m0, vdat0,vdat2,vdat6,vdat4,vdat14,vdat8, pp000,pp010,pp110,pp100,pmc,pm0); @@ -378,14 +384,14 @@ vertex[][] contour3(triple[][][] v, real[][][] f, ret.normal=normal*2/count; return ret; } - + // Prepare return value. vertex[][] g; - + for(int q=0; q < objects.length; ++q) { object p=objects[q]; g.push(new vertex[] {preparevertex(p.pts[0]),preparevertex(p.pts[1]), - preparevertex(p.pts[2])}); + preparevertex(p.pts[2])}); } return g; } @@ -454,7 +460,7 @@ vertex[][] contour3(real f(real, real, real), triple a, triple b, datij[k]=f(x,y,z); if(i == nx || j == ny || k == nz) continue; int k2p1=2k+1; - midpointi2p1j2p1[2k]=f(x2,y2,z); + midpointi2p1j2p1[2k]=f(x2,y2,z); midpointi2p1j2p1[k2p1]=f(x2,y2,z2); midpointi2p1j2[k2p1]=f(x2,y,z2); midpointi2j2p1[k2p1]=f(x,y2,z2); diff --git a/Master/texmf-dist/asymptote/embed.asy b/Master/texmf-dist/asymptote/embed.asy index 88495f12128..30848c10f4c 100644 --- a/Master/texmf-dist/asymptote/embed.asy +++ b/Master/texmf-dist/asymptote/embed.asy @@ -7,23 +7,23 @@ if(latex()) { // For documentation of the options see // http://mirror.ctan.org/macros/latex/contrib/media9/doc/media9.pdf -// Embed PRC or SWF content in pdf file +// Embed PRC or SWF content in pdf file string embedplayer(string name, string text="", string options="", real width=0, real height=0) { - if(width != 0) options += ",width="+(string) (width/pt)+"pt"; - if(height != 0) options += ",height="+(string) (height/pt)+"pt"; + if(width != 0) options += ",width="+(string) (width/pt)+"pt"; + if(height != 0) options += ",height="+(string) (height/pt)+"pt"; return "% \includemedia[noplaybutton,"+options+"]{"+text+"}{"+name+"}"; } -// Embed media in pdf file +// Embed media in pdf file string embed(string name, string text="", string options="", real width=0, real height=0) { return embedplayer("VPlayer.swf",text,"label="+name+ ",activate=pageopen,addresource="+name+ - ",flashvars={source="+name+"&scaleMode=letterbox},"+ + ",flashvars={source="+name+"&scaleMode=letterbox},"+ options,width,height); } diff --git a/Master/texmf-dist/asymptote/external.asy b/Master/texmf-dist/asymptote/external.asy index f9ab5365aea..9e12610c4b2 100644 --- a/Master/texmf-dist/asymptote/external.asy +++ b/Master/texmf-dist/asymptote/external.asy @@ -20,8 +20,8 @@ string embed(string name, string text="", string options="", atexit(exitfunction); } } - if(width != 0) options += ", width="+(string) (width/pt)+"pt"; - if(height != 0) options +=", height="+(string) (height/pt)+"pt"; + if(width != 0) options += ", width="+(string) (width/pt)+"pt"; + if(height != 0) options +=", height="+(string) (height/pt)+"pt"; return "\href{run:"+name+"}{"+graphic(image,options)+"}"; } diff --git a/Master/texmf-dist/asymptote/feynman.asy b/Master/texmf-dist/asymptote/feynman.asy index 4360ee9f524..4182d989287 100644 --- a/Master/texmf-dist/asymptote/feynman.asy +++ b/Master/texmf-dist/asymptote/feynman.asy @@ -10,12 +10,12 @@ // default ratio of width (distance between two loops) to amplitude for a gluon // line. The gluon function uses this ratio, if the width parameter is -// negative. +// negative. real gluonratio; // default ratio of width (distance between two crests) to amplitude for a // photon line. The photon function uses this ratio, if the width parameter is -// negative. +// negative. real photonratio; // default gluon amplitude @@ -337,7 +337,7 @@ void drawGhost(picture pic = currentpicture, real vertexangle = minvertexangle, real margin = linemargin) { - if(erasebg) do_overpaint(pic, p, bgpen, + if(erasebg) do_overpaint(pic, p, bgpen, linewidth(fgpen)+margin, vertexangle); draw(pic, p, fgpen, arrow); } @@ -358,7 +358,7 @@ void drawDoubleLine(picture pic = currentpicture, real vertexangle = minvertexangle, real margin = linemargin) { - if(erasebg) do_overpaint(pic, p, bgpen, + if(erasebg) do_overpaint(pic, p, bgpen, linewidth(fgpen)+margin, vertexangle); real htw = linewidth(fgpen)+dlspacing/2; @@ -466,7 +466,7 @@ void drawVertexX(picture pic = currentpicture, pen fgpen = vertexpen) { draw(pic, shift(xy)*scale(r)*((-1,-1)--(1,1)), fgpen); - draw(pic, shift(xy)*scale(r)*((1,-1)--(-1,1)), fgpen); + draw(pic, shift(xy)*scale(r)*((1,-1)--(-1,1)), fgpen); } // draw a circle with an X in the middle on picture pic, at position xy with @@ -508,7 +508,7 @@ void drawVertexBoxX(picture pic = currentpicture, } // draw a momentum arrow on picture pic, along path p, at position position -// (use one of the predefined pairs left or right), with an offset offset +// (use one of the predefined pairs left or right), with an offset offset // from the path, a length length, a pen fgpen and an arrowhead arrow. Making // adjust nonzero shifts the momentum arrow along the path. If erasebg is true, // the background is erased inside a margin margin around the momentum arrow. @@ -527,7 +527,7 @@ void drawMomArrow(picture pic = currentpicture, real margin = momarrowmargin) { path momarrow = momArrowPath(p, align, pos, offset, length); - if(erasebg) do_overpaint(pic, momarrow, bgpen, + if(erasebg) do_overpaint(pic, momarrow, bgpen, linewidth(fgpen)+margin, 90); draw(pic, momarrow, fgpen, arrow); } @@ -540,7 +540,7 @@ void drawMomArrow(picture pic = currentpicture, // (essentially, currentpen, arrowfactor and dotfactor). After customising the // default parameters of plain.asy, you may call fmdefaults to adjust the // parameters of feynman.asy. -void fmdefaults() +void fmdefaults() { real arrowsize=arrowsize(currentpen); real linewidth=linewidth(currentpen); diff --git a/Master/texmf-dist/asymptote/flowchart.asy b/Master/texmf-dist/asymptote/flowchart.asy index 3db66173755..d1d87b7887e 100644 --- a/Master/texmf-dist/asymptote/flowchart.asy +++ b/Master/texmf-dist/asymptote/flowchart.asy @@ -57,29 +57,29 @@ struct block { // in absolute coordinates. pair top(transform t=identity()) { return shift(t)+f_top; - } + } pair bottom(transform t=identity()) { return shift(t)+f_bottom; - } + } pair left(transform t=identity()) { return shift(t)+f_left; - } + } pair right(transform t=identity()) { return shift(t)+f_right; - } + } pair topleft(transform t=identity()) { return shift(t)+f_topleft; - } + } pair topright(transform t=identity()) { return shift(t)+f_topright; - } + } pair bottomleft(transform t=identity()) { return shift(t)+f_bottomleft; - } + } pair bottomright(transform t=identity()) { return shift(t)+f_bottomright; - } - + } + // Return a frame representing the block. frame draw(pen p=currentpen); @@ -118,25 +118,25 @@ block rectangle(object header, object body, pair center=(0,0), block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shift(0,z1.y)*box((0,0),z0),headerpen,drawpen); - add(block,shift(-0.5*(Mheader+mheader))*fheader,(0,z1.y)+0.5z0); - filldraw(block,box((0,0),z1),bodypen,drawpen); - add(block,shift(-0.5*(Mbody+mbody))*fbody,0.5z1); - return block; + frame block; + filldraw(block,shift(0,z1.y)*box((0,0),z0),headerpen,drawpen); + add(block,shift(-0.5*(Mheader+mheader))*fheader,(0,z1.y)+0.5z0); + filldraw(block,box((0,0),z1),bodypen,drawpen); + add(block,shift(-0.5*(Mbody+mbody))*fbody,0.5z1); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=interp(point(shape,0),point(shape,3),0.5); - block.f_bottomleft=point(shape,0); - block.f_bottom=point(shape,5.5); - block.f_bottomright=point(shape,5); - block.f_right=point(shape,4.5); - block.f_topright=point(shape,3); - block.f_top=point(shape,2.5); - block.f_topleft=point(shape,2); - block.f_left=point(shape,0.5); + block.f_bottomleft=point(shape,0); + block.f_bottom=point(shape,5.5); + block.f_bottomright=point(shape,5); + block.f_right=point(shape,4.5); + block.f_topright=point(shape,3); + block.f_top=point(shape,2.5); + block.f_topleft=point(shape,2); + block.f_left=point(shape,0.5); block.center=center; block.size=point(shape,3); return block; @@ -156,25 +156,25 @@ block rectangle(object body, pair center=(0,0), block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shape,fillpen,drawpen); - add(block,shift(-0.5*(M+m))*f,0.5z); - return block; + frame block; + filldraw(block,shape,fillpen,drawpen); + add(block,shift(-0.5*(M+m))*f,0.5z); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=0.5*z; block.center=center; block.size=z; block.f_bottomleft=point(shape,0); - block.f_bottom=point(shape,0.5); - block.f_bottomright=point(shape,1); - block.f_right=point(shape,1.5); - block.f_topright=point(shape,2); - block.f_top=point(shape,2.5); - block.f_topleft=point(shape,3); - block.f_left=point(shape,3.5); + block.f_bottom=point(shape,0.5); + block.f_bottomright=point(shape,1); + block.f_right=point(shape,1.5); + block.f_topright=point(shape,2); + block.f_top=point(shape,2.5); + block.f_topleft=point(shape,3); + block.f_left=point(shape,3.5); return block; } @@ -197,13 +197,13 @@ block parallelogram(object body, pair center=(0,0), block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shape,fillpen,drawpen); - add(block,shift(-0.5*(M+m))*f,((a+skew)/2,b/2)); - return block; + frame block; + filldraw(block,shape,fillpen,drawpen); + add(block,shift(-0.5*(M+m))*f,((a+skew)/2,b/2)); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=((a+skew)/2,b/2); block.center=center; @@ -229,7 +229,7 @@ block diamond(object body, pair center=(0,0), pair m=min(f); pair M=max(f); pair bound=maxbound(M-m,(minwidth,minheight)); - + real e=ds; real a=0.5bound.x-dw; real b=0.5bound.y; @@ -244,25 +244,25 @@ block diamond(object body, pair center=(0,0), block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shape,fillpen,drawpen); - add(block,shift(-0.5*(M+m))*f,(d,c)); - return block; + frame block; + filldraw(block,shape,fillpen,drawpen); + add(block,shift(-0.5*(M+m))*f,(d,c)); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=(point(shape,1).x,point(shape,0).y); block.center=center; block.size=(point(shape,0).x,point(shape,1).y); - block.f_bottomleft=point(shape,2.5); - block.f_bottom=point(shape,3); - block.f_bottomright=point(shape,3.5); - block.f_right=point(shape,0); - block.f_topright=point(shape,0.5); - block.f_top=point(shape,1); - block.f_topleft=point(shape,1.5); - block.f_left=point(shape,2); + block.f_bottomleft=point(shape,2.5); + block.f_bottom=point(shape,3); + block.f_bottomright=point(shape,3.5); + block.f_right=point(shape,0); + block.f_topright=point(shape,0.5); + block.f_top=point(shape,1); + block.f_topleft=point(shape,1.5); + block.f_left=point(shape,2); return block; } @@ -274,30 +274,30 @@ block circle(object body, pair center=(0,0), pen fillpen=invisible, pair m=min(f); pair M=max(f); real r=max(0.5length(M-m)+dr,0.5mindiameter); - + path shape=(0,r)..(r,2r)..(2r,r)..(r,0)..cycle; - + block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shape,fillpen,drawpen); - add(block,shift(-0.5*(M+m))*f,(r,r)); - return block; + frame block; + filldraw(block,shape,fillpen,drawpen); + add(block,shift(-0.5*(M+m))*f,(r,r)); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=(r,r); block.center=center; block.size=(2r,2r); block.f_left=point(shape,0); - block.f_topleft=point(shape,0.5); - block.f_top=point(shape,1); - block.f_topright=point(shape,1.5); - block.f_right=point(shape,2); - block.f_bottomright=point(shape,2.5); - block.f_bottom=point(shape,3); - block.f_bottomleft=point(shape,3.5); + block.f_topleft=point(shape,0.5); + block.f_top=point(shape,1); + block.f_topright=point(shape,1.5); + block.f_right=point(shape,2); + block.f_bottomright=point(shape,2.5); + block.f_bottom=point(shape,3); + block.f_bottomleft=point(shape,3.5); return block; } @@ -313,33 +313,33 @@ block roundrectangle(object body, pair center=(0,0), real a=bound.x; real b=bound.y; - + path shape=(0,ds+dw)--(0,ds+b-dw){up}..{right} (ds+dw,2ds+b)--(ds+a-dw,2ds+b){right}..{down} (2ds+a,ds+b-dw)--(2ds+a,ds+dw){down}..{left} (ds+a-dw,0)--(ds+dw,0){left}..{up}cycle; - + block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shape,fillpen,drawpen); - add(block,shift(-0.5*(M+m))*f,(ds,ds)+0.5bound); - return block; + frame block; + filldraw(block,shape,fillpen,drawpen); + add(block,shift(-0.5*(M+m))*f,(ds,ds)+0.5bound); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=(ds+0.5a,ds+0.5b); block.center=center; block.size=(2ds+a,2ds+b); - block.f_bottomleft=point(shape,7.5); - block.f_bottom=point(shape,6.5); - block.f_bottomright=point(shape,5.5); - block.f_right=point(shape,4.5); - block.f_topright=point(shape,3.5); - block.f_top=point(shape,2.5); - block.f_topleft=point(shape,1.5); - block.f_left=point(shape,0.5); + block.f_bottomleft=point(shape,7.5); + block.f_bottom=point(shape,6.5); + block.f_bottomright=point(shape,5.5); + block.f_right=point(shape,4.5); + block.f_topright=point(shape,3.5); + block.f_top=point(shape,2.5); + block.f_topleft=point(shape,1.5); + block.f_left=point(shape,0.5); return block; } @@ -359,25 +359,25 @@ block bevel(object body, pair center=(0,0), pen fillpen=invisible, (dw+a,0)--cycle; block block; block.draw=new frame(pen p) { - frame block; - filldraw(block,shape,fillpen,drawpen); - add(block,shift(-0.5*(M+m))*f,(0.5bound+(dw,dh))); - return block; + frame block; + filldraw(block,shape,fillpen,drawpen); + add(block,shift(-0.5*(M+m))*f,(0.5bound+(dw,dh))); + return block; }; block.f_position=new pair(real x) { - return point(shape,x); + return point(shape,x); }; block.f_center=(dw+0.5a,dh+b); block.center=center; block.size=(2dw+a,2dh+2b); - block.f_bottomleft=point(shape,4); - block.f_bottom=point(shape,4.5); - block.f_bottomright=point(shape,5); - block.f_right=point(shape,0); - block.f_topright=point(shape,1); - block.f_top=point(shape,1.5); - block.f_topleft=point(shape,2); - block.f_left=point(shape,3); + block.f_bottomleft=point(shape,4); + block.f_bottom=point(shape,4.5); + block.f_bottomright=point(shape,5); + block.f_right=point(shape,0); + block.f_topright=point(shape,1); + block.f_top=point(shape,1.5); + block.f_topleft=point(shape,2); + block.f_left=point(shape,3); return block; } @@ -388,14 +388,14 @@ path path(pair point[] ... flowdir dir[]) for(int i=1; i < point.length; ++i) { if(i-1 >= dir.length || dir[i-1] == Horizontal) current=(point[i].x,point[i-1].y); - else + else current=(point[i-1].x,point[i].y); - + if(current != prev) { line=line--current; prev=current; } - + current=point[i]; if(current != prev) { line=line--current; diff --git a/Master/texmf-dist/asymptote/geometry.asy b/Master/texmf-dist/asymptote/geometry.asy index 1c8a95063f7..420d5bdc456 100644 --- a/Master/texmf-dist/asymptote/geometry.asy +++ b/Master/texmf-dist/asymptote/geometry.asy @@ -40,7 +40,7 @@ private transform rotate(explicit pair dir) real angle=degrees(dir); if(angle > 90 && angle < 270) angle -= 180; return rotate(angle); -} +} // *=======================================================* // *........................HEADER.........................* @@ -165,7 +165,7 @@ real rd(real x, real y, real z) ed = ea - 6 * eb; ee = ed + ec + ec; return 3 * sum + fac * (1.0 + ed * (-C1 + C5 * ed - C6 * delz * ee) - +delz * (C2 * ee + delz * (-C3 * ec + delz * C4 * ea)))/(ave * sqrt(ave)); + +delz * (C2 * ee + delz * (-C3 * ec + delz * C4 * ea)))/(ave * sqrt(ave)); } /*<asyxml><function type="real" signature="elle(real,real)"><code></asyxml>*/ @@ -258,10 +258,10 @@ struct coordsys {/*<asyxml></code><documentation>This structure represents a coordinate system in the plane.</documentation></asyxml>*/ /*<asyxml><method type = "pair" signature="relativetodefault(pair)"><code></asyxml>*/ restricted convert relativetodefault = new pair(pair m){return m;};/*<asyxml></code><documentation>Convert a pair given relatively to this coordinate system to - the pair relatively to the default coordinate system.</documentation></method></asyxml>*/ + the pair relatively to the default coordinate system.</documentation></method></asyxml>*/ /*<asyxml><method type = "pair" signature="defaulttorelativet(pair)"><code></asyxml>*/ restricted convert defaulttorelative = new pair(pair m){return m;};/*<asyxml></code><documentation>Convert a pair given relatively to the default coordinate system to - the pair relatively to this coordinate system.</documentation></method></asyxml>*/ + the pair relatively to this coordinate system.</documentation></method></asyxml>*/ /*<asyxml><method type = "real" signature="dot(pair,pair)"><code></asyxml>*/ restricted dot dot = new real(pair m, pair n){return dot(m, n);};/*<asyxml></code><documentation>Return the dot product of this coordinate system.</documentation></method></asyxml>*/ /*<asyxml><method type = "real" signature="abs(pair)"><code></asyxml>*/ @@ -287,50 +287,50 @@ struct coordsys /*<asyxml><operator type = "bool" signature="==(coordsys,coordsys)"><code></asyxml>*/ bool operator ==(coordsys c1, coordsys c2) -{/*<asyxml></code><documentation>Return true iff the coordinate system have the same origin and units vector.</documentation></operator></asyxml>*/ - return c1.O == c2.O && c1.i == c2.i && c1.j == c2.j; -} + {/*<asyxml></code><documentation>Return true iff the coordinate system have the same origin and units vector.</documentation></operator></asyxml>*/ + return c1.O == c2.O && c1.i == c2.i && c1.j == c2.j; + } /*<asyxml><function type="coordsys" signature="cartesiansystem(pair,pair,pair)"><code></asyxml>*/ coordsys cartesiansystem(pair O = (0, 0), pair i, pair j) {/*<asyxml></code><documentation>Return the Cartesian coordinate system (O, i, j).</documentation></function></asyxml>*/ - coordsys R; - real[][] P = {{0, 0}, {0, 0}}; - real[][] iP; - P[0][0] = i.x; - P[0][1] = j.x; - P[1][0] = i.y; - P[1][1] = j.y; - iP = inverse(P); - real ni = abs(i); - real nj = abs(j); - real ij = angle(j) - angle(i); - - pair rtd(pair m) - { - return O + (P[0][0] * m.x + P[0][1] * m.y, P[1][0] * m.x + P[1][1] * m.y); - } - - pair dtr(pair m) - { - m-=O; - return (iP[0][0] * m.x + iP[0][1] * m.y, iP[1][0] * m.x + iP[1][1] * m.y); - } - - pair polar(real r, real a) - { - real ca = sin(ij - a)/(ni * sin(ij)); - real sa = sin(a)/(nj * sin(ij)); - return r * (ca, sa); - } - - real tdot(pair m, pair n) - { - return m.x * n.x * ni^2 + m.y * n.y * nj^2 + (m.x * n.y + n.x * m.y) * dot(i, j); - } - - R.init(rtd, dtr, polar, tdot); - return R; + coordsys R; + real[][] P = {{0, 0}, {0, 0}}; + real[][] iP; + P[0][0] = i.x; + P[0][1] = j.x; + P[1][0] = i.y; + P[1][1] = j.y; + iP = inverse(P); + real ni = abs(i); + real nj = abs(j); + real ij = angle(j) - angle(i); + + pair rtd(pair m) + { + return O + (P[0][0] * m.x + P[0][1] * m.y, P[1][0] * m.x + P[1][1] * m.y); + } + + pair dtr(pair m) + { + m-=O; + return (iP[0][0] * m.x + iP[0][1] * m.y, iP[1][0] * m.x + iP[1][1] * m.y); + } + + pair polar(real r, real a) + { + real ca = sin(ij - a)/(ni * sin(ij)); + real sa = sin(a)/(nj * sin(ij)); + return r * (ca, sa); + } + + real tdot(pair m, pair n) + { + return m.x * n.x * ni^2 + m.y * n.y * nj^2 + (m.x * n.y + n.x * m.y) * dot(i, j); + } + + R.init(rtd, dtr, polar, tdot); + return R; } @@ -344,19 +344,19 @@ void show(picture pic = currentpicture, Label lo = "$O$", pen jpen = ipen, arrowbar arrow = Arrow) {/*<asyxml></code><documentation>Draw the components (O, i, j, x - axis, y - axis) of 'R'.</documentation></function></asyxml>*/ - unravel R; - dot(pic, O, dotpen); - drawline(pic, O, O + i, xpen); - drawline(pic, O, O + j, ypen); - draw(pic, li, O--(O + i), ipen, arrow); - Label lj = lj.copy(); - lj.align(lj.align, unit(I * j)); - draw(pic, lj, O--(O + j), jpen, arrow); - draw(pic, lj, O--(O + j), jpen, arrow); - Label lo = lo.copy(); - lo.align(lo.align, -2 * dir(O--O + i, O--O + j)); - lo.p(dotpen); - label(pic, lo, O); + unravel R; + dot(pic, O, dotpen); + drawline(pic, O, O + i, xpen); + drawline(pic, O, O + j, ypen); + draw(pic, li, O--(O + i), ipen, arrow); + Label lj = lj.copy(); + lj.align(lj.align, unit(I * j)); + draw(pic, lj, O--(O + j), jpen, arrow); + draw(pic, lj, O--(O + j), jpen, arrow); + Label lo = lo.copy(); + lo.align(lo.align, -2 * dir(O--O + i, O--O + j)); + lo.p(dotpen); + label(pic, lo, O); } /*<asyxml><operator type = "pair" signature="/(pair,coordsys)"><code></asyxml>*/ @@ -364,7 +364,7 @@ pair operator /(pair p, coordsys R) {/*<asyxml></code><documentation>Return the xy - coordinates of 'p' relatively to the coordinate system 'R'. For example, if R = cartesiansystem((1, 2), (1, 0), (0, 1)), (0, 0)/R is (-1, -2).</documentation></operator></asyxml>*/ - return R.defaulttorelative(p); + return R.defaulttorelative(p); } /*<asyxml><operator type = "pair" signature="*(coordsys,pair)"><code></asyxml>*/ @@ -372,34 +372,34 @@ pair operator *(coordsys R, pair p) {/*<asyxml></code><documentation>Return the coordinates of 'p' given in the xy - coordinates 'R'. For example, if R = cartesiansystem((1, 2), (1, 0), (0, 1)), R * (0, 0) is (1, 2).</documentation></operator></asyxml>*/ - return R.relativetodefault(p); + return R.relativetodefault(p); } /*<asyxml><operator type = "path" signature="*(coordsys,path)"><code></asyxml>*/ path operator *(coordsys R, path g) {/*<asyxml></code><documentation>Return the reconstructed path applying R * pair to each node, pre and post control point of 'g'.</documentation></operator></asyxml>*/ - guide og = R * point(g, 0); - real l = length(g); - for(int i = 1; i <= l; ++i) - { - pair P = R * point(g, i); - pair post = R * postcontrol(g, i - 1); - pair pre = R * precontrol(g, i); - if(i == l && (cyclic(g))) - og = og..controls post and pre..cycle; - else - og = og..controls post and pre..P; - } - return og; + guide og = R * point(g, 0); + real l = length(g); + for(int i = 1; i <= l; ++i) + { + pair P = R * point(g, i); + pair post = R * postcontrol(g, i - 1); + pair pre = R * precontrol(g, i); + if(i == l && (cyclic(g))) + og = og..controls post and pre..cycle; + else + og = og..controls post and pre..P; + } + return og; } /*<asyxml><operator type = "coordsys" signature="*(transform,coordsys)"><code></asyxml>*/ coordsys operator *(transform t,coordsys R) {/*<asyxml></code><documentation>Provide transform * coordsys. Note that shiftless(t) is applied to R.i and R.j.</documentation></operator></asyxml>*/ - coordsys oc; - oc = cartesiansystem(t * R.O, shiftless(t) * R.i, shiftless(t) * R.j); - return oc; + coordsys oc; + oc = cartesiansystem(t * R.O, shiftless(t) * R.i, shiftless(t) * R.j); + return oc; } /*<asyxml><constant type = "coordsys" signature="defaultcoordsys"><code></asyxml>*/ @@ -651,26 +651,26 @@ point operator *(explicit pair p1, explicit point p2) /*<asyxml><operator type = "bool" signature="==(explicit point,explicit point)"><code></asyxml>*/ bool operator ==(explicit point M, explicit point N) -{/*<asyxml></code><documentation>Provide the test 'M == N' wish returns true iff MN < EPS</documentation></operator></asyxml>*/ - return abs(locate(M) - locate(N)) < EPS; -} + {/*<asyxml></code><documentation>Provide the test 'M == N' wish returns true iff MN < EPS</documentation></operator></asyxml>*/ + return abs(locate(M) - locate(N)) < EPS; + } /*<asyxml><operator type = "bool" signature="!=(explicit point,explicit point)"><code></asyxml>*/ bool operator !=(explicit point M, explicit point N) {/*<asyxml></code><documentation>Provide the test 'M != N' wish return true iff MN >= EPS</documentation></operator></asyxml>*/ - return !(M == N); + return !(M == N); } /*<asyxml><operator type = "guide" signature="cast(point)"><code></asyxml>*/ guide operator cast(point p) {/*<asyxml></code><documentation>Cast point to guide.</documentation></operator></asyxml>*/ - return locate(p); + return locate(p); } /*<asyxml><operator type = "path" signature="cast(point)"><code></asyxml>*/ path operator cast(point p) {/*<asyxml></code><documentation>Cast point to path.</documentation></operator></asyxml>*/ - return locate(p); + return locate(p); } /*<asyxml><function type="void" signature="dot(picture,Label,explicit point,align,string,pen)"><code></asyxml>*/ @@ -678,103 +678,103 @@ void dot(picture pic = currentpicture, Label L, explicit point Z, align align = NoAlign, string format = defaultformat, pen p = currentpen) {/*<asyxml></code><documentation></documentation></function></asyxml>*/ - Label L = L.copy(); - L.position(locate(Z)); - if(L.s == "") { - if(format == "") format = defaultformat; - L.s = "("+format(format, Z.x)+", "+format(format, Z.y)+")"; - } - L.align(align, E); - L.p(p); - dot(pic, locate(Z), p); - add(pic, L); + Label L = L.copy(); + L.position(locate(Z)); + if(L.s == "") { + if(format == "") format = defaultformat; + L.s = "("+format(format, Z.x)+", "+format(format, Z.y)+")"; + } + L.align(align, E); + L.p(p); + dot(pic, locate(Z), p); + add(pic, L); } /*<asyxml><function type="real" signature="abs(coordsys,pair)"><code></asyxml>*/ real abs(coordsys R, pair m) {/*<asyxml></code><documentation>Return the modulus |m| in the coordinate system 'R'.</documentation></function></asyxml>*/ - return R.abs(m); + return R.abs(m); } /*<asyxml><function type="real" signature="abs(explicit point)"><code></asyxml>*/ real abs(explicit point M) {/*<asyxml></code><documentation>Return the modulus |M| in its coordinate system.</documentation></function></asyxml>*/ - return M.coordsys.abs(M.coordinates); + return M.coordsys.abs(M.coordinates); } /*<asyxml><function type="real" signature="length(explicit point)"><code></asyxml>*/ real length(explicit point M) {/*<asyxml></code><documentation>Return the modulus |M| in its coordinate system (same as 'abs').</documentation></function></asyxml>*/ - return M.coordsys.abs(M.coordinates); + return M.coordsys.abs(M.coordinates); } /*<asyxml><function type="point" signature="conj(explicit point)"><code></asyxml>*/ point conj(explicit point M) {/*<asyxml></code><documentation>Conjugate.</documentation></function></asyxml>*/ - return point(M.coordsys, conj(M.coordinates), M.m); + return point(M.coordsys, conj(M.coordinates), M.m); } /*<asyxml><function type="real" signature="degrees(explicit point,coordsys,bool)"><code></asyxml>*/ real degrees(explicit point M, coordsys R = M.coordsys, bool warn = true) {/*<asyxml></code><documentation>Return the angle of M (in degrees) relatively to 'R'.</documentation></function></asyxml>*/ - return (degrees(locate(M) - R.O, warn) - degrees(R.i))%360; + return (degrees(locate(M) - R.O, warn) - degrees(R.i))%360; } /*<asyxml><function type="real" signature="angle(explicit point,coordsys,bool)"><code></asyxml>*/ real angle(explicit point M, coordsys R = M.coordsys, bool warn = true) {/*<asyxml></code><documentation>Return the angle of M (in radians) relatively to 'R'.</documentation></function></asyxml>*/ - return radians(degrees(M, R, warn)); + return radians(degrees(M, R, warn)); } bool Finite(explicit point z) { - return abs(z.x) < Infinity && abs(z.y) < Infinity; + return abs(z.x) < Infinity && abs(z.y) < Infinity; } /*<asyxml><function type="bool" signature="finite(explicit point)"><code></asyxml>*/ bool finite(explicit point p) {/*<asyxml></code><documentation>Avoid to compute 'finite((pair)(infinite_point))'.</documentation></function></asyxml>*/ - return finite(p.coordinates); + return finite(p.coordinates); } /*<asyxml><function type="real" signature="dot(point,point)"><code></asyxml>*/ real dot(point A, point B) {/*<asyxml></code><documentation>Return the dot product in the coordinate system of 'A'.</documentation></function></asyxml>*/ - point[] P = standardizecoordsys(A.coordsys, A, B); - return P[0].coordsys.dot(P[0].coordinates, P[1].coordinates); + point[] P = standardizecoordsys(A.coordsys, A, B); + return P[0].coordsys.dot(P[0].coordinates, P[1].coordinates); } /*<asyxml><function type="real" signature="dot(point,explicit pair)"><code></asyxml>*/ real dot(point A, explicit pair B) {/*<asyxml></code><documentation>Return the dot product in the default coordinate system. dot(explicit pair, point) is also defined.</documentation></function></asyxml>*/ - return dot(locate(A), B); + return dot(locate(A), B); } real dot(explicit pair A, point B) { - return dot(A, locate(B)); + return dot(A, locate(B)); } /*<asyxml><function type="transforms" signature="rotateO(real)"><code></asyxml>*/ transform rotateO(real a) {/*<asyxml></code><documentation>Rotation around the origin of the current coordinate system.</documentation></function></asyxml>*/ - return rotate(a, currentcoordsys.O); + return rotate(a, currentcoordsys.O); } /*<asyxml><function type="transform" signature="projection(point,point)"><code></asyxml>*/ transform projection(point A, point B) {/*<asyxml></code><documentation>Return the orthogonal projection on the line (AB).</documentation></function></asyxml>*/ - pair dir = unit(locate(A) - locate(B)); - pair a = locate(A); - real cof = dir.x * a.x + dir.y * a.y; - real tx = a.x - dir.x * cof; - real txx = dir.x^2; - real txy = dir.x * dir.y; - real ty = a.y - dir.y * cof; - real tyx = txy; - real tyy = dir.y^2; - transform t = (tx, ty, txx, txy, tyx, tyy); - return t; + pair dir = unit(locate(A) - locate(B)); + pair a = locate(A); + real cof = dir.x * a.x + dir.y * a.y; + real tx = a.x - dir.x * cof; + real txx = dir.x^2; + real txy = dir.x * dir.y; + real ty = a.y - dir.y * cof; + real tyx = txy; + real tyy = dir.y^2; + transform t = (tx, ty, txx, txy, tyx, tyy); + return t; } /*<asyxml><function type="transform" signature="projection(point,point,point,point,bool)"><code></asyxml>*/ @@ -782,45 +782,45 @@ transform projection(point A, point B, point C, point D, bool safe = false) {/*<asyxml></code><documentation>Return the (CD) parallel projection on (AB). If 'safe = true' and (AB)//(CD) return the identity. If 'safe = false' and (AB)//(CD) return an infinity scaling.</documentation></function></asyxml>*/ - pair a = locate(A); - pair u = unit(locate(B) - locate(A)); - pair v = unit(locate(D) - locate(C)); - real c = u.x * a.y - u.y * a.x; - real d = (conj(u) * v).y; - if (abs(d) < epsgeo) { - return safe ? identity() : scale(infinity); - } - real tx = c * v.x/d; - real ty = c * v.y/d; - real txx = u.x * v.y/d; - real txy = -u.x * v.x/d; - real tyx = u.y * v.y/d; - real tyy = -u.y * v.x/d; - transform t = (tx, ty, txx, txy, tyx, tyy); - return t; + pair a = locate(A); + pair u = unit(locate(B) - locate(A)); + pair v = unit(locate(D) - locate(C)); + real c = u.x * a.y - u.y * a.x; + real d = (conj(u) * v).y; + if (abs(d) < epsgeo) { + return safe ? identity() : scale(infinity); + } + real tx = c * v.x/d; + real ty = c * v.y/d; + real txx = u.x * v.y/d; + real txy = -u.x * v.x/d; + real tyx = u.y * v.y/d; + real tyy = -u.y * v.x/d; + transform t = (tx, ty, txx, txy, tyx, tyy); + return t; } /*<asyxml><function type="transform" signature="scale(real,point)"><code></asyxml>*/ transform scale(real k, point M) {/*<asyxml></code><documentation>Homothety.</documentation></function></asyxml>*/ - pair P = locate(M); - return shift(P) * scale(k) * shift(-P); + pair P = locate(M); + return shift(P) * scale(k) * shift(-P); } /*<asyxml><function type="transform" signature="xscale(real,point)"><code></asyxml>*/ transform xscale(real k, point M) {/*<asyxml></code><documentation>xscale from 'M' relatively to the x - axis of the coordinate system of 'M'.</documentation></function></asyxml>*/ - pair P = locate(M); - real a = degrees(M.coordsys.i); - return (shift(P) * rotate(a)) * xscale(k) * (rotate(-a) * shift(-P)); + pair P = locate(M); + real a = degrees(M.coordsys.i); + return (shift(P) * rotate(a)) * xscale(k) * (rotate(-a) * shift(-P)); } /*<asyxml><function type="transform" signature="yscale(real,point)"><code></asyxml>*/ transform yscale(real k, point M) {/*<asyxml></code><documentation>yscale from 'M' relatively to the y - axis of the coordinate system of 'M'.</documentation></function></asyxml>*/ - pair P = locate(M); - real a = degrees(M.coordsys.j) - 90; - return (shift(P) * rotate(a)) * yscale(k) * (rotate(-a) * shift(-P)); + pair P = locate(M); + real a = degrees(M.coordsys.j) - 90; + return (shift(P) * rotate(a)) * yscale(k) * (rotate(-a) * shift(-P)); } /*<asyxml><function type="transform" signature="scale(real,point,point,point,point,bool)"><code></asyxml>*/ @@ -829,41 +829,41 @@ transform scale(real k, point A, point B, point C, point D, bool safe = false) (help me for English translation...) If 'safe = true' and (AB)//(CD) return the identity. If 'safe = false' and (AB)//(CD) return a infinity scaling.</documentation></function></asyxml>*/ - pair a = locate(A); - pair u = unit(locate(B) - locate(A)); - pair v = unit(locate(D) - locate(C)); - real c = u.x * a.y - u.y * a.x; - real d = (conj(u) * v).y; - real d = (conj(u) * v).y; - if (abs(d) < epsgeo) { - return safe ? identity() : scale(infinity); - } - real tx = (1 - k) * c * v.x/d; - real ty = (1 - k) * c * v.y/d; - real txx = (1 - k) * u.x * v.y/d + k; - real txy = (k - 1) * u.x * v.x/d; - real tyx = (1 - k) * u.y * v.y/d; - real tyy = (k - 1) * u.y * v.x/d + k; - transform t = (tx, ty, txx, txy, tyx, tyy); - return t; + pair a = locate(A); + pair u = unit(locate(B) - locate(A)); + pair v = unit(locate(D) - locate(C)); + real c = u.x * a.y - u.y * a.x; + real d = (conj(u) * v).y; + real d = (conj(u) * v).y; + if (abs(d) < epsgeo) { + return safe ? identity() : scale(infinity); + } + real tx = (1 - k) * c * v.x/d; + real ty = (1 - k) * c * v.y/d; + real txx = (1 - k) * u.x * v.y/d + k; + real txy = (k - 1) * u.x * v.x/d; + real tyx = (1 - k) * u.y * v.y/d; + real tyy = (k - 1) * u.y * v.x/d + k; + transform t = (tx, ty, txx, txy, tyx, tyy); + return t; } /*<asyxml><function type="transform" signature="scaleO(real)"><code></asyxml>*/ transform scaleO(real x) {/*<asyxml></code><documentation>Homothety from the origin of the current coordinate system.</documentation></function></asyxml>*/ - return scale(x, (0, 0)); + return scale(x, (0, 0)); } /*<asyxml><function type="transform" signature="xscaleO(real)"><code></asyxml>*/ transform xscaleO(real x) {/*<asyxml></code><documentation>xscale from the origin and relatively to the current coordinate system.</documentation></function></asyxml>*/ - return scale(x, (0, 0), (0, 1), (0, 0), (1, 0)); + return scale(x, (0, 0), (0, 1), (0, 0), (1, 0)); } /*<asyxml><function type="transform" signature="yscaleO(real)"><code></asyxml>*/ transform yscaleO(real x) {/*<asyxml></code><documentation>yscale from the origin and relatively to the current coordinate system.</documentation></function></asyxml>*/ - return scale(x, (0, 0), (1, 0), (0, 0), (0, 1)); + return scale(x, (0, 0), (1, 0), (0, 0), (0, 1)); } /*<asyxml><struct signature="vector"><code></asyxml>*/ @@ -876,121 +876,121 @@ struct vector /*<asyxml><operator type = "point" signature="cast(vector)"><code></asyxml>*/ point operator cast(vector v) {/*<asyxml></code><documentation>Cast vector 'v' to point 'M' so that OM = v.</documentation></operator></asyxml>*/ - return v.v; + return v.v; } /*<asyxml><operator type = "vector" signature="cast(pair)"><code></asyxml>*/ vector operator cast(pair v) {/*<asyxml></code><documentation>Cast pair to vector relatively to the current coordinate system 'currentcoordsys'.</documentation></operator></asyxml>*/ - vector ov; - ov.v = point(currentcoordsys, v); - return ov; + vector ov; + ov.v = point(currentcoordsys, v); + return ov; } /*<asyxml><operator type = "vector" signature="cast(explicit point)"><code></asyxml>*/ vector operator cast(explicit point v) {/*<asyxml></code><documentation>A point can be interpreted like a vector using the code '(vector)a_point'.</documentation></operator></asyxml>*/ - vector ov; - ov.v = v; - return ov; + vector ov; + ov.v = v; + return ov; } /*<asyxml><operator type = "pair" signature="cast(explicit vector)"><code></asyxml>*/ pair operator cast(explicit vector v) {/*<asyxml></code><documentation>Cast vector to pair (the coordinates of 'v' in the default coordinate system).</documentation></operator></asyxml>*/ - return locate(v.v) - v.v.coordsys.O; + return locate(v.v) - v.v.coordsys.O; } /*<asyxml><operator type = "align" signature="cast(vector)"><code></asyxml>*/ align operator cast(vector v) {/*<asyxml></code><documentation>Cast vector to align.</documentation></operator></asyxml>*/ - return (pair)v; + return (pair)v; } /*<asyxml><function type="vector" signature="vector(coordsys, pair)"><code></asyxml>*/ vector vector(coordsys R = currentcoordsys, pair v) {/*<asyxml></code><documentation>Return the vector of 'R' which has the coordinates 'v'.</documentation></function></asyxml>*/ - vector ov; - ov.v = point(R, v); - return ov; + vector ov; + ov.v = point(R, v); + return ov; } /*<asyxml><function type="vector" signature="vector(point)"><code></asyxml>*/ vector vector(point M) {/*<asyxml></code><documentation>Return the vector OM, where O is the origin of the coordinate system of 'M'. Useful to write 'vector(P - M);' instead of '(vector)(P - M)'.</documentation></function></asyxml>*/ - return M; + return M; } /*<asyxml><function type="point" signature="point(explicit vector)"><code></asyxml>*/ point point(explicit vector u) {/*<asyxml></code><documentation>Return the point M so that OM = u, where O is the origin of the coordinate system of 'u'.</documentation></function></asyxml>*/ - return u.v; + return u.v; } /*<asyxml><function type="pair" signature="locate(explicit vector)"><code></asyxml>*/ pair locate(explicit vector v) {/*<asyxml></code><documentation>Return the coordinates of 'v' in the default coordinate system (like casting vector to pair).</documentation></function></asyxml>*/ - return (pair)v; + return (pair)v; } /*<asyxml><function type="void" signature="show(Label,pen,arrowbar)"><code></asyxml>*/ void show(Label L, vector v, pen p = currentpen, arrowbar arrow = Arrow) {/*<asyxml></code><documentation>Draw the vector v (from the origin of its coordinate system).</documentation></function></asyxml>*/ - coordsys R = v.v.coordsys; - draw(L, R.O--v.v, p, arrow); + coordsys R = v.v.coordsys; + draw(L, R.O--v.v, p, arrow); } /*<asyxml><function type="vector" signature="changecoordsys(coordsys,vector)"><code></asyxml>*/ vector changecoordsys(coordsys R, vector v) {/*<asyxml></code><documentation>Return the vector 'v' relatively to coordinate system 'R'.</documentation></function></asyxml>*/ - vector ov; - ov.v = point(R, (locate(v) + R.O)/R); - return ov; + vector ov; + ov.v = point(R, (locate(v) + R.O)/R); + return ov; } /*<asyxml><operator type = "vector" signature="*(real,explicit vector)"><code></asyxml>*/ vector operator *(real x, explicit vector v) {/*<asyxml></code><documentation>Provide real * vector.</documentation></operator></asyxml>*/ - return x * v.v; + return x * v.v; } /*<asyxml><operator type = "vector" signature="/(explicit vector,real)"><code></asyxml>*/ vector operator /(explicit vector v, real x) {/*<asyxml></code><documentation>Provide vector/real</documentation></operator></asyxml>*/ - return v.v/x; + return v.v/x; } /*<asyxml><operator type = "vector" signature="*(transform t,explicit vector)"><code></asyxml>*/ vector operator *(transform t, explicit vector v) {/*<asyxml></code><documentation>Provide transform * vector.</documentation></operator></asyxml>*/ - return t * v.v; + return t * v.v; } /*<asyxml><operator type = "vector" signature="*(explicit point,explicit vector)"><code></asyxml>*/ vector operator *(explicit point M, explicit vector v) {/*<asyxml></code><documentation>Provide point * vector</documentation></operator></asyxml>*/ - return M * v.v; + return M * v.v; } /*<asyxml><operator type = "point" signature="+(explicit point,explicit vector)"><code></asyxml>*/ point operator +(point M, explicit vector v) {/*<asyxml></code><documentation>Return 'M' shifted by 'v'.</documentation></operator></asyxml>*/ - return shift(locate(v)) * M; + return shift(locate(v)) * M; } /*<asyxml><operator type = "point" signature="-(explicit point,explicit vector)"><code></asyxml>*/ point operator -(point M, explicit vector v) {/*<asyxml></code><documentation>Return 'M' shifted by '-v'.</documentation></operator></asyxml>*/ - return shift(-locate(v)) * M; + return shift(-locate(v)) * M; } /*<asyxml><operator type = "vector" signature="-(explicit vector)"><code></asyxml>*/ vector operator -(explicit vector v) {/*<asyxml></code><documentation>Provide -v.</documentation></operator></asyxml>*/ - return -v.v; + return -v.v; } /*<asyxml><operator type = "point" signature="+(explicit pair,explicit vector)"><code></asyxml>*/ @@ -998,7 +998,7 @@ point operator +(explicit pair m, explicit vector v) {/*<asyxml></code><documentation>The pair 'm' is supposed to be the coordinates of a point in the current coordinates system 'currentcoordsys'. Return this point shifted by the vector 'v'.</documentation></operator></asyxml>*/ - return locate(m) + v; + return locate(m) + v; } /*<asyxml><operator type = "point" signature="-(explicit pair,explicit vector)"><code></asyxml>*/ @@ -1006,7 +1006,7 @@ point operator -(explicit pair m, explicit vector v) {/*<asyxml></code><documentation>The pair 'm' is supposed to be the coordinates of a point in the current coordinates system 'currentcoordsys'. Return this point shifted by the vector '-v'.</documentation></operator></asyxml>*/ - return m + (-v); + return m + (-v); } /*<asyxml><operator type = "vector" signature="+(explicit vector,explicit vector)"><code></asyxml>*/ @@ -1014,9 +1014,9 @@ vector operator +(explicit vector v1, explicit vector v2) {/*<asyxml></code><documentation>Provide vector + vector. If the two vector haven't the same coordinate system, the returned vector is relative to the default coordinate system (without warning).</documentation></operator></asyxml>*/ - coordsys R = v1.v.coordsys; - if(samecoordsys(false, v1, v2)){R = defaultcoordsys;} - return vector(R, (locate(v1) + locate(v2))/R); + coordsys R = v1.v.coordsys; + if(samecoordsys(false, v1, v2)){R = defaultcoordsys;} + return vector(R, (locate(v1) + locate(v2))/R); } /*<asyxml><operator type = "vector" signature="-(explicit vector, explicit vector)"><code></asyxml>*/ @@ -1024,31 +1024,31 @@ vector operator -(explicit vector v1, explicit vector v2) {/*<asyxml></code><documentation>Provide vector - vector. If the two vector haven't the same coordinate system, the returned vector is relative to the default coordinate system (without warning).</documentation></operator></asyxml>*/ - return v1 + (-v2); + return v1 + (-v2); } /*<asyxml><operator type = "bool" signature="==(explicit vector,explicit vector)"><code></asyxml>*/ bool operator ==(explicit vector u, explicit vector v) -{/*<asyxml></code><documentation>Return true iff |u - v|<EPS.</documentation></operator></asyxml>*/ - return abs(u - v) < EPS; -} + {/*<asyxml></code><documentation>Return true iff |u - v|<EPS.</documentation></operator></asyxml>*/ + return abs(u - v) < EPS; + } /*<asyxml><function type="bool" signature="collinear(vector,vector)"><code></asyxml>*/ bool collinear(vector u, vector v) {/*<asyxml></code><documentation>Return 'true' iff the vectors 'u' and 'v' are collinear.</documentation></function></asyxml>*/ - return abs(ypart((conj((pair)u) * (pair)v))) < EPS; + return abs(ypart((conj((pair)u) * (pair)v))) < EPS; } /*<asyxml><function type="vector" signature="unit(point)"><code></asyxml>*/ vector unit(point M) {/*<asyxml></code><documentation>Return the unit vector according to the modulus of its coordinate system.</documentation></function></asyxml>*/ - return M/abs(M); + return M/abs(M); } /*<asyxml><function type="vector" signature="unit(vector)"><code></asyxml>*/ vector unit(vector u) {/*<asyxml></code><documentation>Return the unit vector according to the modulus of its coordinate system.</documentation></function></asyxml>*/ - return u.v/abs(u.v); + return u.v/abs(u.v); } /*<asyxml><function type="real" signature="degrees(vector,coordsys,bool)"><code></asyxml>*/ @@ -1056,7 +1056,7 @@ real degrees(vector v, coordsys R = v.v.coordsys, bool warn = true) {/*<asyxml></code><documentation>Return the angle of 'v' (in degrees) relatively to 'R'.</documentation></function></asyxml>*/ - return (degrees(locate(v), warn) - degrees(R.i))%360; + return (degrees(locate(v), warn) - degrees(R.i))%360; } /*<asyxml><function type="real" signature="angle(vector,coordsys,bool)"><code></asyxml>*/ @@ -1064,13 +1064,13 @@ real angle(explicit vector v, coordsys R = v.v.coordsys, bool warn = true) {/*<asyxml></code><documentation>Return the angle of 'v' (in radians) relatively to 'R'.</documentation></function></asyxml>*/ - return radians(degrees(v, R, warn)); + return radians(degrees(v, R, warn)); } /*<asyxml><function type="vector" signature="conj(explicit vector)"><code></asyxml>*/ vector conj(explicit vector u) {/*<asyxml></code><documentation>Conjugate.</documentation></function></asyxml>*/ - return conj(u.v); + return conj(u.v); } /*<asyxml><function type="transform" signature="rotate(explicit vector)"><code></asyxml>*/ @@ -1079,7 +1079,7 @@ transform rotate(explicit vector dir) This is useful for rotating text along a line in the direction dir. rotate(explicit point dir) is also defined. </documentation></function></asyxml>*/ - return rotate(locate(dir)); + return rotate(locate(dir)); } transform rotate(explicit point dir){return rotate(locate(vector(dir)));} // *......................COORDINATES......................* @@ -1311,7 +1311,7 @@ void perpendicularmark(picture pic = currentpicture, point z, g = margin(g, p).g; draw(apic, g, p); if(filltype != NoFill) filltype.fill(apic, (relpoint(g, 0) - relpoint(g, 0.5)+ - relpoint(g, 1))--g--cycle, p + solid); + relpoint(g, 1))--g--cycle, p + solid); add(pic, apic, locate(z)); } @@ -1360,7 +1360,7 @@ void markrightangle(picture pic = currentpicture, point A, point O, pair Ap = A, Bp = B, Op = O; pair dir = Ap - Op; real a1 = degrees(dir); - pair align = rotate(-a1) * unit(dir(Op--Ap, Op--Bp)); + pair align = rotate(-a1) * dir(Op--Ap, Op--Bp); perpendicularmark(pic = pic, z = O, align = align, dir = dir, size = size, p = p, margin = margin, filltype = filltype); @@ -1700,80 +1700,80 @@ void write(explicit segment s) /*<asyxml><operator type = "bool" signature="==(line,line)"><code></asyxml>*/ bool operator ==(line l1, line l2) -{/*<asyxml></code><documentation>Provide the test 'line == line'.</documentation></operator></asyxml>*/ - return (collinear(l1.u, l2.u) && - abs(ypart((locate(l1.A) - locate(l1.B))/(locate(l1.A) - locate(l2.B)))) < epsgeo && - l1.extendA == l2.extendA && l1.extendB == l2.extendB); -} + {/*<asyxml></code><documentation>Provide the test 'line == line'.</documentation></operator></asyxml>*/ + return (collinear(l1.u, l2.u) && + abs(ypart((locate(l1.A) - locate(l1.B))/(locate(l1.A) - locate(l2.B)))) < epsgeo && + l1.extendA == l2.extendA && l1.extendB == l2.extendB); + } /*<asyxml><operator type = "bool" signature="!=(line,line)"><code></asyxml>*/ bool operator !=(line l1, line l2) {/*<asyxml></code><documentation>Provide the test 'line != line'.</documentation></operator></asyxml>*/ - return !(l1 == l2); + return !(l1 == l2); } /*<asyxml><operator type = "bool" signature="@(point,line)"><code></asyxml>*/ bool operator @(point m, line l) {/*<asyxml></code><documentation>Provide the test 'point @ line'. Return true iff 'm' is on the 'l'.</documentation></operator></asyxml>*/ - point M = changecoordsys(l.A.coordsys, m); - if (abs(l.a * M.x + l.b * M.y + l.c) >= epsgeo) return false; - if (l.extendA && l.extendB) return true; - if (!l.extendA && !l.extendB) return between(l.A, M, l.B); - if (l.extendA) return sameside(M, l.A, l.B); - return sameside(M, l.B, l.A); + point M = changecoordsys(l.A.coordsys, m); + if (abs(l.a * M.x + l.b * M.y + l.c) >= epsgeo) return false; + if (l.extendA && l.extendB) return true; + if (!l.extendA && !l.extendB) return between(l.A, M, l.B); + if (l.extendA) return sameside(M, l.A, l.B); + return sameside(M, l.B, l.A); } /*<asyxml><function type="coordsys" signature="coordsys(line)"><code></asyxml>*/ coordsys coordsys(line l) {/*<asyxml></code><documentation>Return the coordinate system in which 'l' is defined.</documentation></function></asyxml>*/ - return l.A.coordsys; + return l.A.coordsys; } /*<asyxml><function type="line" signature="reverse(line)"><code></asyxml>*/ line reverse(line l) {/*<asyxml></code><documentation>Permute the points 'A' and 'B' of 'l' and so its orientation.</documentation></function></asyxml>*/ - return line(l.B, l.extendB, l.A, l.extendA); + return line(l.B, l.extendB, l.A, l.extendA); } /*<asyxml><function type="line" signature="extend(line)"><code></asyxml>*/ line extend(line l) {/*<asyxml></code><documentation>Return the infinite line passing through 'l.A' and 'l.B'.</documentation></function></asyxml>*/ - line ol = l.copy(); - ol.extendA = true; - ol.extendB = true; - return ol; + line ol = l.copy(); + ol.extendA = true; + ol.extendB = true; + return ol; } /*<asyxml><function type="line" signature="complementary(explicit line)"><code></asyxml>*/ line complementary(explicit line l) {/*<asyxml></code><documentation>Return the complementary of a half-line with respect of the full line 'l'.</documentation></function></asyxml>*/ - if (l.extendA && l.extendB) - abort("complementary: the parameter is not a half-line."); - point origin = l.extendA ? l.B : l.A; - point ptdir = l.extendA ? - rotate(180, l.B) * l.A : rotate(180, l.A) * l.B; - return line(origin, false, ptdir); + if (l.extendA && l.extendB) + abort("complementary: the parameter is not a half-line."); + point origin = l.extendA ? l.B : l.A; + point ptdir = l.extendA ? + rotate(180, l.B) * l.A : rotate(180, l.A) * l.B; + return line(origin, false, ptdir); } /*<asyxml><function type="line[]" signature="complementary(explicit segment)"><code></asyxml>*/ line[] complementary(explicit segment s) {/*<asyxml></code><documentation>Return the two half-lines of origin 's.A' and 's.B' respectively.</documentation></function></asyxml>*/ - line[] ol = new line[2]; - ol[0] = complementary(line(s.A, false, s.B)); - ol[1] = complementary(line(s.A, s.B, false)); - return ol; + line[] ol = new line[2]; + ol[0] = complementary(line(s.A, false, s.B)); + ol[1] = complementary(line(s.A, s.B, false)); + return ol; } /*<asyxml><function type="line" signature="Ox(coordsys)"><code></asyxml>*/ line Ox(coordsys R = currentcoordsys) {/*<asyxml></code><documentation>Return the x-axis of 'R'.</documentation></function></asyxml>*/ - return line(point(R, (0, 0)), point(R, E)); + return line(point(R, (0, 0)), point(R, E)); } /*<asyxml><constant type = "line" signature="Ox"><code></asyxml>*/ restricted line Ox = Ox();/*<asyxml></code><documentation>the x-axis of - the default coordinate system.</documentation></constant></asyxml>*/ + the default coordinate system.</documentation></constant></asyxml>*/ /*<asyxml><function type="line" signature="Oy(coordsys)"><code></asyxml>*/ line Oy(coordsys R = currentcoordsys) @@ -1782,7 +1782,7 @@ line Oy(coordsys R = currentcoordsys) } /*<asyxml><constant type = "line" signature="Oy"><code></asyxml>*/ restricted line Oy = Oy();/*<asyxml></code><documentation>the y-axis of - the default coordinate system.</documentation></constant></asyxml>*/ + the default coordinate system.</documentation></constant></asyxml>*/ /*<asyxml><function type="line" signature="line(real,point)"><code></asyxml>*/ line line(real a, point A = point(currentcoordsys, (0, 0))) @@ -1826,7 +1826,7 @@ line vline(coordsys R = currentcoordsys) } /*<asyxml><constant type = "line" signature="vline"><code></asyxml>*/ restricted line vline = vline();/*<asyxml></code><documentation>The vertical line in the current coordinate system passing - through the origin of this system.</documentation></constant></asyxml>*/ + through the origin of this system.</documentation></constant></asyxml>*/ /*<asyxml><function type="line" signature="hline(coordsys)"><code></asyxml>*/ line hline(coordsys R = currentcoordsys) @@ -1837,7 +1837,7 @@ line hline(coordsys R = currentcoordsys) } /*<asyxml><constant type = "line" signature="hline"><code></asyxml>*/ line hline = hline();/*<asyxml></code><documentation>The horizontal line in the current coordinate system passing - through the origin of this system.</documentation></constant></asyxml>*/ + through the origin of this system.</documentation></constant></asyxml>*/ /*<asyxml><function type="line" signature="changecoordsys(coordsys,line)"><code></asyxml>*/ line changecoordsys(coordsys R, line l) @@ -2358,11 +2358,11 @@ bqe bqe(coordsys R = currentcoordsys, bqe changecoordsys(coordsys R, bqe bqe) {/*<asyxml></code><documentation>Returns the bivariate quadratic equation relatively to 'R'.</documentation></function></asyxml>*/ pair i = coordinates(changecoordsys(R, vector(defaultcoordsys, - bqe.coordsys.i))); + bqe.coordsys.i))); pair j = coordinates(changecoordsys(R, vector(defaultcoordsys, - bqe.coordsys.j))); + bqe.coordsys.j))); pair O = coordinates(changecoordsys(R, point(defaultcoordsys, - bqe.coordsys.O))); + bqe.coordsys.O))); real a = bqe.a[0], b = bqe.a[1], c = bqe.a[2], d = bqe.a[3], f = bqe.a[4], g = bqe.a[5]; real ux = i.x, uy = i.y; real vx = j.x, vy = j.y; @@ -2372,14 +2372,14 @@ bqe changecoordsys(coordsys R, bqe bqe) real bpp = (-2 * a * vx * vy + b * ux * vy + b * uy * vx - 2 * c * ux * uy)/D^2; real cp = (a * vx^2 - b * ux * vx + c * ux^2)/D^2; real dp = (-2a * ox * vy^2 + 2a * oy * vx * vy + 2b * ox * uy * vy- - b * oy * ux * vy - b * oy * uy * vx - 2c * ox * uy^2 + 2c * oy * uy * ux)/D^2+ + b * oy * ux * vy - b * oy * uy * vx - 2c * ox * uy^2 + 2c * oy * uy * ux)/D^2+ (d * vy - f * uy)/D; real fp = (2a * ox * vx * vy - b * ox * ux * vy - 2a * oy * vx^2- - b * ox * uy * vx + 2 * b * oy * ux * vx + 2c * ox * ux * uy - 2c * oy * ux^2)/D^2+ + b * ox * uy * vx + 2 * b * oy * ux * vx + 2c * ox * ux * uy - 2c * oy * ux^2)/D^2+ (f * ux - d * vx)/D; g = (a * ox^2 * vy^2 - 2a * ox * oy * vx * vy - b * ox^2 * uy * vy + b * ox * oy * ux * vy+ - a * oy^2 * vx^2 + b * ox * oy * uy * vx - b * oy^2 * ux * vx + c * ox^2 * uy^2- - 2 * c * ox * oy * ux * uy + c * oy^2 * ux^2)/D^2+ + a * oy^2 * vx^2 + b * ox * oy * uy * vx - b * oy^2 * ux * vx + c * ox^2 * uy^2- + 2 * c * ox * oy * ux * uy + c * oy^2 * ux^2)/D^2+ (d * oy * vx + f * ox * uy - d * ox * vy - f * oy * ux)/D + g; bqe obqe; obqe.a = approximate(new real[] {ap, bpp, cp, dp, fp, g}); @@ -2636,7 +2636,7 @@ struct hyperbola this.b = a * sqrt(this.e^2 - 1); this.p = a * (this.e^2 - 1); point A = this.C + (a^2/this.c) * unit(P[0]-this.C); - this.D1 = line(A, A + rotateO(90) * unit(A - this.C)); + this.D1 = line(A, A + rotate(90,this.C.coordsys.O) * unit(A - this.C)); this.D2 = reverse(rotate(180, C) * D1); this.V1 = C + a * unit(F1 - C); this.V2 = C + a * unit(F2 - C); @@ -3073,8 +3073,8 @@ parabola parabola(point M1, point M2, point M3, line l) real gle = degrees(l); coordsys Rp = cartesiansystem(R.O, rotate(gle) * R.i, rotate(gle) * R.j); pts = new pair[] {coordinates(changecoordsys(Rp, M1)), - coordinates(changecoordsys(Rp, M2)), - coordinates(changecoordsys(Rp, M3))}; + coordinates(changecoordsys(Rp, M2)), + coordinates(changecoordsys(Rp, M3))}; real[][] M; real[] x; for (int i = 0; i < 3; ++i) { @@ -3560,10 +3560,10 @@ path arcfromcenter(explicit conic co, real angle1, real angle2, path g; if(co.e < 1) g = arcfromcenter((ellipse)co, angle1, - angle2, direction, n); + angle2, direction, n); else if(co.e > 1) g = arcfromcenter((hyperbola)co, angle1, - angle2, n, direction); + angle2, n, direction); else abort("arcfromcenter: does not exist for a parabola."); return g; } @@ -3590,8 +3590,8 @@ bqe equation(ellipse el) } real[] coef = solve(M, x); bqe bqe = changecoordsys(coordsys(el), - bqe(defaultcoordsys, - 1, coef[0], coef[1], coef[2], coef[3], coef[4])); + bqe(defaultcoordsys, + 1, coef[0], coef[1], coef[2], coef[3], coef[4])); bqe.a = approximate(bqe.a); return bqe; } @@ -4038,8 +4038,8 @@ real arclength(ellipse el, real angle1, real angle2, // given form the center of the ellipse. real gle = atan(el.a * tan(radians(a))/el.b)+ pi * (((a%90 == 0 && a != 0) ? floor(a/90) - 1 : floor(a/90)) - - ((a%180 == 0) ? 0 : floor(a/180)) - - (a%360 == 0 ? floor(a/(360)) : 0)); + ((a%180 == 0) ? 0 : floor(a/180)) - + (a%360 == 0 ? floor(a/(360)) : 0)); /* // Uncomment to visualize the used branches unitsize(2cm, 1cm); import graph; @@ -4076,7 +4076,7 @@ real arclength(parabola p, real angle) {/*<asyxml></code><documentation>Return the arclength from 180 to 'angle' given from focus in the canonical coordinate system of 'p'.</documentation></function></asyxml>*/ real a = p.a; /* In canonicalcartesiansystem(p) the equation of p - is x = y^2/(4a) */ + is x = y^2/(4a) */ // integrate(sqrt(1 + (x/(2 * a))^2), x); real S(real t){return 0.5 * t * sqrt(1 + t^2/(4 * a^2)) + a * asinh(t/(2 * a));} real R(real gle){return 2 * a/(1 - Cos(gle));} @@ -4110,7 +4110,7 @@ struct abscissa real x;/*<asyxml></code><documentation>The abscissa value.</documentation></property><property type = "int" signature="system"><code></asyxml>*/ int system;/*<asyxml></code><documentation>0 = relativesystem; 1 = curvilinearsystem; 2 = angularsystem; 3 = nodesystem</documentation></property><property type = "polarconicroutine" signature="polarconicroutine"><code></asyxml>*/ polarconicroutine polarconicroutine = fromCenter;/*<asyxml></code><documentation>The routine used with angular system and two foci conic section. - Possible values are 'formCenter' and 'formFocus'.</documentation></property></asyxml>*/ + Possible values are 'formCenter' and 'formFocus'.</documentation></property></asyxml>*/ /*<asyxml><method type = "abscissa" signature="copy()"><code></asyxml>*/ abscissa copy() {/*<asyxml></code><documentation>Return a copy of this abscissa.</documentation></method></asyxml>*/ @@ -4800,7 +4800,7 @@ struct arc { restricted real angle1, angle2;/*<asyxml></code><documentation>Values (in degrees) in ]-360, 360[.</documentation></property><property type = "bool" signature="direction"><code></asyxml>*/ bool direction = CCW;/*<asyxml></code><documentation>The arc will be drawn from 'angle1' to 'angle2' rotating in the direction 'direction'.</documentation></property><property type = "polarconicroutine" signature="polarconicroutine"><code></asyxml>*/ polarconicroutine polarconicroutine = currentpolarconicroutine;/*<asyxml></code><documentation>The routine to which the angles refer. - If 'el' is a circle 'fromCenter' is always used.</documentation></property></asyxml>*/ + If 'el' is a circle 'fromCenter' is always used.</documentation></property></asyxml>*/ /*<asyxml><method type = "void" signature="setangles(real,real,real)"><code></asyxml>*/ void setangles(real a0, real a1, real a2) @@ -6478,7 +6478,7 @@ point[] intersectionpoints(line l, circle c) coordsys Rc = cartesiansystem(c.C, (1, 0), (0, 1)); line ll = changecoordsys(Rc, l); pair[] P = intersectionpoints(ll.A.coordinates, ll.B.coordinates, - 1, 0, 1, 0, 0, -c.r^2); + 1, 0, 1, 0, 0, -c.r^2); for (int i = 0; i < P.length; ++i) { point inter = changecoordsys(R, point(Rc, P[i])); if(inter @ l) op.push(inter); @@ -6518,7 +6518,7 @@ point[] intersectionpoints(line l, ellipse el) coordsys Rc = canonicalcartesiansystem(el); line ll = changecoordsys(Rc, l); pair[] P = intersectionpoints(ll.A.coordinates, ll.B.coordinates, - 1/el.a^2, 0, 1/el.b^2, 0, 0, -1); + 1/el.a^2, 0, 1/el.b^2, 0, 0, -1); for (int i = 0; i < P.length; ++i) { point inter = changecoordsys(R, point(Rc, P[i])); if(inter @ l) op.push(inter); @@ -6575,7 +6575,7 @@ point[] intersectionpoints(line l, hyperbola h) point[] op; coordsys R = coordsys(h); point A = intersectionpoint(l, h.A1), B = intersectionpoint(l, h.A2); - point M = midpoint(segment(A, B)); + point M = 0.5*(A + B); bool tgt = Finite(M) ? M @ h : false; if(tgt) { if(M @ l) op.push(M); @@ -6644,7 +6644,7 @@ point[] intersectionpoints(bqe bqe1, bqe bqe2) if(abs(b[4]) > e) { real D=b[4]^2; c=new real[] {(a[0]*b[4]^2+a[2]*b[3]^2+ - (-2*a[2]*a[3])*b[3]+a[2]*a[3]^2)/D, + (-2*a[2]*a[3])*b[3]+a[2]*a[3]^2)/D, -((-2*a[2]*b[3]+2*a[2]*a[3])*b[5]-a[3]*b[4]^2+ (2*a[2]*a[5])*b[3])/D,a[2]*(a[5]-b[5])^2/D+a[5]}; x=quadraticroots(c[0],c[1],c[2]); diff --git a/Master/texmf-dist/asymptote/graph.asy b/Master/texmf-dist/asymptote/graph.asy index 7498ce8bfdd..46a5d7d0647 100644 --- a/Master/texmf-dist/asymptote/graph.asy +++ b/Master/texmf-dist/asymptote/graph.asy @@ -42,14 +42,14 @@ scaleT Broken(real a, real b, bool automin=false, bool automax=automin) return x-skip; } real Tinv(real x) { - if(x <= a) return x; - return x+skip; + if(x <= a) return x; + return x+skip; } return scaleT(T,Tinv,logarithmic=false,automin,automax); } // A "broken" logarithmic axis omitting the segment [a,b], where a and b are -// automatically rounded to the nearest integral power of the base. +// automatically rounded to the nearest integral power of the base. scaleT BrokenLog(real a, real b, bool automin=false, bool automax=automin) { real A=round(Log.T(a)); @@ -92,7 +92,7 @@ void scale(picture pic=currentpicture, bool xautoscale=false, Linear(zautoscale,zautoscale)); } -struct scientific +struct scientific { int sign; real mantissa; @@ -108,7 +108,7 @@ struct scientific } // Convert x to scientific notation -scientific scientific(real x) +scientific scientific(real x) { scientific s; s.sign=sgn(x); @@ -154,7 +154,7 @@ int[] divisors(int a, int b) real upscale(real b, real a) { - if(b <= 5) b=5; + if(b <= 5) b=5; else if (b > 10 && a >= 0 && b <= 12) b=12; else if (b > 10 && (a >= 0 || 15 % -a == 0) && b <= 15) b=15; else b=ceil(b/10)*10; @@ -182,7 +182,7 @@ bounds autoscale(real Min, real Max, scaleT scale=Linear) if(Min > 0) {Min=0; Max *= 2;} else {Min *= 2; Max=0;} } - + int sign; if(Min < 0 && Max <= 0) {real temp=-Min; Min=-Max; Max=temp; sign=-1;} else sign=1; @@ -203,7 +203,7 @@ bounds autoscale(real Min, real Max, scaleT scale=Linear) while((b-a)*10.0^exp > 10*(Max-Min)) zoom(); - + real bsave=b; if(b-a > (a >= 0 ? 8 : 6)) { b=upscale(b,a); @@ -211,11 +211,11 @@ bounds autoscale(real Min, real Max, scaleT scale=Linear) if(a <= 5) a=0; else a=floor(a/10)*10; } else a=-upscale(-a,-1); } - + // Redo b in case the value of a has changed if(bsave-a > (a >= 0 ? 8 : 6)) b=upscale(bsave,a); - + if(sign == -1) {real temp=-a; a=-b; b=temp;} real Scale=10.0^exp; m.min=scale.T(a*Scale); @@ -266,7 +266,7 @@ ticklabel LogFormat(int base) { ticklabel LogFormat=LogFormat(10); ticklabel DefaultLogFormat=DefaultLogFormat(10); - + // The default direction specifier. pair zero(real) {return 0;} @@ -275,7 +275,7 @@ struct ticklocate { autoscaleT S; // Autoscaling transformation. pair dir(real t); // Absolute 2D tick direction. triple dir3(real t); // Absolute 3D tick direction. - real time(real v); // Returns the time corresponding to the value v. + real time(real v); // Returns the time corresponding to the value v. ticklocate copy() { ticklocate T=new ticklocate; T.a=a; @@ -289,7 +289,7 @@ struct ticklocate { } autoscaleT defaultS; - + typedef real valuetime(real); valuetime linear(scalefcn S=identity, real Min, real Max) @@ -300,7 +300,7 @@ valuetime linear(scalefcn S=identity, real Min, real Max) ticklocate ticklocate(real a, real b, autoscaleT S=defaultS, real tickmin=-infinity, real tickmax=infinity, - real time(real)=null, pair dir(real)=zero) + real time(real)=null, pair dir(real)=zero) { if((valuetime) time == null) time=linear(S.T(),a,b); ticklocate locate; @@ -313,13 +313,13 @@ ticklocate ticklocate(real a, real b, autoscaleT S=defaultS, locate.dir=dir; return locate; } - + private struct locateT { real t; // tick location time pair Z; // tick location in frame coordinates pair pathdir; // path direction in frame coordinates pair dir; // tick direction in frame coordinates - + void dir(transform T, path g, ticklocate locate, real t) { pathdir=unit(shiftless(T)*dir(g,t)); pair Dir=locate.dir(t); @@ -333,7 +333,7 @@ private struct locateT { } } -pair ticklabelshift(pair align, pen p=currentpen) +pair ticklabelshift(pair align, pen p=currentpen) { return 0.25*unit(align)*labelmargin(p); } @@ -347,7 +347,7 @@ void drawtick(frame f, transform T, path g, path g2, ticklocate locate, locate2.calc(T,g2,locate,val); draw(f,locate1.Z--locate2.Z,p); } else - if(sign == 0) + if(sign == 0) draw(f,locate1.Z-Size*locate1.dir--locate1.Z+Size*locate1.dir,p); else draw(f,locate1.Z--locate1.Z+Size*sign*locate1.dir,p); @@ -388,10 +388,10 @@ pair labeltick(frame d, transform T, path g, ticklocate locate, real val, label(d,F.T*baseline(s,baselinetemplate),locate1.Z+shift,align,F.p, F.filltype); return locate1.pathdir; -} +} // Add axis label L to frame f. -void labelaxis(frame f, transform T, Label L, path g, +void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=null, int sign=1, bool ticklabels=false) { Label L0=L.copy(); @@ -403,7 +403,7 @@ void labelaxis(frame f, transform T, Label L, path g, locateT locate1; locate1.dir(T,g,locate,t); L0.align(L0.align,unit(-sgn(dot(sign*locate1.dir,perp))*perp)); - } + } pair align=L0.align.dir; if(L0.align.relative) align *= -perp; pair alignperp=dot(align,perp)*perp; @@ -477,7 +477,7 @@ bool axiscoverage(int N, transform T, path g, ticklocate locate, real Step, // Check the tick coverage of a logarithmic axis. bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side, - int sign, real Size, Label F, ticklabel ticklabel, + int sign, real Size, Label F, ticklabel ticklabel, real limit, int first, int last) { bool loop=cyclic(g); @@ -525,7 +525,7 @@ string autoformat(string format="", real norm ... real[] a) int n=0; bool Fixed=find(a >= 1e4-epsilon | (a > 0 & a <= 1e-4-epsilon)) < 0; - + string Format=defaultformat(4,fixed=Fixed); if(Fixed && n < 4) { @@ -576,13 +576,13 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, if(size == 0) size=ticksize; F=F.copy(); F.p(p); - + if(F.align.dir != 0) side=F.align.dir; else if(side == 0) side=((sign == 1) ? left : right); - + bool ticklabels=false; path G=T*g; - + if(!locate.S.scale.logarithmic) { real a=locate.S.Tinv(locate.a); real b=locate.S.Tinv(locate.b); @@ -594,15 +594,15 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, if(a > b) {real temp=a; a=b; b=temp;} if(b-a < 100.0*epsilon*norm) b=a; - + bool autotick=Step == 0 && N == 0; - - real tickmin=finite(locate.S.tickMin) && (autotick || locate.S.automin) ? + + real tickmin=finite(locate.S.tickMin) && (autotick || locate.S.automin) ? locate.S.Tinv(locate.S.tickMin) : a; real tickmax=finite(locate.S.tickMax) && (autotick || locate.S.automax) ? locate.S.Tinv(locate.S.tickMax) : b; if(tickmin > tickmax) {real temp=tickmin; tickmin=tickmax; tickmax=temp;} - + real inStep=Step; bool calcStep=true; @@ -630,7 +630,7 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, // Try using 2 ticks (otherwise 1); int div=divisor[d+1]; Step=quotient(div,2)*len/div; - calcStep=false; + calcStep=false; if(axiscoverage(2,T,g,locate,Step,side,sign,Size,F,ticklabel, norm,limit)) N=2; else Step=len; @@ -650,7 +650,7 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, } } } - + if(inStep != 0 && !locate.S.automin) { tickmin=floor(tickmin/Step)*Step; len=tickmax-tickmin; @@ -661,13 +661,13 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, if(N == 0) N=(int) (len/Step); else Step=len/N; } - + if(n == 0) { if(step != 0) n=ceil(Step/step); } else step=Step/n; - + b += epsilon*norm; - + if(Size > 0) { for(int i=0; i <= N; ++i) { real val=tickmin+i*Step; @@ -684,22 +684,22 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, } } } - + } else { // Logarithmic string format=F.s; if(F.s == "%") F.s=""; int base=round(locate.S.scale.Tinv(1)); - if(ticklabel == null) + if(ticklabel == null) ticklabel=format == "%" ? Format("") : DefaultLogFormat(base); real a=locate.S.postscale.Tinv(locate.a); real b=locate.S.postscale.Tinv(locate.b); if(a > b) {real temp=a; a=b; b=temp;} - + int first=floor(a-epsilon); int last=ceil(b+epsilon); - + if(N == 0) { N=1; while(N <= last-first) { @@ -708,10 +708,10 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, ++N; } } - + if(N <= 2 && n == 0) n=base; tickvalues.N=N; - + if(N > 0) { for(int i=first-1; i <= last+1; ++i) { if(i >= a && i <= b) @@ -725,14 +725,14 @@ tickvalues generateticks(int sign, Label F="", ticklabel ticklabel=null, } } } - } + } return tickvalues; } // Signature of routines that draw labelled paths with ticks and tick labels. typedef void ticks(frame, transform, Label, pair, path, path, pen, arrowbar, margin, ticklocate, int[], bool opposite=false); - + // Tick construction routine for a user-specified array of tick values. ticks Ticks(int sign, Label F="", ticklabel ticklabel=null, bool beginlabel=true, bool endlabel=true, @@ -741,7 +741,7 @@ ticks Ticks(int sign, Label F="", ticklabel ticklabel=null, real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) { - return new void(frame f, transform t, Label L, pair side, path g, path g2, + return new void(frame f, transform t, Label L, pair side, path g, path g2, pen p, arrowbar arrow, margin margin, ticklocate locate, int[] divisor, bool opposite) { // Use local copy of context variables: @@ -749,28 +749,28 @@ ticks Ticks(int sign, Label F="", ticklabel ticklabel=null, pen pTick=pTick; pen ptick=ptick; ticklabel ticklabel=ticklabel; - + real Size=Size; real size=size; if(Size == 0) Size=Ticksize; if(size == 0) size=ticksize; - + Label L=L.copy(); Label F=F.copy(); L.p(p); F.p(p); if(pTick == nullpen) pTick=p; if(ptick == nullpen) ptick=pTick; - + if(F.align.dir != 0) side=F.align.dir; else if(side == 0) side=F.T*((sign == 1) ? left : right); - + bool ticklabels=false; path G=t*g; path G2=t*g2; - + scalefcn T; - + real a,b; if(locate.S.scale.logarithmic) { a=locate.S.postscale.Tinv(locate.a); @@ -781,11 +781,11 @@ ticks Ticks(int sign, Label F="", ticklabel ticklabel=null, b=locate.S.Tinv(locate.b); T=identity; } - + if(a > b) {real temp=a; a=b; b=temp;} real norm=max(abs(a),abs(b)); - + string format=autoformat(F.s,norm...Ticks); if(F.s == "%") F.s=""; if(ticklabel == null) { @@ -809,7 +809,7 @@ ticks Ticks(int sign, Label F="", ticklabel ticklabel=null, drawtick(f,t,g,g2,locate,val,size,sign,ptick,extend); } endgroup(f); - + if(N == 0) N=1; if(Size > 0 && !opposite) { for(int i=(beginlabel ? 0 : 1); @@ -821,7 +821,7 @@ ticks Ticks(int sign, Label F="", ticklabel ticklabel=null, } } } - if(L.s != "" && !opposite) + if(L.s != "" && !opposite) labelaxis(f,t,L,G,locate,sign,ticklabels); }; } @@ -832,7 +832,7 @@ tickvalues None(tickvalues v) {return v;} // Tickmodifier that removes all ticks in the intervals [a[i],b[i]]. tickmodifier OmitTickIntervals(real[] a, real[] b) { - return new tickvalues(tickvalues v) { + return new tickvalues(tickvalues v) { if(a.length != b.length) abort(differentlengths); void omit(real[] A) { if(A.length != 0) { @@ -939,8 +939,8 @@ ticks Ticks(Label format="", ticklabel ticklabel=null, begin,end,modify,Size,size,extend,pTick,ptick); } -ticks LeftTicks(Label format="", ticklabel ticklabel=null, - bool beginlabel=true, bool endlabel=true, +ticks LeftTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, real[] Ticks, real[] ticks=new real[], real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) @@ -949,8 +949,8 @@ ticks LeftTicks(Label format="", ticklabel ticklabel=null, Ticks,ticks,Size,size,extend,pTick,ptick); } -ticks RightTicks(Label format="", ticklabel ticklabel=null, - bool beginlabel=true, bool endlabel=true, +ticks RightTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, real[] Ticks, real[] ticks=new real[], real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) @@ -959,8 +959,8 @@ ticks RightTicks(Label format="", ticklabel ticklabel=null, Ticks,ticks,Size,size,extend,pTick,ptick); } -ticks Ticks(Label format="", ticklabel ticklabel=null, - bool beginlabel=true, bool endlabel=true, +ticks Ticks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, real[] Ticks, real[] ticks=new real[], real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) @@ -978,18 +978,18 @@ pair tickMin(picture pic) { return minbound(pic.userMin(),(pic.scale.x.tickMin,pic.scale.y.tickMin)); } - + pair tickMax(picture pic) { return maxbound(pic.userMax(),(pic.scale.x.tickMax,pic.scale.y.tickMax)); } - + int Min=-1; int Value=0; int Max=1; int Both=2; -// Structure used to communicate axis and autoscale settings to tick routines. +// Structure used to communicate axis and autoscale settings to tick routines. struct axisT { int type; // -1 = min, 0 = given value, 1 = max, 2 = min/max int type2; // for 3D axis @@ -1062,7 +1062,7 @@ axis Right(bool extend=false) }; } -axis LeftRight(bool extend=false) +axis LeftRight(bool extend=false) { return new void(picture pic, axisT axis) { axis.type=Both; @@ -1134,7 +1134,7 @@ YZero=YZero(); void axis(picture pic=currentpicture, Label L="", path g, path g2=nullpath, pen p=currentpen, ticks ticks, ticklocate locate, arrowbar arrow=None, margin margin=NoMargin, - int[] divisor=new int[], bool above=false, bool opposite=false) + int[] divisor=new int[], bool above=false, bool opposite=false) { Label L=L.copy(); real t=reltime(g,0.5); @@ -1146,9 +1146,9 @@ void axis(picture pic=currentpicture, Label L="", path g, path g2=nullpath, ticks(d,t,L,0,g,g2,p,arrow,margin,locate,divisor,opposite); (above ? add : prepend)(f,t*T*inverse(t)*d); }); - + pic.addPath(g,p); - + if(L.s != "") { frame f; Label L0=L.copy(); @@ -1195,7 +1195,7 @@ void xaxisAt(picture pic=currentpicture, Label L="", axis axis, pic.scale.x.tickMax=mx.max; divisor=mx.divisor; } - + real fuzz=epsilon*max(abs(a.x),abs(b.x)); a -= (fuzz,0); b += (fuzz,0); @@ -1211,8 +1211,8 @@ void xaxisAt(picture pic=currentpicture, Label L="", axis axis, y2=pic.scale.y.automax() ? tickMax(pic).y : pic.userMax().y; y=opposite ? y2 : (pic.scale.y.automin() ? tickMin(pic).y : pic.userMin().y); - } - else if(type == Min) + } + else if(type == Min) y=pic.scale.y.automin() ? tickMin(pic).y : pic.userMin().y; else if(type == Max) y=pic.scale.y.automax() ? tickMax(pic).y : pic.userMax().y; @@ -1229,7 +1229,7 @@ void xaxisAt(picture pic=currentpicture, Label L="", axis axis, pic.addPoint(a,min(p)); pic.addPoint(a,max(p)); } - + if(finite(b)) { pic.addPoint(b,min(p)); pic.addPoint(b,max(p)); @@ -1299,13 +1299,13 @@ void yaxisAt(picture pic=currentpicture, Label L="", axis axis, ticklocate(a.y,b.y,pic.scale.y),divisor,opposite); (above ? add : prepend)(f,t*T*tinv*d); }); - + void bounds() { if(type == Both) { x2=pic.scale.x.automax() ? tickMax(pic).x : pic.userMax().x; - x=opposite ? x2 : + x=opposite ? x2 : (pic.scale.x.automin() ? tickMin(pic).x : pic.userMin().x); - } else if(type == Min) + } else if(type == Min) x=pic.scale.x.automin() ? tickMin(pic).x : pic.userMin().x; else if(type == Max) x=pic.scale.x.automax() ? tickMax(pic).x : pic.userMax().x; @@ -1317,17 +1317,17 @@ void yaxisAt(picture pic=currentpicture, Label L="", axis axis, pair b=(x,Ymax); pair a2=(x2,Ymin); pair b2=(x2,Ymax); - + if(finite(a)) { pic.addPoint(a,min(p)); pic.addPoint(a,max(p)); } - + if(finite(b)) { pic.addPoint(b,min(p)); pic.addPoint(b,max(p)); } - + if(finite(a) && finite(b)) { frame d; ticks(d,pic.scaling(warn=false),L,side, @@ -1361,32 +1361,32 @@ void xlimits(picture pic=currentpicture, real min=-infinity, real max=infinity, bool crop=NoCrop) { if(min > max) return; - + pic.scale.x.automin=min <= -infinity; pic.scale.x.automax=max >= infinity; - + bounds mx; if(pic.scale.x.automin() || pic.scale.x.automax()) mx=autoscale(pic.userMin().x,pic.userMax().x,pic.scale.x.scale); - + if(pic.scale.x.automin) { if(pic.scale.x.automin()) pic.userMinx(mx.min); } else pic.userMinx(min(pic.scale.x.T(min),pic.scale.x.T(max))); - + if(pic.scale.x.automax) { if(pic.scale.x.automax()) pic.userMaxx(mx.max); } else pic.userMaxx(max(pic.scale.x.T(min),pic.scale.x.T(max))); - + if(crop) { pair userMin=pic.userMin(); pair userMax=pic.userMax(); pic.bounds.xclip(userMin.x,userMax.x); pic.clip(userMin, userMax, - new void (frame f, transform t, transform T, pair, pair) { - frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f; - clip(f,T*box(((t*userMin).x,(min(Tinvf)).y), - ((t*userMax).x,(max(Tinvf)).y))); - }); + new void (frame f, transform t, transform T, pair, pair) { + frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f; + clip(f,T*box(((t*userMin).x,(min(Tinvf)).y), + ((t*userMax).x,(max(Tinvf)).y))); + }); } } @@ -1395,37 +1395,37 @@ void ylimits(picture pic=currentpicture, real min=-infinity, real max=infinity, bool crop=NoCrop) { if(min > max) return; - + pic.scale.y.automin=min <= -infinity; pic.scale.y.automax=max >= infinity; - + bounds my; if(pic.scale.y.automin() || pic.scale.y.automax()) my=autoscale(pic.userMin().y,pic.userMax().y,pic.scale.y.scale); - + if(pic.scale.y.automin) { if(pic.scale.y.automin()) pic.userMiny(my.min); } else pic.userMiny(min(pic.scale.y.T(min),pic.scale.y.T(max))); - + if(pic.scale.y.automax) { if(pic.scale.y.automax()) pic.userMaxy(my.max); } else pic.userMaxy(max(pic.scale.y.T(min),pic.scale.y.T(max))); - + if(crop) { pair userMin=pic.userMin(); pair userMax=pic.userMax(); pic.bounds.yclip(userMin.y,userMax.y); - pic.clip(userMin, userMax, - new void (frame f, transform t, transform T, pair, pair) { - frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f; - clip(f,T*box(((min(Tinvf)).x,(t*userMin).y), - ((max(Tinvf)).x,(t*userMax).y))); - }); + pic.clip(userMin, userMax, + new void (frame f, transform t, transform T, pair, pair) { + frame Tinvf=T == identity() ? f : t*inverse(T)*inverse(t)*f; + clip(f,T*box(((min(Tinvf)).x,(t*userMin).y), + ((max(Tinvf)).x,(t*userMax).y))); + }); } } // Crop a picture to the current user-space picture limits. -void crop(picture pic=currentpicture) +void crop(picture pic=currentpicture) { xlimits(pic,false); ylimits(pic,false); @@ -1441,14 +1441,14 @@ void limits(picture pic=currentpicture, pair min, pair max, bool crop=NoCrop) if(crop && pic.userSetx() && pic.userSety()) clip(pic,box(pic.userMin(),pic.userMax())); } - + // Internal routine to autoscale the user limits of a picture. void autoscale(picture pic=currentpicture, axis axis) { if(!pic.scale.set) { bounds mx,my; pic.scale.set=true; - + if(pic.userSetx()) { mx=autoscale(pic.userMin().x,pic.userMax().x,pic.scale.x.scale); if(pic.scale.x.scale.logarithmic && @@ -1459,7 +1459,7 @@ void autoscale(picture pic=currentpicture, axis axis) pic.userMaxx2(ceil(pic.userMax().x)); } } else {mx.min=mx.max=0; pic.scale.set=false;} - + if(pic.userSety()) { my=autoscale(pic.userMin().y,pic.userMax().y,pic.scale.y.scale); if(pic.scale.y.scale.logarithmic && @@ -1470,7 +1470,7 @@ void autoscale(picture pic=currentpicture, axis axis) pic.userMaxy2(ceil(pic.userMax().y)); } } else {my.min=my.max=0; pic.scale.set=false;} - + pic.scale.x.tickMin=mx.min; pic.scale.x.tickMax=mx.max; pic.scale.y.tickMin=my.min; @@ -1487,7 +1487,7 @@ void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero, bool above=false) { if(xmin > xmax) return; - + if(pic.scale.x.automin && xmin > -infinity) pic.scale.x.automin=false; if(pic.scale.x.automax && xmax < infinity) pic.scale.x.automax=false; @@ -1495,20 +1495,20 @@ void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero, axis(pic,axis); autoscale(pic,axis); } - + Label L=L.copy(); bool newticks=false; - + if(xmin != -infinity) { xmin=pic.scale.x.T(xmin); newticks=true; } - + if(xmax != infinity) { xmax=pic.scale.x.T(xmax); newticks=true; } - + if(newticks && pic.userSetx() && ticks != NoTicks) { if(xmin == -infinity) xmin=pic.userMin().x; if(xmax == infinity) xmax=pic.userMax().x; @@ -1517,16 +1517,16 @@ void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero, pic.scale.x.tickMax=mx.max; axis.xdivisor=mx.divisor; } - + axis(pic,axis); - + if(xmin == -infinity && !axis.extend) { if(pic.scale.set) xmin=pic.scale.x.automin() ? pic.scale.x.tickMin : max(pic.scale.x.tickMin,pic.userMin().x); else xmin=pic.userMin().x; } - + if(xmax == infinity && !axis.extend) { if(pic.scale.set) xmax=pic.scale.x.automax() ? pic.scale.x.tickMax : @@ -1536,7 +1536,7 @@ void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero, if(L.defaultposition) L.position(axis.position); L.align(L.align,axis.align); - + xaxisAt(pic,L,axis,xmin,xmax,p,ticks,arrow,margin,above); if(axis.type == Both) xaxisAt(pic,L,axis,xmin,xmax,p,ticks,arrow,margin,above,true); @@ -1552,25 +1552,25 @@ void yaxis(picture pic=currentpicture, Label L="", axis axis=XZero, if(pic.scale.y.automin && ymin > -infinity) pic.scale.y.automin=false; if(pic.scale.y.automax && ymax < infinity) pic.scale.y.automax=false; - + if(!pic.scale.set) { axis(pic,axis); autoscale(pic,axis); } - + Label L=L.copy(); bool newticks=false; - + if(ymin != -infinity) { ymin=pic.scale.y.T(ymin); newticks=true; } - + if(ymax != infinity) { ymax=pic.scale.y.T(ymax); newticks=true; } - + if(newticks && pic.userSety() && ticks != NoTicks) { if(ymin == -infinity) ymin=pic.userMin().y; if(ymax == infinity) ymax=pic.userMax().y; @@ -1579,17 +1579,17 @@ void yaxis(picture pic=currentpicture, Label L="", axis axis=XZero, pic.scale.y.tickMax=my.max; axis.ydivisor=my.divisor; } - + axis(pic,axis); - + if(ymin == -infinity && !axis.extend) { if(pic.scale.set) ymin=pic.scale.y.automin() ? pic.scale.y.tickMin : max(pic.scale.y.tickMin,pic.userMin().y); else ymin=pic.userMin().y; } - - + + if(ymax == infinity && !axis.extend) { if(pic.scale.set) ymax=pic.scale.y.automax() ? pic.scale.y.tickMax : @@ -1599,14 +1599,14 @@ void yaxis(picture pic=currentpicture, Label L="", axis axis=XZero, if(L.defaultposition) L.position(axis.position); L.align(L.align,axis.align); - + if(autorotate && L.defaulttransform) { frame f; add(f,Label(L.s,(0,0),L.p)); - if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p)) + if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p)) L.transform(rotate(90)); } - + yaxisAt(pic,L,axis,ymin,ymax,p,ticks,arrow,margin,above); if(axis.type == Both) yaxisAt(pic,L,axis,ymin,ymax,p,ticks,arrow,margin,above,true); @@ -1627,7 +1627,7 @@ void axes(picture pic=currentpicture, Label xlabel="", Label ylabel="", void xequals(picture pic=currentpicture, Label L="", real x, bool extend=false, real ymin=-infinity, real ymax=infinity, pen p=currentpen, ticks ticks=NoTicks, - arrowbar arrow=None, margin margin=NoMargin, bool above=true) + arrowbar arrow=None, margin margin=NoMargin, bool above=true) { yaxis(pic,L,XEquals(x,extend),ymin,ymax,p,ticks,arrow,margin,above); } @@ -1682,7 +1682,7 @@ void xtick(picture pic=currentpicture, real x, pair dir=N, } void ytick(picture pic=currentpicture, explicit pair z, pair dir=E, - real size=Ticksize, pen p=currentpen) + real size=Ticksize, pen p=currentpen) { tick(pic,z,dir,size,p); } @@ -1799,7 +1799,7 @@ picture secondaryX(picture primary=currentpicture, void f(picture)) bounds a=autoscale(pic.userMin().x,pic.userMax().x,pic.scale.x.scale); real bmin=pic.scale.x.automin() ? a.min : pic.userMin().x; real bmax=pic.scale.x.automax() ? a.max : pic.userMax().x; - + real denom=bmax-bmin; if(denom != 0) { pic.erase(); @@ -1849,7 +1849,7 @@ picture secondaryY(picture primary=currentpicture, void f(picture)) typedef guide graph(pair f(real), real, real, int); typedef guide[] multigraph(pair f(real), real, real, int); - + graph graph(interpolate join) { return new guide(pair f(real), real a, real b, int n) { @@ -2055,7 +2055,7 @@ guide[] graph(picture pic=currentpicture, real[] x, real[] y, bool3[] cond, } // Connect points in z into segments corresponding to consecutive true elements -// of b using interpolation operator join. +// of b using interpolation operator join. path[] segment(pair[] z, bool[] cond, interpolate join=operator --) { checkconditionlength(cond.length,z.length); @@ -2102,7 +2102,7 @@ void errorbar(picture pic, pair z, pair dp, pair dm, pen p=currentpen, if(dmy != dpy) draw(pic,Scale(pic,z+(0,dmy))--Scale(pic,z+(0,dpy)),p, Bars(size)); } - + void errorbars(picture pic=currentpicture, pair[] z, pair[] dp, pair[] dm={}, bool[] cond={}, pen p=currentpen, real size=0) { @@ -2157,13 +2157,13 @@ picture vectorfield(path vector(real), path g, int n, bool truesize=false, real x=(n == 1) ? 0.5 : i/(n-1); if(truesize) draw(relpoint(g,x),pic,vector(x),p,arrow); - else + else draw(pic,shift(relpoint(g,x))*vector(x),p,arrow,margin); } return pic; } -real maxlength(pair a, pair b, int nx, int ny) +real maxlength(pair a, pair b, int nx, int ny) { return min((b.x-a.x)/nx,(b.y-a.y)/ny); } diff --git a/Master/texmf-dist/asymptote/graph3.asy b/Master/texmf-dist/asymptote/graph3.asy index 1fe63490c9b..f690c6a3c10 100644 --- a/Master/texmf-dist/asymptote/graph3.asy +++ b/Master/texmf-dist/asymptote/graph3.asy @@ -9,7 +9,7 @@ direction3 Dir(triple dir) {return new triple(real) {return dir;};} ticklocate ticklocate(real a, real b, autoscaleT S=defaultS, real tickmin=-infinity, real tickmax=infinity, - real time(real)=null, direction3 dir) + real time(real)=null, direction3 dir) { if((valuetime) time == null) time=linear(S.T(),a,b); ticklocate locate; @@ -23,13 +23,13 @@ ticklocate ticklocate(real a, real b, autoscaleT S=defaultS, locate.dir3=dir; return locate; } - + private struct locateT { real t; // tick location time triple V; // tick location in frame coordinates triple pathdir; // path direction in frame coordinates triple dir; // tick direction in frame coordinates - + void dir(transform3 T, path3 g, ticklocate locate, real t) { pathdir=unit(shiftless(T)*dir(g,t)); triple Dir=locate.dir3(t); @@ -60,7 +60,7 @@ void drawtick(picture pic, transform3 T, path3 g, path3 g2, draw(pic,G,p,name="tick"); } -triple ticklabelshift(triple align, pen p=currentpen) +triple ticklabelshift(triple align, pen p=currentpen) { return 0.25*unit(align)*labelmargin(p); } @@ -100,10 +100,10 @@ void labeltick(picture pic, transform3 T, path3 g, if(s != "") label(pic,F.defaulttransform3 ? baseline(s,baselinetemplate) : F.T3*s,v, align,F.p); -} +} // Add axis label L to frame f. -void labelaxis(picture pic, transform3 T, Label L, path3 g, +void labelaxis(picture pic, transform3 T, Label L, path3 g, ticklocate locate=null, int sign=1, bool ticklabels=false) { triple m=pic.min(identity4); @@ -118,7 +118,7 @@ void labelaxis(picture pic, transform3 T, Label L, path3 g, picture F; if(L.align.dir3 == O) align=unit(invert(L.align.dir,v,P))*abs(L.align.dir); - + if(ticklabels && locate != null && piecewisestraight(g)) { locateT locate1; locate1.dir(T,g,locate,t); @@ -171,25 +171,25 @@ ticks3 Ticks3(int sign, Label F="", ticklabel ticklabel=null, pen pTick=pTick; pen ptick=ptick; ticklabel ticklabel=ticklabel; - + real Size=Size; real size=size; if(Size == 0) Size=Ticksize; if(size == 0) size=ticksize; - + Label L=L.copy(); Label F=F.copy(); L.p(p); F.p(p); if(pTick == nullpen) pTick=p; if(ptick == nullpen) ptick=pTick; - + bool ticklabels=false; path3 G=t*g; path3 G2=t*g2; - + scalefcn T; - + real a,b; if(locate.S.scale.logarithmic) { a=locate.S.postscale.Tinv(locate.a); @@ -200,11 +200,11 @@ ticks3 Ticks3(int sign, Label F="", ticklabel ticklabel=null, b=locate.S.Tinv(locate.b); T=identity; } - + if(a > b) {real temp=a; a=b; b=temp;} real norm=max(abs(a),abs(b)); - + string format=autoformat(F.s,norm...Ticks); if(F.s == "%") F.s=""; if(ticklabel == null) { @@ -324,8 +324,8 @@ ticks3 InOutTicks(Label format="", ticklabel ticklabel=null, begin,end,modify,Size,size,extend,pTick,ptick); } -ticks3 InTicks(Label format="", ticklabel ticklabel=null, - bool beginlabel=true, bool endlabel=true, +ticks3 InTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, real[] Ticks, real[] ticks=new real[], real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) @@ -334,8 +334,8 @@ ticks3 InTicks(Label format="", ticklabel ticklabel=null, Ticks,ticks,Size,size,extend,pTick,ptick); } -ticks3 OutTicks(Label format="", ticklabel ticklabel=null, - bool beginlabel=true, bool endlabel=true, +ticks3 OutTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, real[] Ticks, real[] ticks=new real[], real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) @@ -344,8 +344,8 @@ ticks3 OutTicks(Label format="", ticklabel ticklabel=null, Ticks,ticks,Size,size,extend,pTick,ptick); } -ticks3 InOutTicks(Label format="", ticklabel ticklabel=null, - bool beginlabel=true, bool endlabel=true, +ticks3 InOutTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, real[] Ticks, real[] ticks=new real[], real Size=0, real size=0, bool extend=false, pen pTick=nullpen, pen ptick=nullpen) @@ -362,15 +362,15 @@ InOutTicks=InOutTicks(); triple tickMin3(picture pic) { return minbound(pic.userMin(),(pic.scale.x.tickMin,pic.scale.y.tickMin, - pic.scale.z.tickMin)); + pic.scale.z.tickMin)); } - + triple tickMax3(picture pic) { return maxbound(pic.userMax(),(pic.scale.x.tickMax,pic.scale.y.tickMax, - pic.scale.z.tickMax)); + pic.scale.z.tickMax)); } - + axis Bounds(int type=Both, int type2=Both, triple align=O, bool extend=false) { return new void(picture pic, axisT axis) { @@ -470,22 +470,22 @@ XYZero=XYZero(); void axis(picture pic=currentpicture, Label L="", path3 g, path3 g2=nullpath3, pen p=currentpen, ticks3 ticks, ticklocate locate, arrowbar3 arrow=None, margin3 margin=NoMargin3, - int[] divisor=new int[], bool above=false, bool opposite=false) + int[] divisor=new int[], bool above=false, bool opposite=false) { Label L=L.copy(); real t=reltime(g,0.5); if(L.defaultposition) L.position(t); divisor=copy(divisor); locate=locate.copy(); - + pic.add(new void (picture f, transform3 t, transform3 T, triple, triple) { picture d; ticks(d,t,L,g,g2,p,arrow,margin,locate,divisor,opposite,true); add(f,t*T*inverse(t)*d); },above=above); - + addPath(pic,g,p); - + if(L.s != "") { frame f; Label L0=L.copy(); @@ -552,7 +552,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis, y0=y2; z0=z; } - + triple a2=xmin == -infinity ? tinv*(lb.x-min3(p).x,ytrans(t,y0), ztrans(t,z0)) : (xmin,y0,z0); triple b2=xmax == infinity ? tinv*(rt.x-max3(p).x,ytrans(t,y0), @@ -564,7 +564,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.scale.x.tickMax=mx.max; divisor=mx.divisor; } - + triple fuzz=X*epsilon*max(abs(a.x),abs(b.x)); a -= fuzz; b += fuzz; @@ -584,7 +584,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis, y=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y; else if(type == Both) { y2=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y; - y=opposite ? y2 : + y=opposite ? y2 : (pic.scale.y.automin() ? tickMin3(pic).y : pic.userMin().y); } @@ -594,7 +594,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis, z=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z; else if(type2 == Both) { z2=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z; - z=opposite2 ? z2 : + z=opposite2 ? z2 : (pic.scale.z.automin() ? tickMin3(pic).z : pic.userMin().z); } @@ -610,7 +610,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.addPoint(a,min3(p)); pic.addPoint(a,max3(p)); } - + if(finite(b)) { pic.addPoint(b,min3(p)); pic.addPoint(b,max3(p)); @@ -650,7 +650,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.scale.x.bound.push(bounds); } -// An internal routine to draw an x axis at a particular y value. +// An internal routine to draw a y axis at a particular value. void yaxis3At(picture pic=currentpicture, Label L="", axis axis, real ymin=-infinity, real ymax=infinity, pen p=currentpen, ticks3 ticks=NoTicks3, @@ -685,19 +685,19 @@ void yaxis3At(picture pic=currentpicture, Label L="", axis axis, x0=x2; z0=z; } - + triple a2=ymin == -infinity ? tinv*(xtrans(t,x0),lb.y-min3(p).y, ztrans(t,z0)) : (x0,ymin,z0); triple b2=ymax == infinity ? tinv*(xtrans(t,x0),rt.y-max3(p).y, ztrans(t,z0)) : (x0,ymax,z0); - + if(ymin == -infinity || ymax == infinity) { bounds my=autoscale(a.y,b.y,pic.scale.y.scale); pic.scale.y.tickMin=my.min; pic.scale.y.tickMax=my.max; divisor=my.divisor; } - + triple fuzz=Y*epsilon*max(abs(a.y),abs(b.y)); a -= fuzz; b += fuzz; @@ -717,7 +717,7 @@ void yaxis3At(picture pic=currentpicture, Label L="", axis axis, x=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x; else if(type == Both) { x2=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x; - x=opposite ? x2 : + x=opposite ? x2 : (pic.scale.x.automin() ? tickMin3(pic).x : pic.userMin().x); } @@ -727,7 +727,7 @@ void yaxis3At(picture pic=currentpicture, Label L="", axis axis, z=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z; else if(type2 == Both) { z2=pic.scale.z.automax() ? tickMax3(pic).z : pic.userMax().z; - z=opposite2 ? z2 : + z=opposite2 ? z2 : (pic.scale.z.automin() ? tickMin3(pic).z : pic.userMin().z); } @@ -743,7 +743,7 @@ void yaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.addPoint(a,min3(p)); pic.addPoint(a,max3(p)); } - + if(finite(b)) { pic.addPoint(b,min3(p)); pic.addPoint(b,max3(p)); @@ -783,7 +783,7 @@ void yaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.scale.y.bound.push(bounds); } -// An internal routine to draw an x axis at a particular y value. +// An internal routine to draw a z axis at a particular value. void zaxis3At(picture pic=currentpicture, Label L="", axis axis, real zmin=-infinity, real zmax=infinity, pen p=currentpen, ticks3 ticks=NoTicks3, @@ -818,7 +818,7 @@ void zaxis3At(picture pic=currentpicture, Label L="", axis axis, x0=x2; y0=y; } - + triple a2=zmin == -infinity ? tinv*(xtrans(t,x0),ytrans(t,y0), lb.z-min3(p).z) : (x0,y0,zmin); triple b2=zmax == infinity ? tinv*(xtrans(t,x0),ytrans(t,y0), @@ -830,7 +830,7 @@ void zaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.scale.z.tickMax=mz.max; divisor=mz.divisor; } - + triple fuzz=Z*epsilon*max(abs(a.z),abs(b.z)); a -= fuzz; b += fuzz; @@ -850,7 +850,7 @@ void zaxis3At(picture pic=currentpicture, Label L="", axis axis, x=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x; else if(type == Both) { x2=pic.scale.x.automax() ? tickMax3(pic).x : pic.userMax().x; - x=opposite ? x2 : + x=opposite ? x2 : (pic.scale.x.automin() ? tickMin3(pic).x : pic.userMin().x); } @@ -860,7 +860,7 @@ void zaxis3At(picture pic=currentpicture, Label L="", axis axis, y=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y; else if(type2 == Both) { y2=pic.scale.y.automax() ? tickMax3(pic).y : pic.userMax().y; - y=opposite2 ? y2 : + y=opposite2 ? y2 : (pic.scale.y.automin() ? tickMin3(pic).y : pic.userMin().y); } @@ -876,7 +876,7 @@ void zaxis3At(picture pic=currentpicture, Label L="", axis axis, pic.addPoint(a,min3(p)); pic.addPoint(a,max3(p)); } - + if(finite(b)) { pic.addPoint(b,min3(p)); pic.addPoint(b,max3(p)); @@ -934,7 +934,7 @@ void autoscale3(picture pic=currentpicture, axis axis) pic.userMaxz3(ceil(pic.userMax().z)); } } else {mz.min=mz.max=0; pic.scale.set=false;} - + pic.scale.z.tickMin=mz.min; pic.scale.z.tickMax=mz.max; axis.zdivisor=mz.divisor; @@ -948,7 +948,7 @@ void xaxis3(picture pic=currentpicture, Label L="", axis axis=YZZero, arrowbar3 arrow=None, margin3 margin=NoMargin3, bool above=false) { if(xmin > xmax) return; - + if(pic.scale.x.automin && xmin > -infinity) pic.scale.x.automin=false; if(pic.scale.x.automax && xmax < infinity) pic.scale.x.automax=false; @@ -956,19 +956,19 @@ void xaxis3(picture pic=currentpicture, Label L="", axis axis=YZZero, axis(pic,axis); autoscale3(pic,axis); } - + bool newticks=false; - + if(xmin != -infinity) { xmin=pic.scale.x.T(xmin); newticks=true; } - + if(xmax != infinity) { xmax=pic.scale.x.T(xmax); newticks=true; } - + if(newticks && pic.userSetx() && ticks != NoTicks3) { if(xmin == -infinity) xmin=pic.userMin().x; if(xmax == infinity) xmax=pic.userMax().x; @@ -977,16 +977,16 @@ void xaxis3(picture pic=currentpicture, Label L="", axis axis=YZZero, pic.scale.x.tickMax=mx.max; axis.xdivisor=mx.divisor; } - + axis(pic,axis); - + if(xmin == -infinity && !axis.extend) { if(pic.scale.set) xmin=pic.scale.x.automin() ? pic.scale.x.tickMin : max(pic.scale.x.tickMin,pic.userMin().x); else xmin=pic.userMin().x; } - + if(xmax == infinity && !axis.extend) { if(pic.scale.set) xmax=pic.scale.x.automax() ? pic.scale.x.tickMax : @@ -998,7 +998,7 @@ void xaxis3(picture pic=currentpicture, Label L="", axis axis=YZZero, L=L.copy(); L.position(axis.position); } - + bool back=false; if(axis.type == Both) { triple v=currentprojection.normal; @@ -1025,24 +1025,24 @@ void yaxis3(picture pic=currentpicture, Label L="", axis axis=XZZero, if(pic.scale.y.automin && ymin > -infinity) pic.scale.y.automin=false; if(pic.scale.y.automax && ymax < infinity) pic.scale.y.automax=false; - + if(!pic.scale.set) { axis(pic,axis); autoscale3(pic,axis); } - + bool newticks=false; - + if(ymin != -infinity) { ymin=pic.scale.y.T(ymin); newticks=true; } - + if(ymax != infinity) { ymax=pic.scale.y.T(ymax); newticks=true; } - + if(newticks && pic.userSety() && ticks != NoTicks3) { if(ymin == -infinity) ymin=pic.userMin().y; if(ymax == infinity) ymax=pic.userMax().y; @@ -1051,17 +1051,17 @@ void yaxis3(picture pic=currentpicture, Label L="", axis axis=XZZero, pic.scale.y.tickMax=my.max; axis.ydivisor=my.divisor; } - + axis(pic,axis); - + if(ymin == -infinity && !axis.extend) { if(pic.scale.set) ymin=pic.scale.y.automin() ? pic.scale.y.tickMin : max(pic.scale.y.tickMin,pic.userMin().y); else ymin=pic.userMin().y; } - - + + if(ymax == infinity && !axis.extend) { if(pic.scale.set) ymax=pic.scale.y.automax() ? pic.scale.y.tickMax : @@ -1073,7 +1073,7 @@ void yaxis3(picture pic=currentpicture, Label L="", axis axis=XZZero, L=L.copy(); L.position(axis.position); } - + bool back=false; if(axis.type == Both) { triple v=currentprojection.normal; @@ -1100,24 +1100,24 @@ void zaxis3(picture pic=currentpicture, Label L="", axis axis=XYZero, if(pic.scale.z.automin && zmin > -infinity) pic.scale.z.automin=false; if(pic.scale.z.automax && zmax < infinity) pic.scale.z.automax=false; - + if(!pic.scale.set) { axis(pic,axis); autoscale3(pic,axis); } - + bool newticks=false; - + if(zmin != -infinity) { zmin=pic.scale.z.T(zmin); newticks=true; } - + if(zmax != infinity) { zmax=pic.scale.z.T(zmax); newticks=true; } - + if(newticks && pic.userSetz() && ticks != NoTicks3) { if(zmin == -infinity) zmin=pic.userMin().z; if(zmax == infinity) zmax=pic.userMax().z; @@ -1126,16 +1126,16 @@ void zaxis3(picture pic=currentpicture, Label L="", axis axis=XYZero, pic.scale.z.tickMax=mz.max; axis.zdivisor=mz.divisor; } - + axis(pic,axis); - + if(zmin == -infinity && !axis.extend) { if(pic.scale.set) zmin=pic.scale.z.automin() ? pic.scale.z.tickMin : max(pic.scale.z.tickMin,pic.userMin().z); else zmin=pic.userMin().z; } - + if(zmax == infinity && !axis.extend) { if(pic.scale.set) zmax=pic.scale.z.automax() ? pic.scale.z.tickMax : @@ -1147,7 +1147,7 @@ void zaxis3(picture pic=currentpicture, Label L="", axis axis=XYZero, L=L.copy(); L.position(axis.position); } - + bool back=false; if(axis.type == Both) { triple v=currentprojection.vector(); @@ -1169,18 +1169,18 @@ void zlimits(picture pic=currentpicture, real min=-infinity, real max=infinity, bool crop=NoCrop) { if(min > max) return; - + pic.scale.z.automin=min <= -infinity; pic.scale.z.automax=max >= infinity; - + bounds mz; if(pic.scale.z.automin() || pic.scale.z.automax()) mz=autoscale(pic.userMin().z,pic.userMax().z,pic.scale.z.scale); - + if(pic.scale.z.automin) { if(pic.scale.z.automin()) pic.userMinz(mz.min); } else pic.userMinz(min(pic.scale.z.T(min),pic.scale.z.T(max))); - + if(pic.scale.z.automax) { if(pic.scale.z.automax()) pic.userMaxz(mz.max); } else pic.userMaxz(max(pic.scale.z.T(min),pic.scale.z.T(max))); @@ -1193,10 +1193,10 @@ void limits(picture pic=currentpicture, triple min, triple max) ylimits(pic,min.y,max.y); zlimits(pic,min.z,max.z); } - + // Draw x, y and z axes. void axes3(picture pic=currentpicture, - Label xlabel="", Label ylabel="", Label zlabel="", + Label xlabel="", Label ylabel="", Label zlabel="", bool extend=false, triple min=(-infinity,-infinity,-infinity), triple max=(infinity,infinity,infinity), @@ -1212,11 +1212,50 @@ triple Scale(picture pic=currentpicture, triple v) return (pic.scale.x.T(v.x),pic.scale.y.T(v.y),pic.scale.z.T(v.z)); } +triple[][] Scale(picture pic=currentpicture, triple[][] P) +{ + triple[][] Q=new triple[P.length][]; + for(int i=0; i < P.length; ++i) { + triple[] Pi=P[i]; + Q[i]=new triple[Pi.length]; + for(int j=0; j < Pi.length; ++j) + Q[i][j]=Scale(pic,Pi[j]); + } + return Q; +} + +real ScaleX(picture pic=currentpicture, real x) +{ + return pic.scale.x.T(x); +} + +real ScaleY(picture pic=currentpicture, real y) +{ + return pic.scale.y.T(y); +} + real ScaleZ(picture pic=currentpicture, real z) { return pic.scale.z.T(z); } +real[][] ScaleZ(picture pic=currentpicture, real[][] P) +{ + real[][] Q=new real[P.length][]; + for(int i=0; i < P.length; ++i) { + real[] Pi=P[i]; + Q[i]=new real[Pi.length]; + for(int j=0; j < Pi.length; ++j) + Q[i][j]=ScaleZ(pic,Pi[j]); + } + return Q; +} + +real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n) +{ + return map(Tinv,uniform(T(a),T(b),n)); +} + // Draw a tick of length size at triple v in direction dir using pen p. void tick(picture pic=currentpicture, triple v, triple dir, real size=Ticksize, pen p=currentpen) @@ -1240,11 +1279,11 @@ void xtick3(picture pic=currentpicture, real x, triple dir=Y, real size=Ticksize, pen p=currentpen) { tick(pic,(x,pic.scale.y.scale.logarithmic ? 1 : 0, - pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p); + pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p); } void ytick(picture pic=currentpicture, triple v, triple dir=X, - real size=Ticksize, pen p=currentpen) + real size=Ticksize, pen p=currentpen) { tick(pic,v,dir,size,p); } @@ -1257,7 +1296,7 @@ void ytick3(picture pic=currentpicture, real y, triple dir=X, } void ztick(picture pic=currentpicture, triple v, triple dir=X, - real size=Ticksize, pen p=currentpen) + real size=Ticksize, pen p=currentpen) { xtick(pic,v,dir,size,p); } @@ -1294,7 +1333,7 @@ void xtick3(picture pic=currentpicture, Label L, real x, triple dir=Y, string format="", real size=Ticksize, pen p=currentpen) { xtick(pic,L,(x,pic.scale.y.scale.logarithmic ? 1 : 0, - pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p); + pic.scale.z.scale.logarithmic ? 1 : 0),dir,size,p); } void ytick(picture pic=currentpicture, Label L, triple v, triple dir=X, @@ -1307,7 +1346,7 @@ void ytick3(picture pic=currentpicture, Label L, real y, triple dir=X, string format="", real size=Ticksize, pen p=currentpen) { xtick(pic,L,(pic.scale.x.scale.logarithmic ? 1 : 0,y, - pic.scale.z.scale.logarithmic ? 1 : 0),dir,format,size,p); + pic.scale.z.scale.logarithmic ? 1 : 0),dir,format,size,p); } void ztick(picture pic=currentpicture, Label L, triple v, triple dir=X, @@ -1320,7 +1359,7 @@ void ztick3(picture pic=currentpicture, Label L, real z, triple dir=X, string format="", real size=Ticksize, pen p=currentpen) { xtick(pic,L,(pic.scale.x.scale.logarithmic ? 1 : 0, - pic.scale.z.scale.logarithmic ? 1 : 0,z),dir,format,size,p); + pic.scale.z.scale.logarithmic ? 1 : 0,z),dir,format,size,p); } private void label(picture pic, Label L, triple v, real x, align align, @@ -1416,7 +1455,7 @@ multigraph graph(interpolate3 join, bool3 cond(real)) guide3 Straight(... guide3[])=operator --; guide3 Spline(... guide3[])=operator ..; - + guide3 graph(picture pic=currentpicture, real x(real), real y(real), real z(real), real a, real b, int n=ngraph, interpolate3 join=operator --) @@ -1519,12 +1558,12 @@ guide3 graph(triple F(path, real), path p, int n=1, guide3 graph(triple F(pair), path p, int n=1, interpolate3 join=operator --) { - return graph(new triple(path p, real position) + return graph(new triple(path p, real position) {return F(point(p,position));},p,n,join); } guide3 graph(picture pic=currentpicture, real f(pair), path p, int n=1, - interpolate3 join=operator --) + interpolate3 join=operator --) { return graph(new triple(pair z) {return Scale(pic,(z.x,z.y,f(z)));},p,n, join); @@ -1538,7 +1577,7 @@ guide3 graph(real f(pair), path p, int n=1, real T(pair), } // Connect points in v into segments corresponding to consecutive true elements -// of b using interpolation operator join. +// of b using interpolation operator join. path3[] segment(triple[] v, bool[] cond, interpolate3 join=operator --) { checkconditionlength(cond.length,v.length); @@ -1596,13 +1635,13 @@ bool vperiodic(triple[][] a) { } // return the surface described by a matrix f -surface surface(triple[][] f, bool[][] cond={}) +surface surface(picture pic=currentpicture, triple[][] f, bool[][] cond={}) { if(!rectangular(f)) abort("matrix is not rectangular"); - + int nx=f.length-1; int ny=nx > 0 ? f[0].length-1 : 0; - + bool all=cond.length == 0; int count; @@ -1632,7 +1671,11 @@ surface surface(triple[][] f, bool[][] cond={}) int[] indexi=s.index[i]; for(int j=0; j < ny; ++j) { if(all || (condi[j] && condi[j+1] && condp[j] && condp[j+1])) - s.s[++k]=patch(new triple[] {fi[j],fp[j],fp[j+1],fi[j+1]}); + s.s[++k]=patch(new triple[] { + Scale(pic,fi[j]), + Scale(pic,fp[j]), + Scale(pic,fp[j+1]), + Scale(pic,fi[j+1])}); indexi[j]=k; } } @@ -1708,14 +1751,15 @@ surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real zppmppp=zpp-hx*pp[jp]; real zijqij=zij+hy*qi[j]; real zpjqpj=zpj+hy*qp[j]; - + s.s[k]=patch(new triple[][] { - {(xi,yj,zij),(xi,y1,zijqij),(xi,y2,zip-qip),(xi,yp,zip)}, - {(x1,yj,zij+pij),(x1,y1,zijqij+pij+hxy*ri[j]), - (x1,y2,zippip-qip-hxy*ri[jp]),(x1,yp,zippip)}, - {(x2,yj,zpj-ppj),(x2,y1,zpjqpj-ppj-hxy*rp[j]), - (x2,y2,zppmppp-qpp+hxy*rp[jp]),(x2,yp,zppmppp)}, - {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}},copy=false); + {(xi,yj,zij),(xi,y1,zijqij),(xi,y2,zip-qip),(xi,yp,zip)}, + {(x1,yj,zij+pij),(x1,y1,zijqij+pij+hxy*ri[j]), + (x1,y2,zippip-qip-hxy*ri[jp]),(x1,yp,zippip)}, + {(x2,yj,zpj-ppj),(x2,y1,zpjqpj-ppj-hxy*rp[j]), + (x2,y2,zppmppp-qpp+hxy*rp[jp]),(x2,yp,zppmppp)}, + {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}}, + copy=false); indexi[j]=k; ++k; } @@ -1787,11 +1831,11 @@ private real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r, real zpjqpj=zpj+hy*qp[j]; s[k]=new real[][] {{zij,zijqij,zip-qip,zip}, - {zij+pij,zijqij+pij+hxy*ri[j], - zippip-qip-hxy*ri[jp],zippip}, - {zpj-ppj,zpjqpj-ppj-hxy*rp[j], - zppmppp-qpp+hxy*rp[jp],zppmppp}, - {zpj,zpjqpj,zpp-qpp,zpp}}; + {zij+pij,zijqij+pij+hxy*ri[j], + zippip-qip-hxy*ri[jp],zippip}, + {zpj-ppj,zpjqpj-ppj-hxy*rp[j], + zppmppp-qpp+hxy*rp[jp],zppmppp}, + {zpj,zpjqpj,zpp-qpp,zpp}}; ++k; } } @@ -1831,10 +1875,15 @@ real[][][] bispline(real[][] f, real[] x, real[] y, // return the surface described by a real matrix f, interpolated with // xsplinetype and ysplinetype. -surface surface(real[][] f, real[] x, real[] y, - splinetype xsplinetype=null, splinetype ysplinetype=xsplinetype, +surface surface(picture pic=currentpicture, real[][] f, real[] x, real[] y, + splinetype xsplinetype=null, + splinetype ysplinetype=xsplinetype, bool[][] cond={}) { + real[][] f=ScaleZ(pic,f); + real[] x=map(pic.scale.x.T,x); + real[] y=map(pic.scale.y.T,y); + real epsilon=sqrtEpsilon*norm(y); if(xsplinetype == null) xsplinetype=(abs(x[0]-x[x.length-1]) <= epsilon) ? periodic : notaknot; @@ -1863,8 +1912,9 @@ surface surface(real[][] f, real[] x, real[] y, // return the surface described by a real matrix f, interpolated with // xsplinetype and ysplinetype. -surface surface(real[][] f, pair a, pair b, splinetype xsplinetype, - splinetype ysplinetype=xsplinetype, bool[][] cond={}) +surface surface(picture pic=currentpicture, real[][] f, pair a, pair b, + splinetype xsplinetype, splinetype ysplinetype=xsplinetype, + bool[][] cond={}) { if(!rectangular(f)) abort("matrix is not rectangular"); @@ -1873,13 +1923,14 @@ surface surface(real[][] f, pair a, pair b, splinetype xsplinetype, if(nx == 0 || ny == 0) return nullsurface; - real[] x=uniform(a.x,b.x,nx); - real[] y=uniform(a.y,b.y,ny); - return surface(f,x,y,xsplinetype,ysplinetype,cond); + real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nx); + real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,ny); + return surface(pic,f,x,y,xsplinetype,ysplinetype,cond); } // return the surface described by a real matrix f, interpolated linearly. -surface surface(real[][] f, pair a, pair b, bool[][] cond={}) +surface surface(picture pic=currentpicture, real[][] f, pair a, pair b, + bool[][] cond={}) { if(!rectangular(f)) abort("matrix is not rectangular"); @@ -1891,22 +1942,25 @@ surface surface(real[][] f, pair a, pair b, bool[][] cond={}) bool all=cond.length == 0; triple[][] v=new triple[nx+1][ny+1]; + + pair a=Scale(pic,a); + pair b=Scale(pic,b); for(int i=0; i <= nx; ++i) { - real x=interp(a.x,b.x,i/nx); + real x=pic.scale.x.Tinv(interp(a.x,b.x,i/nx)); bool[] condi=all ? null : cond[i]; triple[] vi=v[i]; real[] fi=f[i]; for(int j=0; j <= ny; ++j) if(all || condi[j]) - vi[j]=(x,interp(a.y,b.y,j/ny),fi[j]); + vi[j]=(x,pic.scale.y.Tinv(interp(a.y,b.y,j/ny)),fi[j]); } - return surface(v,cond); + return surface(pic,v,cond); } // return the surface described by a parametric function f over box(a,b), // interpolated linearly. -surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu, - bool cond(pair z)=null) +surface surface(picture pic=currentpicture, triple f(pair z), pair a, pair b, + int nu=nmesh, int nv=nu, bool cond(pair z)=null) { if(nu <= 0 || nv <= 0) return nullsurface; @@ -1921,23 +1975,25 @@ surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu, triple[][] v=new triple[nu+1][nv+1]; + pair a=Scale(pic,a); + pair b=Scale(pic,b); for(int i=0; i <= nu; ++i) { - real x=interp(a.x,b.x,i*du); + real x=pic.scale.x.Tinv(interp(a.x,b.x,i*du)); bool[] activei=all ? null : active[i]; triple[] vi=v[i]; for(int j=0; j <= nv; ++j) { - pair z=(x,interp(a.y,b.y,j*dv)); + pair z=(x,pic.scale.y.Tinv(interp(a.y,b.y,j*dv))); if(all || (activei[j]=cond(z))) vi[j]=f(z); } } - return surface(v,active); + return surface(pic,v,active); } - + // return the surface described by a parametric function f evaluated at u and v // and interpolated with usplinetype and vsplinetype. -surface surface(triple f(pair z), real[] u, real[] v, - splinetype[] usplinetype, splinetype[] vsplinetype=Spline, - bool cond(pair z)=null) +surface surface(picture pic=currentpicture, triple f(pair z), + real[] u, real[] v, splinetype[] usplinetype, + splinetype[] vsplinetype=Spline, bool cond(pair z)=null) { int nu=u.length-1; int nv=v.length-1; @@ -1960,7 +2016,7 @@ surface surface(triple f(pair z), real[] u, real[] v, for(int j=0; j <= nv; ++j) { pair z=(ui,v[j]); if(!all) activei[j]=cond(z); - triple f=f(z); + triple f=Scale(pic,f(z)); fxi[j]=f.x; fyi[j]=f.y; fzi[j]=f.z; @@ -2020,27 +2076,30 @@ surface surface(triple f(pair z), real[] u, real[] v, // return the surface described by a parametric function f over box(a,b), // interpolated with usplinetype and vsplinetype. -surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu, +surface surface(picture pic=currentpicture, triple f(pair z), pair a, pair b, + int nu=nmesh, int nv=nu, splinetype[] usplinetype, splinetype[] vsplinetype=Spline, bool cond(pair z)=null) { - return surface(f,uniform(a.x,b.x,nu),uniform(a.y,b.y,nv), - usplinetype,vsplinetype,cond); + real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nu); + real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,nv); + return surface(pic,f,x,y,usplinetype,vsplinetype,cond); } // return the surface described by a real function f over box(a,b), // interpolated linearly. -surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx, - bool cond(pair z)=null) +surface surface(picture pic=currentpicture, real f(pair z), pair a, pair b, + int nx=nmesh, int ny=nx, bool cond(pair z)=null) { - return surface(new triple(pair z) {return (z.x,z.y,f(z));},a,b,nx,ny,cond); + return surface(pic,new triple(pair z) {return (z.x,z.y,f(z));},a,b,nx,ny, + cond); } // return the surface described by a real function f over box(a,b), // interpolated with xsplinetype and ysplinetype. -surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx, - splinetype xsplinetype, splinetype ysplinetype=xsplinetype, - bool cond(pair z)=null) +surface surface(picture pic=currentpicture, real f(pair z), pair a, pair b, + int nx=nmesh, int ny=nx, splinetype xsplinetype, + splinetype ysplinetype=xsplinetype, bool cond(pair z)=null) { bool[][] active; bool all=cond == null; @@ -2052,8 +2111,8 @@ surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx, pair dz=(dx,dy); real[][] F=new real[nx+1][ny+1]; - real[] x=uniform(a.x,b.x,nx); - real[] y=uniform(a.y,b.y,ny); + real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nx); + real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,ny); for(int i=0; i <= nx; ++i) { bool[] activei=all ? null : active[i]; real[] Fi=F[i]; @@ -2064,7 +2123,7 @@ surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx, if(!all) activei[j]=cond(z); } } - return surface(F,x,y,xsplinetype,ysplinetype,active); + return surface(pic,F,x,y,xsplinetype,ysplinetype,active); } guide3[][] lift(real f(real x, real y), guide[][] g, @@ -2128,7 +2187,7 @@ void draw(picture pic=currentpicture, Label[] L=new Label[], render,interaction); } -real maxlength(triple f(pair z), pair a, pair b, int nu, int nv) +real maxlength(triple f(pair z), pair a, pair b, int nu, int nv) { return min(abs(f((b.x,a.y))-f(a))/nu,abs(f((a.x,b.y))-f(a))/nv); } diff --git a/Master/texmf-dist/asymptote/graph_splinetype.asy b/Master/texmf-dist/asymptote/graph_splinetype.asy index 02f780ca02e..77e459d47e2 100644 --- a/Master/texmf-dist/asymptote/graph_splinetype.asy +++ b/Master/texmf-dist/asymptote/graph_splinetype.asy @@ -13,7 +13,7 @@ void checklengths(int x, int y, string text=differentlengths) abort(text+": "+string(x)+" != "+string(y)); } -void checkincreasing(real[] x) +void checkincreasing(real[] x) { if(!increasing(x,true)) abort("strictly increasing array expected"); @@ -114,7 +114,7 @@ real[] periodic(real[] x, real[] y) // Standard cubic spline interpolation with the natural condition // s''(a)=s''(b)=0. // if n=2, linear interpolation is returned -// Don't use the natural type unless the underlying function +// Don't use the natural type unless the underlying function // has zero second end points derivatives. real[] natural(real[] x, real[] y) { @@ -186,25 +186,25 @@ splinetype clamped(real slopea, real slopeb) // Piecewise Cubic Hermite Interpolating Polynomial (PCHIP) // Modified MATLAB code -// [1] Fritsch, F. N. and R. E. Carlson, -// "Monotone Piecewise Cubic Interpolation," +// [1] Fritsch, F. N. and R. E. Carlson, +// "Monotone Piecewise Cubic Interpolation," // SIAM J. Numerical Analysis, Vol. 17, 1980, pp.238-246. -// [2] Kahaner, David, Cleve Moler, Stephen Nash, +// [2] Kahaner, David, Cleve Moler, Stephen Nash, // Numerical Methods and Software, Prentice Hall, 1988. -real[] monotonic(real[] x, real[] y) +real[] monotonic(real[] x, real[] y) { - int n=x.length; + int n=x.length; checklengths(n,y.length); checkincreasing(x); - real[] d=new real[n]; + real[] d=new real[n]; if(n > 2) { real[] h=new real[n-1]; real[] del=new real[n-1]; for(int i=0; i < n-1; ++i) { - h[i]=x[i+1]-x[i]; - del[i]=(y[i+1]-y[i])/h[i]; - } - int j=0; + h[i]=x[i+1]-x[i]; + del[i]=(y[i+1]-y[i])/h[i]; + } + int j=0; int k[]=new int[]; for(int i=0; i < n-2; ++i) if((sgn(del[i])*sgn(del[i+1])) > 0) {k[j]=i; j=j+1;} @@ -220,10 +220,10 @@ real[] monotonic(real[] x, real[] y) w2[i]=(h[k[i]+1]+hs[i])/(3*hs[i]); dmax[i]=max(abs(del[k[i]]),abs(del[k[i]+1])); dmin[i]=min(abs(del[k[i]]),abs(del[k[i]+1])); - } + } for(int i=0; i < n; ++i) d[i]=0; for(int i=0; i < j; ++i) - d[k[i]+1]=dmin[i]/(w1[i]*(del[k[i]]/dmax[i])+w2[i]*(del[k[i]+1]/dmax[i])); + d[k[i]+1]=dmin[i]/(w1[i]*(del[k[i]]/dmax[i])+w2[i]*(del[k[i]+1]/dmax[i])); d[0]=((2*h[0]+h[1])*del[0]-h[0]*del[1])/(h[0]+h[1]); if(sgn(d[0]) != sgn(del[0])) {d[0]=0;} else if((sgn(del[0]) != sgn(del[1])) && (abs(d[0]) > abs(3*del[0]))) @@ -238,7 +238,7 @@ real[] monotonic(real[] x, real[] y) d[0]=d[1]=(y[1]-y[0])/(x[1]-x[0]); } else abort(morepoints); return d; -} +} // Return standard cubic spline interpolation as a guide guide hermite(real[] x, real[] y, splinetype splinetype=null) diff --git a/Master/texmf-dist/asymptote/grid3.asy b/Master/texmf-dist/asymptote/grid3.asy index 98e043a71d7..62807847ae6 100644 --- a/Master/texmf-dist/asymptote/grid3.asy +++ b/Master/texmf-dist/asymptote/grid3.asy @@ -259,7 +259,7 @@ ticksgrid InOutTicks(Label F="", ticklabel ticklabel=null, N,n,Step,step,begin,end, Size,size,false,pTick,ptick); otg.grid3=new void(picture pic, bool above) { - grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above); + grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above); }; return otg; }; @@ -280,7 +280,7 @@ ticksgrid InTicks(Label F="", ticklabel ticklabel=null, otg.ticks=Ticks3(-1,F,ticklabel,beginlabel,endlabel,N,n,Step,step, begin,end,Size,size,false,pTick,ptick); otg.grid3=new void(picture pic, bool above) { - grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above); + grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above); }; return otg; }; @@ -301,7 +301,7 @@ ticksgrid OutTicks(Label F="", ticklabel ticklabel=null, otg.ticks=Ticks3(1,F,ticklabel,beginlabel,endlabel,N,n,Step,step, begin,end,Size,size,false,pTick,ptick); otg.grid3=new void(picture pic, bool above) { - grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above); + grid3(pic,gridroutine,N,n,Step,step,begin,end,pGrid,pgrid,above); }; return otg; }; diff --git a/Master/texmf-dist/asymptote/interpolate.asy b/Master/texmf-dist/asymptote/interpolate.asy index a600c94c125..d66f227fcc3 100644 --- a/Master/texmf-dist/asymptote/interpolate.asy +++ b/Master/texmf-dist/asymptote/interpolate.asy @@ -7,8 +7,8 @@ // and values y_0,...,y_n in the array y, // hdiffdiv(x,y,dyp) computes Newton's Divided Difference for -// Hermite interpolation where dyp={dy_0,...,dy_n}. -// +// Hermite interpolation where dyp={dy_0,...,dy_n}. +// // fhorner(x,coeff) uses Horner's rule to compute the polynomial // a_0+a_1(x-x_0)+a_2(x-x_0)(x-x_1)+...+a_n(x-x_0)..(x-x_{n-1}), // where coeff={a_0,a_1,...,a_n}. @@ -54,7 +54,7 @@ fhorner fhorner(horner sh) return s; }; } - + // Newton's Divided Difference method: n(n-1)/2 divisions, n(n-1) additions. horner diffdiv(real[] x, real[] y) { @@ -136,5 +136,5 @@ realfunction fspline(real[] x, real[] y, splinetype splinetype=notaknot) real[] dy=splinetype(x,y); return new real(real t) { return pwhermite(x,y,dy)(t); - }; + }; } diff --git a/Master/texmf-dist/asymptote/labelpath3.asy b/Master/texmf-dist/asymptote/labelpath3.asy index 63b2290f1f2..2c9529dc7e8 100644 --- a/Master/texmf-dist/asymptote/labelpath3.asy +++ b/Master/texmf-dist/asymptote/labelpath3.asy @@ -21,7 +21,7 @@ triple[] firstframe(path3 p, triple optional=O) } // Modification of the bishop frame construction contained in -// space_tube.asy (from Philippe Ivaldi's modules). +// space_tube.asy (from Philippe Ivaldi's modules). // For noncyclic path3s only triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=20) @@ -40,7 +40,7 @@ triple[] nextframe(path3 p, real reltimestart, triple[] start, real } return bf[subdiv]; } - + surface labelpath(string s, path3 p, real angle=90, triple optional=O) { real Cos=Cos(angle); @@ -48,10 +48,10 @@ surface labelpath(string s, path3 p, real angle=90, triple optional=O) path[] text=texpath(Label(s,(0,0),Align,basealign)); text=scale(1/(max(text).x-min(text).x))*text; path[][] decompose=containmentTree(text); - + real[][] xpos=new real[decompose.length][2]; surface sf; - for(int i=0; i < decompose.length; ++i) {// Identify positions along x-axis + for(int i=0; i < decompose.length; ++i) {// Identify positions along x-axis xpos[i][1]=i; real pos0=0.5(max(decompose[i]).x+min(decompose[i]).x); xpos[i][0]=pos0; diff --git a/Master/texmf-dist/asymptote/latin1.asy b/Master/texmf-dist/asymptote/latin1.asy deleted file mode 100644 index 3d76925be24..00000000000 --- a/Master/texmf-dist/asymptote/latin1.asy +++ /dev/null @@ -1,2 +0,0 @@ -usepackage("fontenc","T1"); -usepackage("inputenc","latin1"); diff --git a/Master/texmf-dist/asymptote/lmfit.asy b/Master/texmf-dist/asymptote/lmfit.asy index c3dfddce061..63e0d7e2386 100644 --- a/Master/texmf-dist/asymptote/lmfit.asy +++ b/Master/texmf-dist/asymptote/lmfit.asy @@ -58,31 +58,31 @@ private real LM_SQRT_GIANT = sqrt(realMax); private real LM_USERTOL = 30 * LM_MACHEP; restricted string lm_infmsg[] = { - "improper input parameters", - "the relative error in the sum of squares is at most tol", - "the relative error between x and the solution is at most tol", - "both errors are at most tol", - "fvec is orthogonal to the columns of the jacobian to machine precision", - "number of calls to fcn has reached or exceeded maxcall*(n+1)", - "ftol is too small: no further reduction in the sum of squares is possible", - "xtol too small: no further improvement in approximate solution x possible", - "gtol too small: no further improvement in approximate solution x possible", - "not enough memory", - "break requested within function evaluation" + "improper input parameters", + "the relative error in the sum of squares is at most tol", + "the relative error between x and the solution is at most tol", + "both errors are at most tol", + "fvec is orthogonal to the columns of the jacobian to machine precision", + "number of calls to fcn has reached or exceeded maxcall*(n+1)", + "ftol is too small: no further reduction in the sum of squares is possible", + "xtol too small: no further improvement in approximate solution x possible", + "gtol too small: no further improvement in approximate solution x possible", + "not enough memory", + "break requested within function evaluation" }; restricted string lm_shortmsg[] = { - "invalid input", - "success (f)", - "success (p)", - "success (f,p)", - "degenerate", - "call limit", - "failed (f)", - "failed (p)", - "failed (o)", - "no memory", - "user break" + "invalid input", + "success (f)", + "success (p)", + "success (f,p)", + "degenerate", + "call limit", + "failed (f)", + "failed (p)", + "failed (o)", + "no memory", + "user break" }; @@ -91,7 +91,7 @@ struct lm_data_type { real[] user_t; real[] user_y; real[] user_w; - real user_func(real user_t_point, real[] par); + real user_func(real user_t_point, real[] par); }; @@ -99,7 +99,7 @@ struct lm_data_type { // the int and real types struct lm_int_type { int val; - + void operator init(int val) { this.val = val; } @@ -108,7 +108,7 @@ struct lm_int_type { struct lm_real_type { real val; - + void operator init(real val) { this.val = val; } @@ -402,7 +402,7 @@ private void lm_qrsolv(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] } break; } - + sdiag[j] = r[j * ldr + j]; r[j * ldr + j] = x[j]; } @@ -508,10 +508,10 @@ private void lm_lmpar(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] dxnorm = lm_enorm(n, wa2); fp_old = fp; fp = dxnorm - delta; - + if (fabs(fp) <= p1 * delta || (parl == 0.0 && fp <= fp_old && fp_old < 0.0) || iter == 10) break; - + for (j = 0; j < n; ++j) wa1[j] = diag[ipvt[j]] * wa2[ipvt[j]] / dxnorm; @@ -522,12 +522,12 @@ private void lm_lmpar(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] } temp = lm_enorm(n, wa1); parc = fp / delta / temp / temp; - + if (fp > 0) parl = max(parl, par.val); else if (fp < 0) paru = min(paru, par.val); - + par.val = max(parl, par.val + parc); } } @@ -540,7 +540,7 @@ void lm_lmdif(int m, int n, real[] x, real[] fvec, real ftol, real xtol, real gt static real p25 = 0.25; static real p75 = 0.75; static real p0001 = 1.0e-4; - + nfev.val = 0; int iter = 1; lm_real_type par = lm_real_type(0); @@ -563,7 +563,7 @@ void lm_lmdif(int m, int n, real[] x, real[] fvec, real ftol, real xtol, real gt } } } - + info.val = 0; evaluate(x, m, fvec, data, info); if(printout != null) printout(n, x, m, fvec, data, 0, 0, ++nfev.val); @@ -587,7 +587,7 @@ void lm_lmdif(int m, int n, real[] x, real[] fvec, real ftol, real xtol, real gt fjac[j * m + i] = (wa4[i] - fvec[i]) / (x[j] - temp); x[j] = temp; } - + lm_qrfac(m, n, fjac, true, ipvt, wa1, wa2, wa3); if (iter == 1) { @@ -695,7 +695,7 @@ void lm_lmdif(int m, int n, real[] x, real[] fvec, real ftol, real xtol, real gt delta = pnorm / p5; par.val *= p5; } - + if (ratio >= p0001) { for (j = 0; j < n; ++j) { x[j] = wa2[j]; @@ -735,7 +735,7 @@ void lm_lmdif(int m, int n, real[] x, real[] fvec, real ftol, real xtol, real gt void lm_minimize(int m_dat, int n_par, real[] par, lm_evaluate_ftype evaluate, lm_print_ftype printout, lm_data_type data, lm_control_type control) { int n = n_par; int m = m_dat; - + real[] fvec = new real[m]; real[] diag = new real[n]; real[] qtf = new real[n]; @@ -838,13 +838,13 @@ FitResult fit(real[] xdata, real[] ydata, real[] errors, real function(real[], r int n_par = parameters.length; lm_evaluate_ftype evaluate = lm_evaluate_default; lm_print_ftype printout = control.verbose ? lm_print_default : lm_print_quiet; - + lm_data_type data; data.user_t = xdata; data.user_y = ydata; data.user_w = 1 / errors; data.user_func = new real(real x, real[] params) { - return function(params, x); + return function(params, x); }; lm_control_type ctrl; @@ -856,7 +856,7 @@ FitResult fit(real[] xdata, real[] ydata, real[] errors, real function(real[], r ctrl.maxcall = control.maxIterations; lm_minimize(m_dat, n_par, parameters, evaluate, printout, data, ctrl); - + return FitResult(ctrl.fnorm, ctrl.nfev.val, ctrl.info.val); } diff --git a/Master/texmf-dist/asymptote/map.asy b/Master/texmf-dist/asymptote/map.asy new file mode 100644 index 00000000000..2b2277b9568 --- /dev/null +++ b/Master/texmf-dist/asymptote/map.asy @@ -0,0 +1,40 @@ +// Create a struct <name> parameterized by types <key> and <value>, +// that maps keys to values, defaulting to the value in <default>. +void mapTemplate(string name, string key, string value, string default) +{ + type(key,"Key"); + type(value,"Value"); + eval("Value default="+default,true); + + eval(" + struct keyValue { + Key key; + Value T; + void operator init(Key key) { + this.key=key; + } + void operator init(Key key, Value T) { + this.key=key; + this.T=T; + } + } + + struct map { + keyValue[] M; + bool operator < (keyValue a, keyValue b) {return a.key < b.key;} + + void add(Key key, Value T) { + keyValue m=keyValue(key,T); + M.insert(search(M,m,operator <)+1,m); + } + Value lookup(Key key) { + int i=search(M,keyValue(key),operator <); + if(i >= 0 && M[i].key == key) return M[i].T; + return default; + } + } +",true); + + type("map",name); +} + diff --git a/Master/texmf-dist/asymptote/math.asy b/Master/texmf-dist/asymptote/math.asy index 9d10e2b7794..3dde1b9dd4c 100644 --- a/Master/texmf-dist/asymptote/math.asy +++ b/Master/texmf-dist/asymptote/math.asy @@ -30,7 +30,7 @@ picture grid(int Nx, int Ny, pen p=currentpen) picture pic; for(int i=0; i <= Nx; ++i) draw(pic,(i,0)--(i,Ny),p); for(int j=0; j <= Ny; ++j) draw(pic,(0,j)--(Nx,j),p); - return pic; + return pic; } bool polygon(path p) @@ -55,7 +55,7 @@ real intersect(triple P, triple Q, triple n, triple Z) real denom=n.x*(Q.x-P.x)+n.y*(Q.y-P.y)+n.z*(Q.z-P.z); return denom == 0 ? infinity : (d-n.x*P.x-n.y*P.y-n.z*P.z)/denom; } - + // Return any point on the intersection of the two planes with normals // n0 and n1 passing through points P0 and P1, respectively. // If the planes are parallel return (infinity,infinity,infinity). @@ -293,7 +293,7 @@ void drawline(picture pic=currentpicture, pair P, pair Q, pen p=currentpen) },true); } -real interpolate(real[] x, real[] y, real x0, int i) +real interpolate(real[] x, real[] y, real x0, int i) { int n=x.length; if(n == 0) abort("Zero data points in interpolate"); @@ -317,7 +317,7 @@ real interpolate(real[] x, real[] y, real x0, int i) // real[] x are listed in ascending order and return y0. Values outside the // available data range are linearly extrapolated using the first derivative // at the nearest endpoint. -real interpolate(real[] x, real[] y, real x0) +real interpolate(real[] x, real[] y, real x0) { return interpolate(x,y,x0,search(x,x0)); } @@ -378,7 +378,7 @@ pair[] quarticroots(real a, real b, real c, real d, real e) // Remove roots at numerical infinity. if(abs(a) <= Fuzz*(abs(b)+Fuzz*(abs(c)+Fuzz*(abs(d)+Fuzz*abs(e))))) return cubicroots(b,c,d,e); - + // Detect roots at numerical zero. if(abs(e) <= Fuzz*(abs(d)+Fuzz*(abs(c)+Fuzz*(abs(b)+Fuzz*abs(a))))) return cubicroots(a,b,c,d); @@ -388,7 +388,7 @@ pair[] quarticroots(real a, real b, real c, real d, real e) c *= ainv; d *= ainv; e *= ainv; - + pair[] roots; real[] T=cubicroots(1,-2c,c^2+b*d-4e,d^2+b^2*e-b*c*d); if(T.length == 0) return roots; @@ -434,13 +434,13 @@ real[] leastsquares(real[][] A, real[] b, bool warn=true) real[] solution=solve(AtA(A),b*A,warn=false); if (solution.length == 0 && warn) abort("Cannot compute least-squares approximation for " + - "a matrix with linearly dependent columns."); + "a matrix with linearly dependent columns."); return solution; } // Namespace struct rootfinder_settings { - static real roottolerance = 1e-4; + static real roottolerance=1e-4; } real findroot(real f(real), real a, real b, diff --git a/Master/texmf-dist/asymptote/metapost.asy b/Master/texmf-dist/asymptote/metapost.asy index 525ffe755e1..6908fd750d2 100644 --- a/Master/texmf-dist/asymptote/metapost.asy +++ b/Master/texmf-dist/asymptote/metapost.asy @@ -2,14 +2,14 @@ path cuttings; -path cutbefore(path p, path q) +path cutbefore(path p, path q) { slice s=firstcut(p,q); cuttings=s.before; return s.after; } -path cutafter(path p, path q) +path cutafter(path p, path q) { slice s=lastcut(p,q); cuttings=s.after; diff --git a/Master/texmf-dist/asymptote/obj.asy b/Master/texmf-dist/asymptote/obj.asy index 8dde9341c42..5b6f14e90df 100644 --- a/Master/texmf-dist/asymptote/obj.asy +++ b/Master/texmf-dist/asymptote/obj.asy @@ -1,7 +1,7 @@ // A module for reading simple obj files with groups. // Authors: Jens Schwaiger and John Bowman // -// Here simple means that : +// Here simple means that : // // 1) all vertex statements should come before the face statements; // diff --git a/Master/texmf-dist/asymptote/ode.asy b/Master/texmf-dist/asymptote/ode.asy index 7104a8d1532..99f8505cec2 100644 --- a/Master/texmf-dist/asymptote/ode.asy +++ b/Master/texmf-dist/asymptote/ode.asy @@ -14,7 +14,7 @@ struct RKTableau int order; coefficients a; void stepDependence(real h, real c, coefficients a) {} - + real pgrow; real pshrink; bool exponential; @@ -54,7 +54,7 @@ real phi2(real x) if(fabs(x) > 1) return (exp(x)-x-1)/x2; real x3=x2*x; real x5=x2*x3; - if(fabs(x) < 0.1) + if(fabs(x) < 0.1) return Coeff[1]+x*Coeff[2]+x2*Coeff[3]+x3*Coeff[4]+x2*x2*Coeff[5] +x5*Coeff[6]+x3*x3*Coeff[7]+x5*x2*Coeff[8]+x5*x3*Coeff[9]; else { @@ -73,7 +73,7 @@ real phi3(real x) real x3=x2*x; if(fabs(x) > 1.6) return (exp(x)-0.5*x2-x-1)/x3; real x5=x2*x3; - if(fabs(x) < 0.1) + if(fabs(x) < 0.1) return Coeff[2]+x*Coeff[3]+x2*Coeff[4]+x3*Coeff[5] +x2*x2*Coeff[6]+x5*Coeff[7]+x3*x3*Coeff[8]+x5*x2*Coeff[9] +x5*x3*Coeff[10]; @@ -90,13 +90,13 @@ real phi3(real x) } } -void expfactors(real x, coefficients a) +void expfactors(real x, coefficients a) { for(int i=0; i < a.steps.length; ++i) a.factors[i]=exp(x*a.steps[i]); a.factors[a.steps.length]=exp(x); } - + // First-Order Euler RKTableau Euler=RKTableau(1,new real[][], new real[] {1}); @@ -185,40 +185,40 @@ RKTableau RK4=RKTableau(4,new real[][] {{1/2},{0,1/2},{0,0,1}}, // Fifth-Order Cash-Karp Runge-Kutta RKTableau RK5=RKTableau(5,new real[][] {{1/5}, - {3/40,9/40}, - {3/10,-9/10,6/5}, - {-11/54,5/2,-70/27,35/27}, - {1631/55296,175/512,575/13824, - 44275/110592,253/4096}}, + {3/40,9/40}, + {3/10,-9/10,6/5}, + {-11/54,5/2,-70/27,35/27}, + {1631/55296,175/512,575/13824, + 44275/110592,253/4096}}, new real[] {37/378,0,250/621,125/594, - 0,512/1771}, // 5th order + 0,512/1771}, // 5th order new real[] {2825/27648,0,18575/48384,13525/55296, - 277/14336,1/4}); // 4th order + 277/14336,1/4}); // 4th order // Fifth-Order Fehlberg Runge-Kutta RKTableau RK5F=RKTableau(5,new real[][] {{1/4}, - {3/32,9/32}, - {1932/2197,-7200/2197,7296/2197}, - {439/216,-8,3680/513,-845/4104}, - {-8/27,2,-3544/2565,1859/4104, - -11/40}}, + {3/32,9/32}, + {1932/2197,-7200/2197,7296/2197}, + {439/216,-8,3680/513,-845/4104}, + {-8/27,2,-3544/2565,1859/4104, + -11/40}}, new real[] {16/135,0,6656/12825,28561/56430,-9/50,2/55}, // 5th order new real[] {25/216,0,1408/2565,2197/4104,-1/5,0}); // 4th order // Fifth-Order Dormand-Prince Runge-Kutta RKTableau RK5DP=RKTableau(5,new real[][] {{1/5}, - {3/40,9/40}, - {44/45,-56/15,32/9}, - {19372/6561,-25360/2187,64448/6561, - -212/729}, - {9017/3168,-355/33,46732/5247,49/176, - -5103/18656}}, + {3/40,9/40}, + {44/45,-56/15,32/9}, + {19372/6561,-25360/2187,64448/6561, + -212/729}, + {9017/3168,-355/33,46732/5247,49/176, + -5103/18656}}, new real[] {35/384,0,500/1113,125/192,-2187/6784, - 11/84}, // 5th order + 11/84}, // 5th order new real[] {5179/57600,0,7571/16695,393/640, - -92097/339200,187/2100,1/40}); // 4th order + -92097/339200,187/2100,1/40}); // 4th order -real error(real error, real initial, real lowOrder, real norm, real diff) +real error(real error, real initial, real lowOrder, real norm, real diff) { if(initial != 0 && lowOrder != initial) { static real epsilon=realMin/realEpsilon; @@ -249,7 +249,7 @@ struct solution real[] y; } -void write(solution S) +void write(solution S) { for(int i=0; i < S.t.length; ++i) write(S.t[i],S.y[i]); @@ -276,7 +276,7 @@ solution integrate(real y, real c=0, real f(real t, real y), real a, real b=a, new real(real t, real y) {return f(t,y)-c*y;}; tableau.stepDependence(h,c,tableau.a); - + real t=a; real f0; if(tableau.a.lowOrderWeights.length == 0) dynamic=false; @@ -293,7 +293,7 @@ solution integrate(real y, real c=0, real f(real t, real y), real a, real b=a, tableau.stepDependence(h,c,tableau.a); dt=h; } - + real[] predictions={fsal ? f0 : F(t,y)}; for(int i=0; i < tableau.a.steps.length; ++i) predictions.push(F(t+h*tableau.a.steps[i], @@ -336,7 +336,7 @@ struct Solution real[][] y; } -void write(Solution S) +void write(Solution S) { for(int i=0; i < S.t.length; ++i) { write(S.t[i],tab); @@ -356,7 +356,7 @@ Solution integrate(real[] y, real[] f(real t, real[] y), real a, real b=a, Solution S; S.t=new real[] {a}; S.y=new real[][] {copy(y)}; - + if(h == 0) { if(b == a) return S; if(n == 0) abort("Either n or h must be specified"); diff --git a/Master/texmf-dist/asymptote/palette.asy b/Master/texmf-dist/asymptote/palette.asy index e77fa946e6b..9923e5b3aaf 100644 --- a/Master/texmf-dist/asymptote/palette.asy +++ b/Master/texmf-dist/asymptote/palette.asy @@ -5,7 +5,7 @@ private transform swap=(0,0,0,1,1,0); typedef bounds range(picture pic, real min, real max); range Range(bool automin=false, real min=-infinity, - bool automax=false, real max=infinity) + bool automax=false, real max=infinity) { return new bounds(picture pic, real dmin, real dmax) { // autoscale routine finds reasonable limits @@ -45,7 +45,7 @@ void image(frame f, pen[][] data, pair initial, pair final, // Reduce color palette to approximate range of data relative to "display" // range => errors of 1/palette.length in resulting color space. pen[] adjust(picture pic, real min, real max, real rmin, real rmax, - pen[] palette) + pen[] palette) { real dmin=pic.scale.z.T(min); real dmax=pic.scale.z.T(max); @@ -100,7 +100,7 @@ bounds image(picture pic=currentpicture, real[][] f, range range=Full, initial=T*initial; final=T*final; } - + pic.add(new void(frame F, transform t) { _image(F,f,initial,final,palette,t*T,copy=false,antialias=antialias); },true); @@ -146,7 +146,7 @@ void image(picture pic=currentpicture, pen[][] data, pair initial, pair final, initial=T*initial; final=T*final; } - + pic.add(new void(frame F, transform t) { _image(F,data,initial,final,t*T,copy=false,antialias=antialias); },true); @@ -171,7 +171,7 @@ void image(picture pic=currentpicture, pen f(int, int), int width, int height, initial=T*initial; final=T*final; } - + pic.add(new void(frame F, transform t) { _image(F,f,width,height,initial,final,t*T,antialias=antialias); },true); @@ -190,8 +190,8 @@ bounds image(picture pic=currentpicture, pair[] z, real[] f, real rmax=pic.scale.z.T(bounds.max); palette=adjust(pic,m,M,rmin,rmax,palette); - rmin=max(rmin,m); - rmax=min(rmax,M); + rmin=max(rmin,pic.scale.z.T(m)); + rmax=min(rmax,pic.scale.z.T(M)); // Crop data to allowed range and scale if(range != Full || pic.scale.z.scale.T != identity || @@ -201,6 +201,12 @@ bounds image(picture pic=currentpicture, pair[] z, real[] f, real M=bounds.max; f=map(new real(real x) {return T(min(max(x,m),M));},f); } + if(pic.scale.x.scale.T != identity || pic.scale.x.postscale.T != identity || + pic.scale.y.scale.T != identity || pic.scale.y.postscale.T != identity) { + scalefcn Tx=pic.scale.x.T; + scalefcn Ty=pic.scale.y.T; + z=map(new pair(pair z) {return (Tx(z.x),Ty(z.y));},z); + } int[] edges={0,0,1}; int N=palette.length-1; @@ -267,20 +273,20 @@ paletteticks PaletteTicks(Label format="", ticklabel ticklabel=null, return Ticks(sign,format,ticklabel,beginlabel,endlabel,N,n,Step,step, true,true,extend=true,pTick,ptick); }; -} +} paletteticks PaletteTicks=PaletteTicks(); paletteticks NoTicks=new ticks(int sign=-1) {return NoTicks;}; -void palette(picture pic=currentpicture, Label L="", bounds bounds, - pair initial, pair final, axis axis=Right, pen[] palette, +void palette(picture pic=currentpicture, Label L="", bounds bounds, + pair initial, pair final, axis axis=Right, pen[] palette, pen p=currentpen, paletteticks ticks=PaletteTicks, bool copy=true, bool antialias=false) { real initialz=pic.scale.z.T(bounds.min); real finalz=pic.scale.z.T(bounds.max); bounds mz=autoscale(initialz,finalz,pic.scale.z.scale); - + axisT axis; axis(pic,axis); real angle=degrees(axis.align.dir); @@ -311,11 +317,11 @@ void palette(picture pic=currentpicture, Label L="", bounds bounds, if(vertical && L.defaulttransform) { frame f; add(f,Label(L.s,(0,0),L.p)); - if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p)) + if(length(max(f)-min(f)) > ylabelwidth*fontsize(L.p)) L.transform(rotate(90)); } real[][] pdata={sequence(palette.length)}; - + transform T; pair Tinitial,Tfinal; if(vertical) { @@ -326,12 +332,12 @@ void palette(picture pic=currentpicture, Label L="", bounds bounds, Tinitial=initial; Tfinal=final; } - + pic.add(new void(frame f, transform t) { _image(f,pdata,Tinitial,Tfinal,palette,t*T,copy=false, antialias=antialias); },true); - + ticklocate locate=ticklocate(initialz,finalz,pic.scale.z,mz.min,mz.max); axis(pic,L,g,g2,p,ticks(sgn(axis.side.x*dot(lambda,par))),locate,mz.divisor, true); @@ -356,13 +362,13 @@ pen[] Grayscale(int NColors=256) pen[] Wheel(int NColors=32766) { if(settings.gray) return Grayscale(NColors); - + int nintervals=6; if(NColors <= nintervals) NColors=nintervals+1; int n=-quotient(NColors,-nintervals); - + pen[] Palette; - + Palette=new pen[n*nintervals]; real ninv=1.0/n; @@ -373,7 +379,7 @@ pen[] Wheel(int NColors=32766) Palette[n+i]=rgb(ininv1,0.0,1.0); Palette[2n+i]=rgb(0.0,ininv,1.0); Palette[3n+i]=rgb(0.0,1.0,ininv1); - Palette[4n+i]=rgb(ininv,1.0,0.0); + Palette[4n+i]=rgb(ininv,1.0,0.0); Palette[5n+i]=rgb(1.0,ininv1,0.0); } return Palette; @@ -383,14 +389,14 @@ pen[] Wheel(int NColors=32766) pen[] Rainbow(int NColors=32766) { if(settings.gray) return Grayscale(NColors); - + int offset=1; int nintervals=5; if(NColors <= nintervals) NColors=nintervals+1; int n=-quotient(NColors-1,-nintervals); - + pen[] Palette; - + Palette=new pen[n*nintervals+offset]; real ninv=1.0/n; @@ -400,37 +406,37 @@ pen[] Rainbow(int NColors=32766) Palette[i]=rgb(ininv1,0.0,1.0); Palette[n+i]=rgb(0.0,ininv,1.0); Palette[2n+i]=rgb(0.0,1.0,ininv1); - Palette[3n+i]=rgb(ininv,1.0,0.0); + Palette[3n+i]=rgb(ininv,1.0,0.0); Palette[4n+i]=rgb(1.0,ininv1,0.0); } Palette[4n+n]=rgb(1.0,0.0,0.0); - + return Palette; } private pen[] BWRainbow(int NColors, bool two) { if(settings.gray) return Grayscale(NColors); - + int offset=1; int nintervals=6; int divisor=3; - + if(two) nintervals += 6; - + int Nintervals=nintervals*divisor; if(NColors <= Nintervals) NColors=Nintervals+1; int num=NColors-offset; int n=-quotient(num,-Nintervals)*divisor; NColors=n*nintervals+offset; - + pen[] Palette; - + Palette=new pen[NColors]; real ninv=1.0/n; int k=0; - + if(two) { for(int i=0; i < n; ++i) { real ininv=i*ninv; @@ -444,9 +450,9 @@ private pen[] BWRainbow(int NColors, bool two) } k += 6n; } - + if(two) - for(int i=0; i < n; ++i) + for(int i=0; i < n; ++i) Palette[k+i]=rgb(1.0-i*ninv,0.0,1.0); else { int n3=-quotient(n,-3); @@ -467,12 +473,12 @@ private pen[] BWRainbow(int NColors, bool two) real ininv1=1.0-ininv; Palette[k+i]=rgb(0.0,ininv,1.0); Palette[k+n+i]=rgb(0.0,1.0,ininv1); - Palette[k+2n+i]=rgb(ininv,1.0,0.0); + Palette[k+2n+i]=rgb(ininv,1.0,0.0); Palette[k+3n+i]=rgb(1.0,ininv1,0.0); Palette[k+4n+i]=rgb(1.0,ininv,ininv); } Palette[k+5n]=rgb(1.0,1.0,1.0); - + return Palette; } @@ -484,7 +490,7 @@ pen[] quantize(pen[] Palette, int n) real step=(Palette.length-1)/(n-1); return sequence(new pen(int i) { return Palette[round(i*step)]; - },n); + },n); } // A rainbow palette tapering off to black/white at the spectrum ends, @@ -507,7 +513,7 @@ pen[] BWRainbow2(int NColors=32761) //A palette varying linearly over the specified array of pens, using // NColors in each interpolation interval. -pen[] Gradient(int NColors=256 ... pen[] p) +pen[] Gradient(int NColors=256 ... pen[] p) { pen[] P; if(p.length < 2) abort("at least 2 colors must be specified"); @@ -522,7 +528,7 @@ pen[] Gradient(int NColors=256 ... pen[] p) return P; } -pen[] cmyk(pen[] Palette) +pen[] cmyk(pen[] Palette) { int n=Palette.length; for(int i=0; i < n; ++i) diff --git a/Master/texmf-dist/asymptote/patterns.asy b/Master/texmf-dist/asymptote/patterns.asy index 56fa3bf4a24..559e36cec11 100644 --- a/Master/texmf-dist/asymptote/patterns.asy +++ b/Master/texmf-dist/asymptote/patterns.asy @@ -7,7 +7,7 @@ frame tiling(string name, picture pic, pair lb=0, pair rt=0) pair pmin=min(f)-lb; pair pmax=max(f)+rt; string s="%.6f"; - postscript(tiling,"<< /PaintType 1 /PatternType 1 /TilingType 1 + postscript(tiling,"<< /PaintType 1 /PatternType 1 /TilingType 1 /BBox ["+format(s,pmin.x,"C")+" "+format(s,pmin.y,"C")+" "+ format(s,pmax.x,"C")+" "+format(s,pmax.y,"C")+"] /XStep "+format(s,pmax.x-pmin.x,"C")+" @@ -64,7 +64,7 @@ picture brick(real Hx=5mm, real Hy=0, pen p=currentpen) } real hatchepsilon=1e-4; -picture hatch(real H=5mm, pair dir=NE, pen p=currentpen) +picture hatch(real H=5mm, pair dir=NE, pen p=currentpen) { picture tiling; real theta=angle(dir); diff --git a/Master/texmf-dist/asymptote/plain.asy b/Master/texmf-dist/asymptote/plain.asy index 480780c458a..365aad02c74 100644 --- a/Master/texmf-dist/asymptote/plain.asy +++ b/Master/texmf-dist/asymptote/plain.asy @@ -18,13 +18,13 @@ if(settings.command != "") { include plain_constants; -access version; +access version; if(version.VERSION != VERSION) { warning("version","using possibly incompatible version "+ version.VERSION+" of plain.asy"+'\n'); nowarn("version"); } - + include plain_strings; include plain_pens; include plain_paths; @@ -32,13 +32,15 @@ include plain_filldraw; include plain_margins; include plain_picture; include plain_Label; -include plain_shipout; include plain_arcs; include plain_boxes; +include plain_shipout; include plain_markers; include plain_arrows; include plain_debugger; +real RELEASE=(real) split(VERSION,"-")[0]; + typedef void exitfcn(); void updatefunction() @@ -106,7 +108,7 @@ addSaveFunction(new restoreThunk () { }); // Save the current state, so that restore will put things back in that state. -restoreThunk save() +restoreThunk save() { return restore=buildRestoreThunk(); } @@ -132,7 +134,7 @@ restoreThunk buildRestoreDefaults() } // Save the current state, so that restore will put things back in that state. -restoreThunk savedefaults() +restoreThunk savedefaults() { return restoredefaults=buildRestoreDefaults(); } @@ -145,7 +147,7 @@ void initdefaults() atexit(null); } -// Return the sequence n,...m +// Return the sequence n,...,m int[] sequence(int n, int m) { return sequence(new int(int x){return x;},m-n+1)+n; @@ -180,13 +182,26 @@ void eval(code s, bool embedded=false) if(!embedded) restoredefaults(); } +// Associate a parametrized type with a name. +void type(string type, string name) +{ + eval("typedef "+type+" "+name,true); +} + +void mapArray(string From, string To) +{ + type(From,"From"); + type(To,"To"); + eval("To[] map(To f(From), From[] a) {return sequence(new To(int i) {return f(a[i]);},a.length);}",true); +} + // Evaluate user command line option. void usersetting() { eval(settings.user,true); } -string stripsuffix(string f, string suffix=".asy") +string stripsuffix(string f, string suffix=".asy") { int n=rfind(f,suffix); if(n != -1) f=erase(f,n,-1); @@ -231,6 +246,7 @@ void beep() struct processtime { real user; real system; + real clock; } struct cputime { @@ -239,21 +255,26 @@ struct cputime { processtime change; } -cputime cputime() +cputime cputime() { static processtime last; real [] a=_cputime(); cputime cputime; + real clock=a[4]; cputime.parent.user=a[0]; cputime.parent.system=a[1]; + cputime.parent.clock=clock; cputime.child.user=a[2]; cputime.child.system=a[3]; - real user=a[0]+a[2]; - real system=a[1]+a[3]; + cputime.child.clock=0; + real user=cputime.parent.user+cputime.child.user; + real system=cputime.parent.system+cputime.child.system; cputime.change.user=user-last.user; cputime.change.system=system-last.system; + cputime.change.clock=clock-last.clock; last.user=user; last.system=system; + last.clock=clock; return cputime; } @@ -285,23 +306,3 @@ if(settings.autoimport != "") { } cputime(); - -void nosetpagesize() -{ - static bool initialized=false; - if(!initialized && latex()) { - // Portably pass nosetpagesize option to graphicx package. - texpreamble("\usepackage{ifluatex}\ifluatex -\ifx\pdfpagewidth\undefined\let\pdfpagewidth\paperwidth\fi -\ifx\pdfpageheight\undefined\let\pdfpageheight\paperheight\fi\else -\let\paperwidthsave\paperwidth\let\paperwidth\undefined -\usepackage{graphicx} -\let\paperwidth\paperwidthsave\fi"); - initialized=true; - } -} - -nosetpagesize(); - -if(settings.tex == "luatex") - texpreamble("\input luatex85.sty"); diff --git a/Master/texmf-dist/asymptote/plain_Label.asy b/Master/texmf-dist/asymptote/plain_Label.asy index c50ce003be0..0a2c270d689 100644 --- a/Master/texmf-dist/asymptote/plain_Label.asy +++ b/Master/texmf-dist/asymptote/plain_Label.asy @@ -15,10 +15,10 @@ transform scaleless(transform t) real a=t.xx, b=t.xy, c=t.yx, d=t.yy; real arg=(a-d)^2+4b*c; pair delta=arg >= 0 ? sqrt(arg) : I*sqrt(-arg); - real trace=a+d; + real trace=a+d; pair l1=0.5(trace+delta); pair l2=0.5(trace-delta); - + if(abs(delta) < sqrtEpsilon*max(abs(l1),abs(l2))) { real s=abs(0.5trace); return (s != 0) ? scale(1/s)*t : t; @@ -51,7 +51,7 @@ transform scaleless(transform t) } } return c; - } + } pair[][] conj(pair[][] a) { pair[][] c=new pair[2][2]; @@ -61,7 +61,7 @@ transform scaleless(transform t) } } return c; - } + } A=conj(U)*A*U; @@ -70,7 +70,7 @@ transform scaleless(transform t) A[0][0] /= D; A[0][1] /= D; } - + D=abs(A[1][1]); if(D != 0) { A[1][0] /= D; @@ -155,13 +155,13 @@ side Relative(explicit pair align) s.align=align; return s; } - + restricted side NoSide; restricted side LeftSide=Relative(W); restricted side Center=Relative((0,0)); restricted side RightSide=Relative(E); -side operator * (real x, side s) +side operator * (real x, side s) { side S; S.align=x*s.align; @@ -190,7 +190,7 @@ position Relative(real position) p.relative=true; return p; } - + restricted position BeginPoint=Relative(0); restricted position MidPoint=Relative(0.5); restricted position EndPoint=Relative(1); @@ -227,8 +227,8 @@ struct Label { bool defaulttransform3=true; embed embed=Rotate; // Shift, Rotate, Slant, or Scale with embedded picture filltype filltype=NoFill; - - void init(string s="", string size="", position position=0, + + void init(string s="", string size="", position position=0, bool defaultposition=true, align align=NoAlign, pen p=nullpen, transform T=identity(), transform3 T3=identity4, bool defaulttransform=true, bool defaulttransform3=true, @@ -246,17 +246,17 @@ struct Label { this.embed=embed; this.filltype=filltype; } - + void initalign(string s="", string size="", align align, pen p=nullpen, embed embed=Rotate, filltype filltype=NoFill) { init(s,size,align,p,embed,filltype); } - + void transform(transform T) { this.T=T; defaulttransform=false; } - + void transform3(transform3 T) { this.T3=copy(T); defaulttransform3=false; @@ -268,27 +268,27 @@ struct Label { defaulttransform3,embed,filltype); return L; } - + void position(position pos) { this.position=pos; defaultposition=false; } - + void align(align a) { align.align(a); } void align(align a, align default) { align.align(a,default); } - + void p(pen p0) { if(this.p == nullpen) this.p=p0; } - + void filltype(filltype filltype0) { if(this.filltype == NoFill) this.filltype=filltype0; } - + void label(frame f, transform t=identity(), pair position, pair align) { pen p0=p == nullpen ? currentpen : p; align=length(align)*unit(rotation(t)*align); @@ -309,7 +309,7 @@ struct Label { add(f,d,filltype); } } - + void label(picture pic=currentpicture, pair position, pair align) { if(s == "") return; pic.add(new void (frame f, transform t) { @@ -324,7 +324,7 @@ struct Label { void out(picture pic=currentpicture) { label(pic,position.position,align.dir); } - + void out(picture pic=currentpicture, path g) { bool relative=position.relative; real position=position.position.x; @@ -349,7 +349,7 @@ struct Label { pair position=point(g,position); pic.addBox(position,position,min(f),max(f)); } - + void write(file file=stdout, suffix suffix=endl) { write(file,"\""+s+"\""); if(!defaultposition) write(file,", position=",position.position); @@ -364,11 +364,11 @@ struct Label { } write(file,"",suffix); } - + real relative() { return defaultposition ? 0.5 : position.position.x; }; - + real relative(path g) { return position.relative ? reltime(g,relative()) : relative(); }; @@ -380,12 +380,12 @@ void add(frame f, transform t=identity(), Label L) { L.out(f,t); } - + void add(picture pic=currentpicture, Label L) { L.out(pic); } - + Label operator * (transform t, Label L) { Label tL=L.copy(); @@ -466,20 +466,20 @@ void label(frame f, Label L, pair position, align align=NoAlign, { add(f,Label(L,position,align,p,filltype)); } - + void label(frame f, Label L, align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) { add(f,Label(L,L.position,align,p,filltype)); } - + void label(picture pic=currentpicture, Label L, pair position, align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) { Label L=Label(L,position,align,p,filltype); add(pic,L); } - + void label(picture pic=currentpicture, Label L, align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) { @@ -494,7 +494,7 @@ void label(pair origin, picture pic=currentpicture, Label L, align align=NoAlign label(opic,L,L.position,align,p,filltype); add(pic,opic,origin); } - + void label(picture pic=currentpicture, Label L, explicit path g, align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) { @@ -532,12 +532,12 @@ object operator cast(frame f) { return object(f); } -object operator cast(Label L) +object operator cast(Label L) { return object(L); } -object operator cast(string s) +object operator cast(string s) { return object(s); } @@ -562,7 +562,7 @@ object operator * (transform t, explicit object F) } // Returns a copy of object F aligned in the direction align -object align(object F, pair align) +object align(object F, pair align) { return shift(F.f,align)*F; } @@ -594,7 +594,7 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) real fontsize; string font; - void operator init(Label L) + void operator init(Label L) { s=replace(L.s,'\n',' '); fontsize=fontsize(L.p); @@ -603,7 +603,7 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) pen pen() {return fontsize(fontsize)+fontcommand(font);} } - + bool lexorder(stringfont a, stringfont b) { return a.s < b.s || (a.s == b.s && (a.fontsize < b.fontsize || (a.fontsize == b.fontsize && @@ -615,7 +615,7 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) static stringfont[] stringlist; static bool adjust[]; - + path[] G; stringfont s=stringfont(L); @@ -649,7 +649,7 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) label(f,L); return transform(box(min(f),max(f)),L); } - + if(stringlist.length > 0) { path[][] g; int n=stringlist.length; @@ -660,9 +660,9 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) s[i]=adjust[i] ? "."+S.s : S.s; p[i]=adjust[i] ? S.pen()+basealign : S.pen(); } - + g=tex ? _texpath(s,p) : textpath(s,p); - + if(tex) for(int i=0; i < n; ++i) if(adjust[i]) { @@ -670,8 +670,8 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) g[i].delete(0); g[i]=shift(0,-y)*g[i]; } - - + + for(int i=0; i < stringlist.length; ++i) { stringfont s=stringlist[i]; int j=search(stringcache,s,lexorder)+1; @@ -686,6 +686,6 @@ path[] texpath(Label L, bool tex=settings.tex != "none", bool bbox=false) } texpath=new path[](string s, pen p, bool tex=settings.tex != "none", bool bbox=false) -{ - return texpath(Label(s,p)); -}; + { + return texpath(Label(s,p)); + }; diff --git a/Master/texmf-dist/asymptote/plain_arcs.asy b/Master/texmf-dist/asymptote/plain_arcs.asy index 140bc3cff19..11c603b6152 100644 --- a/Master/texmf-dist/asymptote/plain_arcs.asy +++ b/Master/texmf-dist/asymptote/plain_arcs.asy @@ -1,5 +1,5 @@ bool CCW=true; -bool CW=false; +bool CW=false; path circle(pair c, real r) { @@ -35,7 +35,7 @@ path arc(pair c, real r, real angle1, real angle2, bool direction) { return arc(c,c+r*dir(angle1),c+r*dir(angle2),direction); } - + // return an arc centered at c with radius r > 0 from angle1 to angle2 in // degrees, drawing counterclockwise if angle2 >= angle1 (otherwise clockwise). path arc(pair c, real r, real angle1, real angle2) diff --git a/Master/texmf-dist/asymptote/plain_arrows.asy b/Master/texmf-dist/asymptote/plain_arrows.asy index 96a33dd5a44..79ee403af3d 100644 --- a/Master/texmf-dist/asymptote/plain_arrows.asy +++ b/Master/texmf-dist/asymptote/plain_arrows.asy @@ -12,7 +12,7 @@ real arrowtexfactor=1; real barfactor=arrowfactor; -real arrowsize(pen p=currentpen) +real arrowsize(pen p=currentpen) { return arrowfactor*linewidth(p); } @@ -53,39 +53,39 @@ path arrowbase(path r, pair y, real t, real size) arrowhead DefaultHead; DefaultHead.head=new path(path g, position position=EndPoint, pen p=currentpen, real size=0, real angle=arrowangle) { - if(size == 0) size=DefaultHead.size(p); - bool relative=position.relative; - real position=position.position.x; - if(relative) position=reltime(g,position); - path r=subpath(g,position,0); - pair x=point(r,0); - real t=arctime(r,size); - pair y=point(r,t); - path base=arrowbase(r,y,t,size); - path left=rotate(-angle,x)*r; - path right=rotate(angle,x)*r; - real[] T=arrowbasepoints(base,left,right); - pair denom=point(right,T[1])-y; - real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1; - path left=rotate(-angle*factor,x)*r; - path right=rotate(angle*factor,x)*r; - real[] T=arrowbasepoints(base,left,right); - return subpath(left,0,T[0])--subpath(right,T[1],0)&cycle; + if(size == 0) size=DefaultHead.size(p); + bool relative=position.relative; + real position=position.position.x; + if(relative) position=reltime(g,position); + path r=subpath(g,position,0); + pair x=point(r,0); + real t=arctime(r,size); + pair y=point(r,t); + path base=arrowbase(r,y,t,size); + path left=rotate(-angle,x)*r; + path right=rotate(angle,x)*r; + real[] T=arrowbasepoints(base,left,right); + pair denom=point(right,T[1])-y; + real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1; + path left=rotate(-angle*factor,x)*r; + path right=rotate(angle*factor,x)*r; + real[] T=arrowbasepoints(base,left,right); + return subpath(left,0,T[0])--subpath(right,T[1],0)&cycle; }; arrowhead SimpleHead; SimpleHead.head=new path(path g, position position=EndPoint, pen p=currentpen, real size=0, real angle=arrowangle) { - if(size == 0) size=SimpleHead.size(p); - bool relative=position.relative; - real position=position.position.x; - if(relative) position=reltime(g,position); - path r=subpath(g,position,0); - pair x=point(r,0); - real t=arctime(r,size); - path left=rotate(-angle,x)*r; - path right=rotate(angle,x)*r; - return subpath(left,t,0)--subpath(right,0,t); + if(size == 0) size=SimpleHead.size(p); + bool relative=position.relative; + real position=position.position.x; + if(relative) position=reltime(g,position); + path r=subpath(g,position,0); + pair x=point(r,0); + real t=arctime(r,size); + path left=rotate(-angle,x)*r; + path right=rotate(angle,x)*r; + return subpath(left,t,0)--subpath(right,0,t); }; arrowhead HookHead(real dir=arrowdir, real barb=arrowbarb) @@ -94,34 +94,34 @@ arrowhead HookHead(real dir=arrowdir, real barb=arrowbarb) a.head=new path(path g, position position=EndPoint, pen p=currentpen, real size=0, real angle=arrowangle) { - if(size == 0) size=a.size(p); - angle=min(angle*arrowhookfactor,45); - bool relative=position.relative; - real position=position.position.x; - if(relative) position=reltime(g,position); - path r=subpath(g,position,0); - pair x=point(r,0); - real t=arctime(r,size); - pair y=point(r,t); - path base=arrowbase(r,y,t,size); - path left=rotate(-angle,x)*r; - path right=rotate(angle,x)*r; - real[] T=arrowbasepoints(base,left,right,1); - pair denom=point(right,T[1])-y; - real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1; - path left=rotate(-angle*factor,x)*r; - path right=rotate(angle*factor,x)*r; - real[] T=arrowbasepoints(base,left,right,1); - left=subpath(left,0,T[0]); - right=subpath(right,T[1],0); - pair pl0=point(left,0), pl1=relpoint(left,1); - pair pr0=relpoint(right,0), pr1=relpoint(right,1); - pair M=(pl1+pr0)/2; - pair v=barb*unit(M-pl0); - pl1=pl1+v; pr0=pr0+v; - left=pl0{dir(-dir+degrees(M-pl0,false))}..pl1--M; - right=M--pr0..pr1{dir(dir+degrees(pr1-M,false))}; - return left--right&cycle; + if(size == 0) size=a.size(p); + angle=min(angle*arrowhookfactor,45); + bool relative=position.relative; + real position=position.position.x; + if(relative) position=reltime(g,position); + path r=subpath(g,position,0); + pair x=point(r,0); + real t=arctime(r,size); + pair y=point(r,t); + path base=arrowbase(r,y,t,size); + path left=rotate(-angle,x)*r; + path right=rotate(angle,x)*r; + real[] T=arrowbasepoints(base,left,right,1); + pair denom=point(right,T[1])-y; + real factor=denom != 0 ? length((point(left,T[0])-y)/denom) : 1; + path left=rotate(-angle*factor,x)*r; + path right=rotate(angle*factor,x)*r; + real[] T=arrowbasepoints(base,left,right,1); + left=subpath(left,0,T[0]); + right=subpath(right,T[1],0); + pair pl0=point(left,0), pl1=relpoint(left,1); + pair pr0=relpoint(right,0), pr1=relpoint(right,1); + pair M=(pl1+pr0)/2; + pair v=barb*unit(M-pl0); + pl1=pl1+v; pr0=pr0+v; + left=pl0{dir(-dir+degrees(M-pl0,false))}..pl1--M; + right=M--pr0..pr1{dir(dir+degrees(pr1-M,false))}; + return left--right&cycle; }; return a; } @@ -129,35 +129,35 @@ arrowhead HookHead=HookHead(); arrowhead TeXHead; TeXHead.size=new real(pen p) -{ - static real hcoef=2.1; // 84/40=abs(base-hint)/base_height - return hcoef*arrowtexfactor*linewidth(p); -}; + { + static real hcoef=2.1; // 84/40=abs(base-hint)/base_height + return hcoef*arrowtexfactor*linewidth(p); + }; TeXHead.arcsize=TeXHead.size; TeXHead.head=new path(path g, position position=EndPoint, pen p=currentpen, real size=0, real angle=arrowangle) { - static real wcoef=1/84; // 1/abs(base-hint) - static path texhead=scale(wcoef)* - ((0,20) .. controls (-75,75) and (-108,158) .. - (-108,166) .. controls (-108,175) and (-100,178) .. - (-93,178) .. controls (-82,178) and (-80,173) .. - (-77,168) .. controls (-62,134) and (-30,61) .. - (70,14) .. controls (82,8) and (84,7) .. - (84,0) .. controls (84,-7) and (82,-8) .. - (70,-14) .. controls (-30,-61) and (-62,-134) .. - (-77,-168) .. controls (-80,-173) and (-82,-178) .. - (-93,-178) .. controls (-100,-178) and (-108,-175).. - (-108,-166).. controls (-108,-158) and (-75,-75) .. - (0,-20)--cycle); - if(size == 0) size=TeXHead.size(p); - path gp=scale(size)*texhead; - bool relative=position.relative; - real position=position.position.x; - if(relative) position=reltime(g,position); - path r=subpath(g,position,0); - pair y=point(r,arctime(r,size)); - return shift(y)*rotate(degrees(-dir(r,arctime(r,0.5*size))))*gp; + static real wcoef=1/84; // 1/abs(base-hint) + static path texhead=scale(wcoef)* + ((0,20) .. controls (-75,75) and (-108,158) .. + (-108,166) .. controls (-108,175) and (-100,178) .. + (-93,178) .. controls (-82,178) and (-80,173) .. + (-77,168) .. controls (-62,134) and (-30,61) .. + (70,14) .. controls (82,8) and (84,7) .. + (84,0) .. controls (84,-7) and (82,-8) .. + (70,-14) .. controls (-30,-61) and (-62,-134) .. + (-77,-168) .. controls (-80,-173) and (-82,-178) .. + (-93,-178) .. controls (-100,-178) and (-108,-175).. + (-108,-166).. controls (-108,-158) and (-75,-75) .. + (0,-20)--cycle); + if(size == 0) size=TeXHead.size(p); + path gp=scale(size)*texhead; + bool relative=position.relative; + real position=position.position.x; + if(relative) position=reltime(g,position); + path r=subpath(g,position,0); + pair y=point(r,arctime(r,size)); + return shift(y)*rotate(degrees(-dir(r,arctime(r,0.5*size))))*gp; }; TeXHead.defaultfilltype=new filltype(pen p) {return Fill(p);}; @@ -169,7 +169,7 @@ private real position(position position, real size, path g, bool center) position *= arclength(g); if(center) position += 0.5*size; position=arctime(g,position); - } else if(center) + } else if(center) position=arctime(g,arclength(subpath(g,0,position))+0.5*size); return position; } @@ -251,7 +251,7 @@ picture arrow(arrowhead arrowhead=DefaultHead, drawarrow(f,arrowhead,t*g,p,size,angle,filltype,position,forwards,margin, center); }); - + pic.addPath(g,p); real position=position(position,size,g,center); @@ -275,7 +275,7 @@ picture arrow2(arrowhead arrowhead=DefaultHead, pic.add(new void(frame f, transform t) { drawarrow2(f,arrowhead,t*g,p,size,angle,filltype,margin); }); - + pic.addPath(g,p); int L=length(g); @@ -291,7 +291,7 @@ void bar(picture pic, pair a, pair d, pen p=currentpen) Draw(opic,-0.5d--0.5d,p+solid); add(pic,opic,a); } - + picture bar(pair a, pair d, pen p=currentpen) { picture pic; @@ -345,7 +345,7 @@ arrowbar MidArrow(arrowhead arrowhead=DefaultHead, return false; }; } - + arrowbar Arrows(arrowhead arrowhead=DefaultHead, real size=0, real angle=arrowangle, filltype filltype=null) @@ -383,7 +383,7 @@ arrowbar EndArcArrow(arrowhead arrowhead=DefaultHead, real size=0, real angle=arcarrowangle, filltype filltype=null, position position=EndPoint)=ArcArrow; - + arrowbar MidArcArrow(arrowhead arrowhead=DefaultHead, real size=0, real angle=arcarrowangle, filltype filltype=null) @@ -395,7 +395,7 @@ arrowbar MidArcArrow(arrowhead arrowhead=DefaultHead, return false; }; } - + arrowbar ArcArrows(arrowhead arrowhead=DefaultHead, real size=0, real angle=arcarrowangle, filltype filltype=null) @@ -406,8 +406,8 @@ arrowbar ArcArrows(arrowhead arrowhead=DefaultHead, return false; }; } - -arrowbar BeginBar(real size=0) + +arrowbar BeginBar(real size=0) { return new bool(picture pic, path g, pen p, margin margin) { real size=size == 0 ? barsize(p) : size; @@ -416,7 +416,7 @@ arrowbar BeginBar(real size=0) }; } -arrowbar Bar(real size=0) +arrowbar Bar(real size=0) { return new bool(picture pic, path g, pen p, margin margin) { int L=length(g); @@ -426,9 +426,9 @@ arrowbar Bar(real size=0) }; } -arrowbar EndBar(real size=0)=Bar; +arrowbar EndBar(real size=0)=Bar; -arrowbar Bars(real size=0) +arrowbar Bars(real size=0) { return new bool(picture pic, path g, pen p, margin margin) { real size=size == 0 ? barsize(p) : size; @@ -469,73 +469,73 @@ void draw(picture pic=currentpicture, Label L=null, path g, // These if statements are ordered in such a way that the most common case // (with just a path and a pen) executes the least bytecode. if (marker == nomarker) - { - if (arrow == None && bar == None) { - if (margin == NoMargin && size(nib(p)) == 0) - { - pic.addExactAbove( - new void(frame f, transform t, transform T, pair, pair) { - _draw(f,t*T*g,p); - }); - pic.addPath(g,p); - - // Jumping over else clauses takes time, so test if we can return - // here. - if (L == null && legend == null) - return; + if (arrow == None && bar == None) + { + if (margin == NoMargin && size(nib(p)) == 0) + { + pic.addExactAbove( + new void(frame f, transform t, transform T, pair, pair) { + _draw(f,t*T*g,p); + }); + pic.addPath(g,p); + + // Jumping over else clauses takes time, so test if we can return + // here. + if (L == null && legend == null) + return; + } + else // With margin or polygonal pen. + { + _draw(pic, g, p, margin); + } + } + else /* arrow or bar */ + { + // Note we are using & instead of && as both arrow and bar need to be + // called. + if (arrow(pic, g, p, margin) & bar(pic, g, p, margin)) + _draw(pic, g, p, margin); + } + + if(L != null && L.s != "") { + L=L.copy(); + L.align(align); + L.p(p); + L.out(pic,g); } - else // With margin or polygonal pen. - { - _draw(pic, g, p, margin); + + if(legend != null && legend.s != "") { + legend.p(p); + pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above)); } } - else /* arrow or bar */ + else /* marker != nomarker */ { + if(marker != nomarker && !marker.above) marker.mark(pic,g); + // Note we are using & instead of && as both arrow and bar need to be // called. - if (arrow(pic, g, p, margin) & bar(pic, g, p, margin)) - _draw(pic, g, p, margin); - } - - if(L != null && L.s != "") { - L=L.copy(); - L.align(align); - L.p(p); - L.out(pic,g); - } - - if(legend != null && legend.s != "") { - legend.p(p); - pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above)); - } - } - else /* marker != nomarker */ - { - if(marker != nomarker && !marker.above) marker.mark(pic,g); - - // Note we are using & instead of && as both arrow and bar need to be - // called. - if ((arrow == None || arrow(pic, g, p, margin)) & - (bar == None || bar(pic, g, p, margin))) - { - _draw(pic, g, p, margin); + if ((arrow == None || arrow(pic, g, p, margin)) & + (bar == None || bar(pic, g, p, margin))) + { + _draw(pic, g, p, margin); + } + + if(L != null && L.s != "") { + L=L.copy(); + L.align(align); + L.p(p); + L.out(pic,g); } - if(L != null && L.s != "") { - L=L.copy(); - L.align(align); - L.p(p); - L.out(pic,g); - } + if(legend != null && legend.s != "") { + legend.p(p); + pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above)); + } - if(legend != null && legend.s != "") { - legend.p(p); - pic.legend.push(Legend(legend.s,legend.p,p,marker.f,marker.above)); + if(marker != nomarker && marker.above) marker.mark(pic,g); } - - if(marker != nomarker && marker.above) marker.mark(pic,g); - } } // Draw a fixed-size line about the user-coordinate 'origin'. @@ -551,12 +551,12 @@ void draw(pair origin, picture pic=currentpicture, Label L=null, path g, void draw(picture pic=currentpicture, explicit path[] g, pen p=currentpen, Label legend=null, marker marker=nomarker) -{ +{ // This could be optimized to size and draw the entire array as a batch. - for(int i=0; i < g.length-1; ++i) + for(int i=0; i < g.length-1; ++i) draw(pic,g[i],p,marker); if(g.length > 0) draw(pic,g[g.length-1],p,legend,marker); -} +} void draw(picture pic=currentpicture, guide[] g, pen p=currentpen, Label legend=null, marker marker=nomarker) @@ -621,7 +621,7 @@ frame[] fit(string prefix="", picture[] pictures, string format="", { if(pictures.length == 0) return new frame[]; - + picture all; size(all,pictures[0]); for(picture pic : pictures) diff --git a/Master/texmf-dist/asymptote/plain_bounds.asy b/Master/texmf-dist/asymptote/plain_bounds.asy index b74a6ceee6a..c4e24721773 100644 --- a/Master/texmf-dist/asymptote/plain_bounds.asy +++ b/Master/texmf-dist/asymptote/plain_bounds.asy @@ -4,7 +4,7 @@ include plain_scaling; // have been added, this is only an approximation since it takes the bounds of // their transformed bounding box. private void addTransformedCoords(coords2 dest, transform t, - coords2 point, coords2 min, coords2 max) + coords2 point, coords2 min, coords2 max) { dest.push(t, point, point); @@ -47,7 +47,7 @@ private void addIfMaximal(coord[] dest, coord[] src) for (coord c : src) addIfMaximal(dest, c.user, c.truesize); } - + // Same as addIfMaximal, but testing for minimal coords. private void addIfMinimal(coord[] coords, real user, real truesize) { for (coord c : coords) @@ -130,7 +130,7 @@ private struct freezableBounds { void operator init(coord[] left, coord[] bottom, coord[] right, coord[] top) { this.left = left; - this.bottom = bottom; + this.bottom = bottom; this.right = right; this.top = top; } @@ -197,7 +197,7 @@ private struct freezableBounds { void addBox(pair userMin, pair userMax, pair trueMin, pair trueMax) { assert(!frozen); - this.min.push(userMin, trueMin); + this.min.push(userMin, trueMin); this.max.push(userMax, trueMax); } @@ -334,7 +334,7 @@ private struct freezableBounds { addLocalsToExtremes(t, e); } - + private void addLocalsToExtremes(extremes e) { addMinToExtremes(e, point); addMaxToExtremes(e, point); @@ -466,7 +466,7 @@ private struct freezableBounds { acc.pushUserCoords(min, max); if (pathBounds.length > 0) acc.push(min(pathBounds), max(pathBounds)); - for (var pp : pathpenBounds) + for (var pp : pathpenBounds) if(size(pp.g) > 0) acc.push(min(pp.g), max(pp.g)); for (var link : links) @@ -623,13 +623,13 @@ private struct freezableBounds { // Get the extremal coordinates. extremes e = extremes(); - + real sx; if(xunitsize == 0) { if(xsize != 0) sx=calculateScaling("x",e.left,e.right,xsize,warn); } else sx=xunitsize; - /* Possible alternative code : + /* Possible alternative code : real sx = xunitsize != 0 ? xunitsize : xsize != 0 ? calculateScaling("x", Coords.x, xsize, warn) : 0; */ @@ -697,7 +697,7 @@ struct bounds { makeMutable(); base.append(b.base); } - + void append(transform t, bounds b) { // makeMutable will be called by append. if (t == identity()) @@ -760,7 +760,7 @@ struct bounds { makeMutable(); base.yclip(Min,Max); } - + void clip(pair Min, pair Max) { // TODO: If the user bounds have been manually altered, they may be // incorrect after the clip. diff --git a/Master/texmf-dist/asymptote/plain_boxes.asy b/Master/texmf-dist/asymptote/plain_boxes.asy index c675ab4cde9..50501a40897 100644 --- a/Master/texmf-dist/asymptote/plain_boxes.asy +++ b/Master/texmf-dist/asymptote/plain_boxes.asy @@ -20,7 +20,6 @@ path roundbox(frame dest, frame src=dest, real xmargin=0, real ymargin=xmargin, pair m=min(src); pair M=max(src); pair bound=M-m; - int sign=filltype == NoFill ? 1 : -1; real a=bound.x+2*xmargin; real b=bound.y+2*ymargin; real ds=0; @@ -90,7 +89,7 @@ object object(Label L, envelope e, real xmargin=0, real ymargin=xmargin, L0.position(0); L0.p(p); add(F.f,L0); - F.g=e(F.f,xmargin,ymargin,p,filltype); + F.g=e(F.f,xmargin,ymargin,p,filltype,above); return F; } diff --git a/Master/texmf-dist/asymptote/plain_margins.asy b/Master/texmf-dist/asymptote/plain_margins.asy index c4522754481..fbd0163050c 100644 --- a/Master/texmf-dist/asymptote/plain_margins.asy +++ b/Master/texmf-dist/asymptote/plain_margins.asy @@ -5,7 +5,7 @@ struct marginT { typedef marginT margin(path, pen); -path trim(path g, real begin, real end) { +path trim(path g, real begin, real end=begin) { real a=arctime(g,begin); real b=arctime(g,arclength(g)-end); return a <= b ? subpath(g,a,b) : point(g,a); @@ -36,7 +36,7 @@ margin NoMargin() }; } -margin Margin(real begin, real end) +margin Margin(real begin, real end=begin) { return new marginT(path g, pen p) { marginT margin; @@ -48,7 +48,7 @@ margin Margin(real begin, real end) }; } -margin PenMargin(real begin, real end) +margin PenMargin(real begin, real end=begin) { return new marginT(path g, pen p) { marginT margin; @@ -60,7 +60,7 @@ margin PenMargin(real begin, real end) }; } -margin DotMargin(real begin, real end) +margin DotMargin(real begin, real end=begin) { return new marginT(path g, pen p) { marginT margin; @@ -73,7 +73,7 @@ margin DotMargin(real begin, real end) }; } -margin TrueMargin(real begin, real end) +margin TrueMargin(real begin, real end=begin) { return new marginT(path g, pen p) { marginT margin; diff --git a/Master/texmf-dist/asymptote/plain_picture.asy b/Master/texmf-dist/asymptote/plain_picture.asy index 025e6741cfd..c0c189ee691 100644 --- a/Master/texmf-dist/asymptote/plain_picture.asy +++ b/Master/texmf-dist/asymptote/plain_picture.asy @@ -1355,50 +1355,43 @@ void gouraudshade(picture pic=currentpicture, path[] g, bool stroke=false, } void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false, - pen fillrule=currentpen, pen[][] p, path[] b=g, + pen fillrule=currentpen, pen[][] p, path[] b=new path[], pair[][] z=new pair[][], bool copy=true) { + bool compact=b.length == 0 || b[0] == nullpath; if(copy) { g=copy(g); p=copy(p); - b=copy(b); + if(!compact) b=copy(b); z=copy(z); } pic.add(new void(frame f, transform t) { pair[][] Z=new pair[z.length][]; for(int i=0; i < z.length; ++i) Z[i]=t*z[i]; - tensorshade(f,t*g,stroke,fillrule,p,t*b,Z,false); + path[] G=t*g; + if(compact) + tensorshade(f,G,stroke,fillrule,p,Z,false); + else + tensorshade(f,G,stroke,fillrule,p,t*b,Z,false); },true); pic.addPath(g); } void tensorshade(frame f, path[] g, bool stroke=false, pen fillrule=currentpen, pen[] p, - path b=g.length > 0 ? g[0] : nullpath) + path b=g.length > 0 ? g[0] : nullpath, pair[] z=new pair[]) { - tensorshade(f,g,stroke,fillrule,new pen[][] {p},b); -} - -void tensorshade(frame f, path[] g, bool stroke=false, - pen fillrule=currentpen, pen[] p, - path b=g.length > 0 ? g[0] : nullpath, pair[] z) -{ - tensorshade(f,g,stroke,fillrule,new pen[][] {p},b,new pair[][] {z}); -} - -void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false, - pen fillrule=currentpen, pen[] p, - path b=g.length > 0 ? g[0] : nullpath) -{ - tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b); + tensorshade(f,g,stroke,fillrule,new pen[][] {p},b, + z.length > 0 ? new pair[][] {z} : new pair[][]); } void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false, pen fillrule=currentpen, pen[] p, - path b=g.length > 0 ? g[0] : nullpath, pair[] z) + path b=nullpath, pair[] z=new pair[]) { - tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b,new pair[][] {z}); + tensorshade(pic,g,stroke,fillrule,new pen[][] {p},b, + z.length > 0 ? new pair[][] {z} : new pair[][]); } // Smoothly shade the regions between consecutive paths of a sequence using a diff --git a/Master/texmf-dist/asymptote/plain_shipout.asy b/Master/texmf-dist/asymptote/plain_shipout.asy index e062a775465..388a03a557b 100644 --- a/Master/texmf-dist/asymptote/plain_shipout.asy +++ b/Master/texmf-dist/asymptote/plain_shipout.asy @@ -86,14 +86,10 @@ void shipout(string prefix=defaultfilename, frame f, } } - if(outformat(format) == "html") { - warning("htmltosvg", - "html output requested for 2D picture; generating svg image instead..."); - format="svg"; - } - - if(settings.xasy || (!implicitshipout && prefix == defaultfilename)) { - if(prefix == defaultfilename) { + bool defaultprefix=prefix==defaultfilename; + + if(settings.xasy || (!implicitshipout && defaultprefix)) { + if(defaultprefix) { currentpicture.clear(); add(f,group=false); } @@ -132,8 +128,15 @@ void shipout(string prefix=defaultfilename, picture pic=currentpicture, } frame f; transform t=pic.calculateTransform(); - if(currentpicture.fitter == null) - f=pic.fit(t); + if(currentpicture.fitter == null) { + pen background=currentlight.background; + if(settings.outformat == "html" && background == nullpen) + background=white; + if(background != nullpen) + f=bbox(pic,nullpen,Fill(background)); + else + f=pic.fit(t); + } else f=pic.fit(prefix,format,view=view,options,script,light,P); diff --git a/Master/texmf-dist/asymptote/rationalSimplex.asy b/Master/texmf-dist/asymptote/rationalSimplex.asy index 823d91c2d0b..3a376ba2ddb 100644 --- a/Master/texmf-dist/asymptote/rationalSimplex.asy +++ b/Master/texmf-dist/asymptote/rationalSimplex.asy @@ -1,8 +1,8 @@ // Rational simplex solver written by John C. Bowman and Pouria Ramazi, 2018. import rational; -void simplexStandard(rational[] c, rational[][] A, int[] s=new int[], - rational[] b) {} +void simplexInit(rational[] c, rational[][] A, int[] s=new int[], + rational[] b, int count) {} void simplexTableau(rational[][] E, int[] Bindices, int I=-1, int J=-1) {} void simplexPhase1(rational[] c, rational[][] A, rational[] b, int[] Bindices) {} @@ -35,7 +35,10 @@ struct simplex { int case; rational[] x; + rational[] xStandard; rational cost; + rational[] d; + bool dual=false; int m,n; int J; @@ -70,7 +73,7 @@ struct simplex { int iterate(rational[][] E, int N, int[] Bindices) { while(true) { - // Find first negative entry in bottom (reduced cost) row + // Bland's rule: first negative entry in reduced cost (bottom) row enters rational[] Em=E[m]; for(J=1; J <= N; ++J) if(Em[J] < 0) break; @@ -94,7 +97,7 @@ struct simplex { rational r=E[i][0]/u; if(r <= t && (r < t || Bindices[i] < Bindices[I])) { t=r; I=i; - } // Bland's rule: exiting variable has smallest minimizing index + } // Bland's rule: exiting variable has smallest minimizing subscript } } if(I == -1) @@ -111,8 +114,7 @@ struct simplex { int iterateDual(rational[][] E, int N, int[] Bindices) { while(true) { - // Find first negative entry in zeroth (basic variable) column - rational[] Em=E[m]; + // Bland's rule: negative variable with smallest subscript exits int I; for(I=0; I < m; ++I) { if(E[I][0] < 0) break; @@ -121,23 +123,30 @@ struct simplex { if(I == m) break; + for(int i=I+1; i < m; ++i) { + if(E[i][0] < 0 && Bindices[i] < Bindices[I]) + I=i; + } + + rational[] Em=E[m]; + rational[] EI=E[I]; int J=0; rational t; for(int j=1; j <= N; ++j) { - rational u=E[I][j]; + rational u=EI[j]; if(u < 0) { - t=-E[m][j]/u; + t=-Em[j]/u; J=j; break; } } for(int j=J+1; j <= N; ++j) { - rational u=E[I][j]; + rational u=EI[j]; if(u < 0) { - rational r=-E[m][j]/u; + rational r=-Em[j]/u; if(r <= t && (r < t || j < J)) { t=r; J=j; - } // Bland's rule: exiting variable has smallest minimizing index + } // Bland's rule: smallest minimizing subscript enters } } if(J == 0) @@ -157,8 +166,7 @@ struct simplex { // b is a vector of length m, and c is a vector of length n. // Can set phase1=false if the last m columns of A form the identity matrix. void operator init(rational[] c, rational[][] A, rational[] b, - bool phase1=true, bool dual=false) { - if(dual) phase1=false; + bool phase1=true) { // Phase 1 m=A.length; if(m == 0) {case=INFEASIBLE; return;} @@ -243,7 +251,7 @@ struct simplex { simplexPhase1(c,A,b,Bindices); iterate(E,n+k,Bindices); - + if(Em[0] != 0) { simplexTableau(E,Bindices); case=INFEASIBLE; @@ -278,7 +286,7 @@ struct simplex { for(int i=0; i < m; ++i) { int k=Bindices[i]; if(k > n) continue; - Bindices[ip]=k; + Bindices[ip]=k; cB[ip]=c[k-1]; rational[] Dip=D[ip]; rational[] Ei=E[i]; @@ -319,14 +327,27 @@ struct simplex { case=(dual ? iterateDual : iterate)(D,n,Bindices); simplexTableau(D,Bindices); - if(case != OPTIMAL) - return; - for(int j=0; j < n; ++j) - x[j]=0; + if(case != INFEASIBLE) { + x=new rational[n]; + for(int j=0; j < n; ++j) + x[j]=0; - for(int k=0; k < m; ++k) - x[Bindices[k]-1]=D[k][0]; + for(int k=0; k < m; ++k) + x[Bindices[k]-1]=D[k][0]; + } + + if(case == UNBOUNDED) { + d=new rational[n]; + for(int j=0; j < n; ++j) + d[j]=0; + d[J-1]=1; + for(int k=0; k < m; ++k) + d[Bindices[k]-1]=-D[k][J]; + } + + if(case != OPTIMAL) + return; cost=-Dm[0]; } @@ -353,21 +374,21 @@ struct simplex { ai[j]=Ai[j]; } } - + int k=0; bool phase1=false; - bool dual=count == m && all(c >= 0); + dual=count == m && all(c >= 0); for(int i=0; i < m; ++i) { rational[] ai=a[i]; for(int j=0; j < k; ++j) ai[n+j]=0; + int si=s[i]; if(k < count) - ai[n+k]=-s[i]; + ai[n+k]=-si; for(int j=k+1; j < count; ++j) ai[n+j]=0; - int si=s[i]; if(si == 0) phase1=true; else { ++k; @@ -378,23 +399,25 @@ struct simplex { for(int j=0; j < n+count; ++j) ai[j]=-ai[j]; } - } else if(si*bi > 0) { - if(dual && si == 1) { - b[i]=-bi; - s[i]=-1; - for(int j=0; j < n+count; ++j) - ai[j]=-ai[j]; - } else - phase1=true; - } + } else if(dual && si == 1) { + b[i]=-bi; + s[i]=-1; + for(int j=0; j < n+count; ++j) + ai[j]=-ai[j]; + } else if(si*bi > 0) + phase1=true; } } + if(dual) phase1=false; rational[] C=concat(c,array(count,rational(0))); - if(count > 0) simplexStandard(C,a,b); - operator init(C,a,b,phase1,dual); + simplexInit(C,a,b,count); + operator init(C,a,b,phase1); - if(case == OPTIMAL && count > 0) - x.delete(n,n+count-1); + if(case != INFEASIBLE) { + xStandard=copy(x); + if(count > 0) + x.delete(n,n+count-1); + } } } diff --git a/Master/texmf-dist/asymptote/simplex.asy b/Master/texmf-dist/asymptote/simplex.asy index c27b3236be1..e6d0410b23c 100644 --- a/Master/texmf-dist/asymptote/simplex.asy +++ b/Master/texmf-dist/asymptote/simplex.asy @@ -8,6 +8,7 @@ struct simplex { int case; real[] x; real cost; + bool dual=false; int m,n; int J; @@ -43,7 +44,7 @@ struct simplex { int iterate(real[][] E, int N, int[] Bindices) { while(true) { - // Find first negative entry in bottom (reduced cost) row + // Bland's rule: first negative entry in reduced cost (bottom) row enters real[] Em=E[m]; for(J=1; J <= N; ++J) if(Em[J] < 0) break; @@ -67,7 +68,7 @@ struct simplex { real r=E[i][0]/u; if(r <= t && (r < t || Bindices[i] < Bindices[I])) { t=r; I=i; - } // Bland's rule: exiting variable has smallest minimizing index + } // Bland's rule: exiting variable has smallest minimizing subscript } } if(I == -1) @@ -82,8 +83,7 @@ struct simplex { int iterateDual(real[][] E, int N, int[] Bindices) { while(true) { - // Find first negative entry in zeroth (basic variable) column - real[] Em=E[m]; + // Bland's rule: negative variable with smallest subscript exits int I; for(I=0; I < m; ++I) { if(E[I][0] < 0) break; @@ -92,23 +92,30 @@ struct simplex { if(I == m) break; + for(int i=I+1; i < m; ++i) { + if(E[i][0] < 0 && Bindices[i] < Bindices[I]) + I=i; + } + + real[] Em=E[m]; + real[] EI=E[I]; int J=0; real t; for(int j=1; j <= N; ++j) { - real u=E[I][j]; + real u=EI[j]; if(u < -EpsilonA) { - t=-E[m][j]/u; + t=-Em[j]/u; J=j; break; } } for(int j=J+1; j <= N; ++j) { - real u=E[I][j]; + real u=EI[j]; if(u < -EpsilonA) { - real r=-E[m][j]/u; - if(r <= t && (r < t || j < J)) { + real r=-Em[j]/u; + if(r < t) { t=r; J=j; - } // Bland's rule: exiting variable has smallest minimizing index + } // Bland's rule: smallest minimizing subscript enters } } if(J == 0) @@ -125,9 +132,7 @@ struct simplex { // where A is an m x n matrix, x is a vector of n non-negative numbers, // b is a vector of length m, and c is a vector of length n. // Can set phase1=false if the last m columns of A form the identity matrix. - void operator init(real[] c, real[][] A, real[] b, bool phase1=true, - bool dual=false) { - if(dual) phase1=false; + void operator init(real[] c, real[][] A, real[] b, bool phase1=true) { static real epsilon=sqrt(realEpsilon); real normA=norm(A); real epsilonA=100.0*realEpsilon*normA; @@ -324,11 +329,11 @@ struct simplex { real[] ai=a[i]; for(int j=0; j < k; ++j) ai[n+j]=0; + int si=s[i]; if(k < count) - ai[n+k]=-s[i]; + ai[n+k]=-si; for(int j=k+1; j < count; ++j) ai[n+j]=0; - int si=s[i]; if(si == 0) phase1=true; else { ++k; @@ -339,19 +344,18 @@ struct simplex { for(int j=0; j < n+count; ++j) ai[j]=-ai[j]; } - } else if(si*bi > 0) { - if(dual && si == 1) { - b[i]=-bi; - s[i]=-1; - for(int j=0; j < n+count; ++j) - ai[j]=-ai[j]; - } else - phase1=true; - } + } else if(dual && si == 1) { + b[i]=-bi; + s[i]=-1; + for(int j=0; j < n+count; ++j) + ai[j]=-ai[j]; + } else if(si*bi > 0) + phase1=true; } } - operator init(concat(c,array(count,0.0)),a,b,phase1,dual); + if(dual) phase1=false; + operator init(concat(c,array(count,0.0)),a,b,phase1); if(case == OPTIMAL && count > 0) x.delete(n,n+count-1); diff --git a/Master/texmf-dist/asymptote/slide.asy b/Master/texmf-dist/asymptote/slide.asy index 8a787c37a5b..9d26c680652 100644 --- a/Master/texmf-dist/asymptote/slide.asy +++ b/Master/texmf-dist/asymptote/slide.asy @@ -309,7 +309,7 @@ void remark(bool center=false, string s, pair align=0, pen p=itempen, void center(string s, pen p=itempen) { - remark("\center "+s,p); + remark(center=true,"\center "+s,p); } void vbox(string s, pen p=itempen) diff --git a/Master/texmf-dist/asymptote/slopefield.asy b/Master/texmf-dist/asymptote/slopefield.asy index bdbb0252670..e87e2cd36f9 100644 --- a/Master/texmf-dist/asymptote/slopefield.asy +++ b/Master/texmf-dist/asymptote/slopefield.asy @@ -19,7 +19,6 @@ picture slopefield(real f(real,real), pair a, pair b, draw(pic,(cp.x-mp,cp.y-mp*slope)--(cp.x+mp,cp.y+mp*slope),p,arrow); } } - clip(pic,box(a,b)); return pic; } diff --git a/Master/texmf-dist/asymptote/three.asy b/Master/texmf-dist/asymptote/three.asy index 75f758dd353..5fc0d2f1096 100644 --- a/Master/texmf-dist/asymptote/three.asy +++ b/Master/texmf-dist/asymptote/three.asy @@ -1065,7 +1065,7 @@ triple dir(path3 p) triple dir(path3 p, path3 h) { - return 0.5*(dir(p)+dir(h)); + return unit(dir(p)+dir(h)); } // return the point on path3 p at arclength L @@ -1880,6 +1880,14 @@ transform3 align(triple u) return c >= 0 ? identity(4) : diagonal(1,-1,-1,1); } +// Align Label with normal in direction dir. +Label align(Label L, triple dir) +{ + Label L=L.copy(); + L.transform3(align(unit(dir))); + return L; +} + // return a rotation that maps X,Y to the projection plane. transform3 transform3(projection P=currentprojection) { @@ -2554,25 +2562,6 @@ private string Format(transform3 t, string sep=" ") Format(t[0][3])+sep+Format(t[1][3])+sep+Format(t[2][3]); } -void writeJavaScript(string name, string preamble, string script) -{ - file out=output(name); - write(out,preamble); - if(script != "") { - write(out,endl); - file in=input(script); - while(true) { - string line=in; - if(eof(in)) break; - write(out,line,endl); - } - } - close(out); - if(settings.verbose > 1) write("Wrote "+name); - if(!settings.inlinetex) - file3.push(name); -} - pair viewportmargin(pair lambda) { return maxbound(0.5*(viewportsize-lambda),viewportmargin); @@ -2593,7 +2582,7 @@ string embed3D(string prefix, string label=prefix, string text=label, if(script == "") script=defaultembed3Dscript; if(P.infinity) { - if(viewplanesize==0) { + if(viewplanesize == 0) { triple lambda=max3(f)-min3(f); pair margin=viewportmargin((lambda.x,lambda.y)); viewplanesize=(max(lambda.x+2*margin.x,lambda.y+2*margin.y))/P.zoom; @@ -2645,6 +2634,7 @@ struct scene pair viewportmargin; transform3 T=identity4; picture pic2; + bool keepAspect=true; void operator init(frame f, real width, real height, projection P=currentprojection) { @@ -2660,6 +2650,7 @@ struct scene projection P=currentprojection) { real xsize3=pic.xsize3, ysize3=pic.ysize3, zsize3=pic.zsize3; bool warn=true; + this.keepAspect=keepAspect; if(xsize3 == 0 && ysize3 == 0 && zsize3 == 0) { xsize3=ysize3=zsize3=max(xsize,ysize); @@ -2678,18 +2669,18 @@ struct scene if(!P.absolute) { this.P=t*P; + if(this.P.autoadjust || this.P.infinity) + adjusted=adjusted | this.P.adjust(m,M); if(this.P.center && settings.render != 0) { triple target=0.5*(m+M); this.P.target=target; this.P.calculate(); } - if(this.P.autoadjust || this.P.infinity) - adjusted=adjusted | this.P.adjust(m,M); } bool scale=xsize != 0 || ysize != 0; bool scaleAdjust=scale && this.P.autoadjust; - bool noAdjust=(this.P.absolute || !scaleAdjust); + bool noAdjust=this.P.absolute || !scaleAdjust; if(pic.bounds3.exact && noAdjust) this.P.bboxonly=false; @@ -2812,9 +2803,11 @@ object embed(string prefix=outprefix(), string label=prefix, triple m=min3(S.f); triple M=max3(S.f); triple lambda=M-m; - S.viewportmargin=viewportmargin((lambda.x,lambda.y)); - S.width=ceil(lambda.x+2*S.viewportmargin.x); - S.height=ceil(lambda.y+2*S.viewportmargin.y); + if(S.keepAspect) { + S.viewportmargin=viewportmargin((lambda.x,lambda.y)); + S.width=ceil(lambda.x+2*S.viewportmargin.x); + S.height=ceil(lambda.y+2*S.viewportmargin.y); + } orthoshift=(-0.5(m.x+M.x),-0.5*(m.y+M.y),0); S.f=shift(orthoshift)*S.f; // Eye will be at (0,0,0) inv=inverse(modelview); diff --git a/Master/texmf-dist/asymptote/three_light.asy b/Master/texmf-dist/asymptote/three_light.asy index 25db6ad6d27..46b0fef7d0e 100644 --- a/Master/texmf-dist/asymptote/three_light.asy +++ b/Master/texmf-dist/asymptote/three_light.asy @@ -125,7 +125,7 @@ light White=light(new pen[] {rgb(0.38,0.38,0.45),rgb(0.6,0.6,0.67), rgb(0.5,0.5,0.57)},specularfactor=3, new triple[] {(-2,-1.5,-0.5),(2,1.1,-2.5),(-0.5,0,2)}); -light Headlamp=light(gray(0.8),specular=gray(0.7), +light Headlamp=light(white,specular=gray(0.7), specularfactor=3,dir(42,48)); currentlight=Headlamp; diff --git a/Master/texmf-dist/asymptote/three_surface.asy b/Master/texmf-dist/asymptote/three_surface.asy index 8348d7ac3af..7d64ad22d72 100644 --- a/Master/texmf-dist/asymptote/three_surface.asy +++ b/Master/texmf-dist/asymptote/three_surface.asy @@ -1374,6 +1374,10 @@ void draw3D(frame f, patch s, triple center=O, material m, bool primitive=false) { bool straight=s.straight && s.planar; + + // Planar Bezier surfaces require extra precision in WebGL + int digits=s.planar && !straight ? 12 : settings.digits; + if(s.colors.length > 0) { if(prc() && light.on()) straight=false; // PRC vertex colors (for quads only) ignore lighting @@ -1383,7 +1387,7 @@ void draw3D(frame f, patch s, triple center=O, material m, (s.triangular ? drawbeziertriangle : draw) (f,s.P,center,straight,m.p,m.opacity,m.shininess, - m.metallic,m.fresnel0,s.colors,interaction.type,primitive); + m.metallic,m.fresnel0,s.colors,interaction.type,digits,primitive); } void _draw(frame f, path3 g, triple center=O, material m, @@ -1500,8 +1504,18 @@ void tensorshade(transform t=identity(), frame f, patch s, p.push(p[0]); s=tensor(s); } else p=s.colors(m,light); - tensorshade(f,box(t*s.min(P),t*s.max(P)),m.diffuse(), - p,t*project(s.external(),P,1),t*project(s.internal(),P)); + path g=t*project(s.external(),P,1); + pair[] internal=t*project(s.internal(),P); + pen fillrule=m.diffuse(); + if(inside(g,internal[0],fillrule) && inside(g,internal[1],fillrule) && + inside(g,internal[2],fillrule) && inside(g,internal[3],fillrule)) { + if(p[0] == p[1] && p[1] == p[2] && p[2] == p[3]) + fill(f,g,fillrule+p[0]); + else + tensorshade(f,g,fillrule,p,internal); + } else { + tensorshade(f,box(t*s.min(P),t*s.max(P)),fillrule,p,g,internal); + } } restricted pen[] nullpens={nullpen}; diff --git a/Master/texmf-dist/asymptote/three_tube.asy b/Master/texmf-dist/asymptote/three_tube.asy index 3a7902587e9..60085a7d512 100644 --- a/Master/texmf-dist/asymptote/three_tube.asy +++ b/Master/texmf-dist/asymptote/three_tube.asy @@ -159,10 +159,10 @@ struct tube triple c0=postcontrol(g,0); triple c1=precontrol(g,1); triple z1=point(g,1); - real norm=sqrtEpsilon*max(abs(z0),abs(c0),abs(c1),abs(z1)); + real norm=sqrtEpsilon*max(abs(z0),abs(c0),abs(c1),abs(z1),r); surface[] s; void Split(triple z0, triple c0, triple c1, triple z1, - real depth=mantissaBits) { + int depth=mantissaBits) { if(depth > 0) { pair threshold(triple z0, triple c0, triple c1) { triple u=c1-z0; diff --git a/Master/texmf-dist/asymptote/tube.asy b/Master/texmf-dist/asymptote/tube.asy index cfaf458db42..756eeabdda8 100644 --- a/Master/texmf-dist/asymptote/tube.asy +++ b/Master/texmf-dist/asymptote/tube.asy @@ -14,10 +14,10 @@ real tubegranularity=1e-7; void render(path3 s, real r, void f(path3, real)) { void Split(triple z0, triple c0, triple c1, triple z1, real t0=0, real t1=1, - real depth=mantissaBits) { + int depth=mantissaBits) { if(depth > 0) { real S=straightness(z0,c0,c1,z1); - if(S > max(tubegranularity*max(abs(z0),abs(c0),abs(c1),abs(z1)))) { + if(S > max(tubegranularity*max(abs(z0),abs(c0),abs(c1),abs(z1),r))) { --depth; triple m0=0.5*(z0+c0); triple m1=0.5*(c0+c1); diff --git a/Master/texmf-dist/asymptote/unicode.asy b/Master/texmf-dist/asymptote/unicode.asy deleted file mode 100644 index 33571e8341a..00000000000 --- a/Master/texmf-dist/asymptote/unicode.asy +++ /dev/null @@ -1,2 +0,0 @@ -usepackage("ucs"); -usepackage("inputenc","utf8x"); diff --git a/Master/texmf-dist/asymptote/version.asy b/Master/texmf-dist/asymptote/version.asy index 134927db489..b46e476e664 100644 --- a/Master/texmf-dist/asymptote/version.asy +++ b/Master/texmf-dist/asymptote/version.asy @@ -1 +1 @@ -string VERSION="2.65"; +string VERSION="2.69"; diff --git a/Master/texmf-dist/asymptote/webgl/asygl.js b/Master/texmf-dist/asymptote/webgl/asygl.js index 619986d015f..db8810f260f 100644 --- a/Master/texmf-dist/asymptote/webgl/asygl.js +++ b/Master/texmf-dist/asymptote/webgl/asygl.js @@ -1,6 +1,6 @@ /*@license AsyGL: Render Bezier patches and triangles via subdivision with WebGL. - Copyright 2019: John C. Bowman and Supakorn "Jamie" Rassameemasmuang + Copyright 2019-2020: John C. Bowman and Supakorn "Jamie" Rassameemasmuang University of Alberta This program is free software; you can redistribute it and/or modify @@ -36,4 +36,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.*/ -let vertex="\nattribute vec3 position;\n#ifdef WIDTH\nattribute float width;\n#endif\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\nattribute float materialIndex;\n#ifdef COLOR\nattribute vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\n#endif\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\nvarying vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif \n Normal=normalize(normal*normMat);\n \n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0) {\n diffuse=m.diffuse;\n } else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif\n#endif\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\n\nfloat Roughness2;\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 ? alpha2/(denom*denom) : 0.0;\n}\n \nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n \nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n \nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n \n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n \n float omegain=max(dot(viewDirection,normal),0.0);\n float omegali=max(dot(lightDirection,normal),0.0);\n \n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n \n float denom=4.0*omegain*omegali;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n \n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n \n return mix(dielectric,metal,metallic);\n}\n#endif\nvarying vec4 emissive;\n \nvoid main(void)\n{\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n Roughness2=roughness*roughness;\n vec3 color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n gl_FragColor=vec4(color,diffuse.a);\n#else\n gl_FragColor=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var a in i)("object"==typeof exports?exports:t)[a]=i[a]}}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function i(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,a){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=a*Math.max(1,Math.abs(t),Math.abs(e))};var a=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var a=n(i(2)),r=n(i(3));function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=a,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],d=e[8],c=d*s-o*l,m=-d*n+o*h,f=l*n-s*h,u=i*c+a*m+r*f;if(!u)return null;return u=1/u,t[0]=c*u,t[1]=(-d*a+r*l)*u,t[2]=(o*a-r*s)*u,t[3]=m*u,t[4]=(d*i-r*h)*u,t[5]=(-o*i+r*n)*u,t[6]=f*u,t[7]=(-l*i+a*h)*u,t[8]=(s*i-a*n)*u,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],d=e[8],c=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],g=e[15],w=i*o-a*s,x=i*h-r*s,M=i*l-n*s,b=a*h-r*o,A=a*l-n*o,S=r*l-n*h,P=d*p-c*u,R=d*v-m*u,T=d*g-f*u,y=c*v-m*p,D=c*g-f*p,I=m*g-f*v,z=w*I-x*D+M*y+b*T-A*R+S*P;if(!z)return null;return z=1/z,t[0]=(o*I-h*D+l*y)*z,t[1]=(r*D-a*I-n*y)*z,t[2]=(p*S-v*A+g*b)*z,t[3]=(m*A-c*S-f*b)*z,t[4]=(h*T-s*I-l*R)*z,t[5]=(i*I-r*T+n*R)*z,t[6]=(v*M-u*S-g*x)*z,t[7]=(d*S-m*M+f*x)*z,t[8]=(s*D-o*T+l*P)*z,t[9]=(a*T-i*D-n*P)*z,t[10]=(u*A-p*M+g*w)*z,t[11]=(c*M-d*A-f*w)*z,t[12]=(o*R-s*y-h*P)*z,t[13]=(i*y-a*R+r*P)*z,t[14]=(p*x-u*b-v*w)*z,t[15]=(d*b-c*x+m*w)*z,t},e.multiply=r,e.translate=function(t,e,i){var a=i[0],r=i[1],n=i[2],s=void 0,o=void 0,h=void 0,l=void 0,d=void 0,c=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,g=void 0;e===t?(t[12]=e[0]*a+e[4]*r+e[8]*n+e[12],t[13]=e[1]*a+e[5]*r+e[9]*n+e[13],t[14]=e[2]*a+e[6]*r+e[10]*n+e[14],t[15]=e[3]*a+e[7]*r+e[11]*n+e[15]):(s=e[0],o=e[1],h=e[2],l=e[3],d=e[4],c=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],g=e[11],t[0]=s,t[1]=o,t[2]=h,t[3]=l,t[4]=d,t[5]=c,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=g,t[12]=s*a+d*r+u*n+e[12],t[13]=o*a+c*r+p*n+e[13],t[14]=h*a+m*r+v*n+e[14],t[15]=l*a+f*r+g*n+e[15]);return t},e.rotate=function(t,e,i,r){var n=r[0],s=r[1],o=r[2],h=Math.sqrt(n*n+s*s+o*o),l=void 0,d=void 0,c=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,g=void 0,w=void 0,x=void 0,M=void 0,b=void 0,A=void 0,S=void 0,P=void 0,R=void 0,T=void 0,y=void 0,D=void 0,I=void 0,z=void 0,E=void 0,O=void 0;if(Math.abs(h)<a.EPSILON)return null;n*=h=1/h,s*=h,o*=h,l=Math.sin(i),d=Math.cos(i),c=1-d,m=e[0],f=e[1],u=e[2],p=e[3],v=e[4],g=e[5],w=e[6],x=e[7],M=e[8],b=e[9],A=e[10],S=e[11],P=n*n*c+d,R=s*n*c+o*l,T=o*n*c-s*l,y=n*s*c-o*l,D=s*s*c+d,I=o*s*c+n*l,z=n*o*c+s*l,E=s*o*c-n*l,O=o*o*c+d,t[0]=m*P+v*R+M*T,t[1]=f*P+g*R+b*T,t[2]=u*P+w*R+A*T,t[3]=p*P+x*R+S*T,t[4]=m*y+v*D+M*I,t[5]=f*y+g*D+b*I,t[6]=u*y+w*D+A*I,t[7]=p*y+x*D+S*I,t[8]=m*z+v*E+M*O,t[9]=f*z+g*E+b*O,t[10]=u*z+w*E+A*O,t[11]=p*z+x*E+S*O,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r=i[0],n=i[1],s=i[2],o=Math.sqrt(r*r+n*n+s*s),h=void 0,l=void 0,d=void 0;if(Math.abs(o)<a.EPSILON)return null;return r*=o=1/o,n*=o,s*=o,h=Math.sin(e),l=Math.cos(e),d=1-l,t[0]=r*r*d+l,t[1]=n*r*d+s*h,t[2]=s*r*d-n*h,t[3]=0,t[4]=r*n*d-s*h,t[5]=n*n*d+l,t[6]=s*n*d+r*h,t[7]=0,t[8]=r*s*d+n*h,t[9]=n*s*d-r*h,t[10]=s*s*d+l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,a,r,n,s){var o=1/(i-e),h=1/(r-a),l=1/(n-s);return t[0]=2*n*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*n*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+a)*h,t[10]=(s+n)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*n*2*l,t[15]=0,t},e.ortho=function(t,e,i,a,r,n,s){var o=1/(e-i),h=1/(a-r),l=1/(n-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+a)*h,t[14]=(s+n)*l,t[15]=1,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var a=e[0],r=e[1],n=e[2],s=e[3],o=e[4],h=e[5],l=e[6],d=e[7],c=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],g=e[14],w=e[15],x=i[0],M=i[1],b=i[2],A=i[3];return t[0]=x*a+M*o+b*c+A*p,t[1]=x*r+M*h+b*m+A*v,t[2]=x*n+M*l+b*f+A*g,t[3]=x*s+M*d+b*u+A*w,x=i[4],M=i[5],b=i[6],A=i[7],t[4]=x*a+M*o+b*c+A*p,t[5]=x*r+M*h+b*m+A*v,t[6]=x*n+M*l+b*f+A*g,t[7]=x*s+M*d+b*u+A*w,x=i[8],M=i[9],b=i[10],A=i[11],t[8]=x*a+M*o+b*c+A*p,t[9]=x*r+M*h+b*m+A*v,t[10]=x*n+M*l+b*f+A*g,t[11]=x*s+M*d+b*u+A*w,x=i[12],M=i[13],b=i[14],A=i[15],t[12]=x*a+M*o+b*c+A*p,t[13]=x*r+M*h+b*m+A*v,t[14]=x*n+M*l+b*f+A*g,t[15]=x*s+M*d+b*u+A*w,t}}])});let canvasWidth,canvasHeight,b,B,angle,Zoom0,viewportmargin,zoomFactor,zoomPinchFactor,zoomPinchCap,zoomStep,shiftHoldDistance,shiftWaitTime,vibrateTime,embedded,canvas,gl,alpha,offscreen,context,maxMaterials,halfCanvasWidth,halfCanvasHeight,Zoom,P=[],Materials=[],Lights=[],Centers=[],Background=[1,1,1,1],absolute=!1,viewportshift=[0,0],nlights=0,Nmaterials=2,materials=[],pixel=.75,FillFactor=.1,maxViewportWidth=window.innerWidth,maxViewportHeight=window.innerHeight;const windowTrim=10;let lastzoom,H,zmin,zmax,size2,ArcballFactor,positionBuffer,materialBuffer,colorBuffer,indexBuffer,resizeStep=1.2,third=1/3,rotMat=mat4.create(),projMat=mat4.create(),viewMat=mat4.create(),projViewMat=mat4.create(),normMat=mat3.create(),viewMat3=mat3.create(),cjMatInv=mat4.create(),T=mat4.create(),center={x:0,y:0,z:0},shift={x:0,y:0},viewParam={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},remesh=!0,wireframe=0,mouseDownOrTouchActive=!1,lastMouseX=null,lastMouseY=null,touchID=null,Positions=[],Normals=[],Colors=[],Indices=[];class Material{constructor(t,e,i,a,r,n){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=a,this.metallic=r,this.fresnel0=n}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Materials["+e+"]."+i);gl.uniform4fv(i("diffuse"),new Float32Array(this.diffuse)),gl.uniform4fv(i("emissive"),new Float32Array(this.emissive)),gl.uniform4fv(i("specular"),new Float32Array(this.specular)),gl.uniform4f(i("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let indexExt,TRIANGLES,material0Data,material1Data,materialData,colorData,transparentData,triangleData,materialIndex,enumPointLight=1,enumDirectionalLight=2;class Light{constructor(t,e){this.direction=t,this.color=e}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Lights["+e+"]."+i);gl.uniform3fv(i("direction"),new Float32Array(this.direction)),gl.uniform3fv(i("color"),new Float32Array(this.color))}}function initShaders(){let t=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);maxMaterials=Math.floor((t-14)/4),Nmaterials=Math.min(Math.max(Nmaterials,Materials.length),maxMaterials),pixelShader=initShader(["WIDTH"]),materialShader=initShader(["NORMAL"]),colorShader=initShader(["NORMAL","COLOR"]),transparentShader=initShader(["NORMAL","COLOR","TRANSPARENT"])}function deleteShaders(){gl.deleteProgram(transparentShader),gl.deleteProgram(colorShader),gl.deleteProgram(materialShader),gl.deleteProgram(pixelShader)}function setBuffers(){positionBuffer=gl.createBuffer(),materialBuffer=gl.createBuffer(),colorBuffer=gl.createBuffer(),indexBuffer=gl.createBuffer()}function noGL(){gl||alert("Could not initialize WebGL")}function saveAttributes(){let t=window.top.document.asygl[alpha];t.gl=gl,t.nlights=Lights.length,t.Nmaterials=Nmaterials,t.maxMaterials=maxMaterials,t.pixelShader=pixelShader,t.materialShader=materialShader,t.colorShader=colorShader,t.transparentShader=transparentShader}function restoreAttributes(){let t=window.top.document.asygl[alpha];gl=t.gl,nlights=t.nlights,Nmaterials=t.Nmaterials,maxMaterials=t.maxMaterials,pixelShader=t.pixelShader,materialShader=t.materialShader,colorShader=t.colorShader,transparentShader=t.transparentShader}function initGL(){if(alpha=Background[3]<1,embedded){let t=window.top.document;null==t.asygl&&(t.asygl=Array(2)),context=canvas.getContext("2d"),(offscreen=t.offscreen)||(offscreen=t.createElement("canvas"),t.offscreen=offscreen),t.asygl[alpha]&&t.asygl[alpha].gl?(restoreAttributes(),(Lights.length!=nlights||Math.min(Materials.length,maxMaterials)>Nmaterials)&&(initShaders(),saveAttributes())):((gl=offscreen.getContext("webgl",{alpha:alpha}))||noGL(),initShaders(),t.asygl[alpha]={},saveAttributes())}else(gl=canvas.getContext("webgl",{alpha:alpha}))||noGL(),initShaders();setBuffers(),indexExt=gl.getExtension("OES_element_index_uint"),TRIANGLES=gl.TRIANGLES,material0Data=new vertexBuffer(gl.POINTS),material1Data=new vertexBuffer(gl.LINES),materialData=new vertexBuffer,colorData=new vertexBuffer,transparentData=new vertexBuffer,triangleData=new vertexBuffer}function getShader(t,e,i,a=[]){let r=`#version 100\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n #define nlights ${0==wireframe?Lights.length:0}\n\n const int Nlights=${Math.max(Lights.length,1)};\n\n #define Nmaterials ${Nmaterials}\n`;orthographic&&(r+="#define ORTHOGRAPHIC\n"),a.forEach(t=>r+="#define "+t+"\n");let n=t.createShader(i);return t.shaderSource(n,r+e),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)}function drawBuffer(t,e,i=t.indices){if(0==t.indices.length)return;let a=e!=pixelShader;setUniforms(t,e),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(t.vertices),gl.STATIC_DRAW),gl.vertexAttribPointer(positionAttribute,3,gl.FLOAT,!1,a?24:16,0),a&&Lights.length>0?gl.vertexAttribPointer(normalAttribute,3,gl.FLOAT,!1,24,12):pixel&&gl.vertexAttribPointer(widthAttribute,1,gl.FLOAT,!1,16,12),gl.bindBuffer(gl.ARRAY_BUFFER,materialBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Int16Array(t.materialIndices),gl.STATIC_DRAW),gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,!1,2,0),e!=colorShader&&e!=transparentShader||(gl.bindBuffer(gl.ARRAY_BUFFER,colorBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Uint8Array(t.colors),gl.STATIC_DRAW),gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,!0,0,0)),gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,indexBuffer),gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,indexExt?new Uint32Array(i):new Uint16Array(i),gl.STATIC_DRAW),gl.drawElements(a?wireframe?gl.LINES:t.type:gl.POINTS,i.length,indexExt?gl.UNSIGNED_INT:gl.UNSIGNED_SHORT,0)}class vertexBuffer{constructor(t){this.type=t||TRIANGLES,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.nvertices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(materialIndex),this.nvertices++}iVertex(t,e,i,a=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=materialIndex;let n=4*t;this.colors[n]=a[0],this.colors[n+1]=a[1],this.colors[n+2]=a[2],this.colors[n+3]=a[3],this.indices.push(t)}append(t){append(this.vertices,t.vertices),append(this.materialIndices,t.materialIndices),append(this.colors,t.colors),appendOffset(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function append(t,e){let i=t.length,a=e.length;t.length+=a;for(let r=0;r<a;++r)t[i+r]=e[r]}function appendOffset(t,e,i){let a=t.length,r=e.length;t.length+=e.length;for(let n=0;n<r;++n)t[a+n]=e[n]+i}class Geometry{constructor(){this.data=new vertexBuffer,this.Onscreen=!1,this.m=[]}offscreen(t){let e=projViewMat,i=t[0],a=i[0],r=i[1],n=i[2],s=1/(e[3]*a+e[7]*r+e[11]*n+e[15]);this.x=this.X=(e[0]*a+e[4]*r+e[8]*n+e[12])*s,this.y=this.Y=(e[1]*a+e[5]*r+e[9]*n+e[13])*s;for(let i=1,a=t.length;i<a;++i){let a=t[i],r=a[0],n=a[1],s=a[2],o=1/(e[3]*r+e[7]*n+e[11]*s+e[15]),h=(e[0]*r+e[4]*n+e[8]*s+e[12])*o,l=(e[1]*r+e[5]*n+e[9]*s+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],a=this.c[2],r=t[0]-e,n=t[1]-i,s=t[2]-a;return[r*normMat[0]+n*normMat[3]+s*normMat[6]+e,r*normMat[1]+n*normMat[4]+s*normMat[7]+i,r*normMat[2]+n*normMat[5]+s*normMat[8]+a]}Tcorners(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null==t.materialTable[this.MaterialIndex]&&(t.materials.length>=Nmaterials&&e(),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(Materials[this.MaterialIndex])),materialIndex=t.materialTable[this.MaterialIndex]}render(){let t;if(this.setMaterialIndex(),0==this.CenterIndex?t=corners(this.Min,this.Max):(this.c=Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return void this.data.clear();let e,i=this.controlpoints;if(0==this.CenterIndex){if(!remesh&&this.Onscreen)return void this.append();e=i}else{let t=i.length;e=Array(t);for(let a=0;a<t;++a)e[a]=this.T(i[a])}let a=orthographic?1:this.Min[2]/B[2],r=pixel*Math.hypot(a*(viewParam.xmax-viewParam.xmin),a*(viewParam.ymax-viewParam.ymin))/size2;this.res2=r*r,this.Epsilon=FillFactor*r,this.data.clear(),this.Onscreen=!0,this.process(e)}}class BezierPatch extends Geometry{constructor(t,e,i,a,r,n){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.color=n,this.CenterIndex=e;let s=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==s||4==s?t+n[3][3]<1020:t<765}else this.transparent=Materials[i].diffuse[3]<1;this.MaterialIndex=i,this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data),this.L2norm(this.controlpoints)}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.color?this.setMaterial(colorData,drawColor):this.setMaterial(materialData,drawMaterial)}L2norm(t){let e=t[0];this.epsilon=0;let i=t.length;for(let a=1;a<i;++a)this.epsilon=Math.max(this.epsilon,abs2([t[a][0]-e[0],t[a][1]-e[1],t[a][2]-e[2]]));this.epsilon*=Number.EPSILON}processTriangle(t){let e=t[0],i=t[1],a=t[2],r=unit(cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-e[0],a[1]-e[1],a[2]-e[2]]));if(!this.offscreen([e,i,a])){let t,n,s;this.color?(t=this.data.Vertex(e,r,this.color[0]),n=this.data.Vertex(i,r,this.color[1]),s=this.data.Vertex(a,r,this.color[2])):(t=this.vertex(e,r),n=this.vertex(i,r),s=this.vertex(a,r)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],a=t[2],r=t[3],n=cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-i[0],a[1]-i[1],a[2]-i[2]]),s=cross([a[0]-r[0],a[1]-r[1],a[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=unit([n[0]+s[0],n[1]+s[1],n[2]+s[2]]);if(!this.offscreen([e,i,a,r])){let t,n,s,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),n=this.data.Vertex(i,o,this.color[1]),s=this.data.Vertex(a,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),n=this.vertex(i,o),s=this.vertex(a,o),h=this.vertex(r,o)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,a,r){new BezierCurve([t[e],t[i],t[a],t[r]],0,materialIndex,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=wireframe&&(materialIndex=this.color?-1-materialIndex:1+materialIndex),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==wireframe)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],a=t[12],r=t[15],n=this.normal(i,t[2],t[1],e,t[4],t[8],a);abs2(n)<this.epsilon&&abs2(n=this.normal(i,t[2],t[1],e,t[13],t[14],r))<this.epsilon&&(n=this.normal(r,t[11],t[7],i,t[4],t[8],a));let s=this.normal(e,t[4],t[8],a,t[13],t[14],r);abs2(s)<this.epsilon&&abs2(s=this.normal(e,t[4],t[8],a,t[11],t[7],i))<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r));let o=this.normal(a,t[13],t[14],r,t[11],t[7],i);abs2(o)<this.epsilon&&abs2(o=this.normal(a,t[13],t[14],r,t[2],t[1],e))<this.epsilon&&(o=this.normal(e,t[4],t[8],a,t[11],t[7],i));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(abs2(h)<this.epsilon&&abs2(h=this.normal(r,t[11],t[7],i,t[4],t[8],a))<this.epsilon&&(h=this.normal(a,t[13],t[14],r,t[2],t[1],e)),this.color){let l=this.color[0],d=this.color[1],c=this.color[2],m=this.color[3],f=this.data.Vertex(e,n,l),u=this.data.Vertex(a,s,d),p=this.data.Vertex(r,o,c),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,a,r,i,!1,!1,!1,!1,l,d,c,m)}else{let l=this.vertex(e,n),d=this.vertex(a,s),c=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,d,c,m,e,a,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):this.color?colorData.append(this.data):materialData.append(this.data)}Render(t,e,i,a,r,n,s,o,h,l,d,c,m,f,u,p,v){let g=this.Distance(t);if(g[0]<this.res2&&g[1]<this.res2)this.offscreen([n,s,o])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a))),this.offscreen([n,o,h])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(a),this.data.indices.push(r)):(this.data.indices.push(a),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let w=t[0],x=t[3],M=t[12],b=t[15];if(g[0]<this.res2){let g=new Split3(w,t[1],t[2],x),A=new Split3(t[4],t[5],t[6],t[7]),S=new Split3(t[8],t[9],t[10],t[11]),P=new Split3(M,t[13],t[14],b),R=[w,g.m0,g.m3,g.m5,t[4],A.m0,A.m3,A.m5,t[8],S.m0,S.m3,S.m5,M,P.m0,P.m3,P.m5],T=[g.m5,g.m4,g.m2,x,A.m5,A.m4,A.m2,t[7],S.m5,S.m4,S.m2,t[11],P.m5,P.m4,P.m2,b],y=this.normal(R[12],R[13],R[14],R[15],R[11],R[7],R[3]);abs2(y)<=this.epsilon&&abs2(y=this.normal(R[12],R[13],R[14],R[15],R[2],R[1],R[0]))<=this.epsilon&&(y=this.normal(R[0],R[4],R[8],R[12],R[11],R[7],R[3]));let D=this.normal(T[3],T[2],T[1],T[0],T[4],T[8],T[12]);abs2(D)<=this.epsilon&&abs2(D=this.normal(T[3],T[2],T[1],T[0],T[13],T[14],T[15]))<=this.epsilon&&(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12]));let I=this.Epsilon,z=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!d)if(d=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(T[12],T[8],T[4],T[0]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=R[15];let E=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(w,t[1],t[2],x)<this.res2){let t=unit(this.differential(R[3],R[7],R[11],R[15]));E=[E[0]-I*t[0],E[1]-I*t[1],E[2]-I*t[2]]}else E=T[0];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),g[e]=.5*(v[e]+f[e]);let w=this.data.Vertex(z,y,t),x=this.data.Vertex(E,D,g);this.Render(R,e,i,w,x,n,s,z,E,l,d,!1,m,f,u,t,g),this.Render(T,x,w,a,r,E,z,o,h,!1,d,c,m,g,t,p,v)}else{let t=this.vertex(z,y),f=this.vertex(E,D);this.Render(R,e,i,t,f,n,s,z,E,l,d,!1,m),this.Render(T,f,t,a,r,E,z,o,h,!1,d,c,m)}return}if(g[1]<this.res2){let g=new Split3(w,t[4],t[8],M),A=new Split3(t[1],t[5],t[9],t[13]),S=new Split3(t[2],t[6],t[10],t[14]),P=new Split3(x,t[7],t[11],b),R=[w,t[1],t[2],x,g.m0,A.m0,S.m0,P.m0,g.m3,A.m3,S.m3,P.m3,g.m5,A.m5,S.m5,P.m5],T=[g.m5,A.m5,S.m5,P.m5,g.m4,A.m4,S.m4,P.m4,g.m2,A.m2,S.m2,P.m2,M,t[13],t[14],b],y=this.normal(R[0],R[4],R[8],R[12],R[13],R[14],R[15]);abs2(y)<=this.epsilon&&abs2(y=this.normal(R[0],R[4],R[8],R[12],R[11],R[7],R[3]))<=this.epsilon&&(y=this.normal(R[3],R[2],R[1],R[0],R[13],R[14],R[15]));let D=this.normal(T[15],T[11],T[7],T[3],T[2],T[1],T[0]);abs2(D)<=this.epsilon&&abs2(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12]))<=this.epsilon&&(D=this.normal(T[12],T[13],T[14],T[15],T[2],T[1],T[0]));let I=this.Epsilon,z=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(w,t[4],t[8],M)<this.res2){let t=unit(this.differential(T[0],T[1],T[2],T[3]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=R[12];let E=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!c)if(c=Straightness(b,t[11],t[7],x)<this.res2){let t=unit(this.differential(R[15],R[14],R[13],R[12]));E=[E[0]-I*t[0],E[1]-I*t[1],E[2]-I*t[2]]}else E=T[3];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(p[e]+v[e]);let w=this.data.Vertex(z,y,t),x=this.data.Vertex(E,D,g);this.Render(R,e,w,x,r,n,z,E,h,l,!1,c,m,f,t,g,v),this.Render(T,w,i,a,x,z,s,o,E,l,d,c,!1,t,u,p,g)}else{let t=this.vertex(z,y),f=this.vertex(E,D);this.Render(R,e,t,f,r,n,z,E,h,l,!1,c,m),this.Render(T,t,i,a,f,z,s,o,E,l,d,c,!1)}return}let A=new Split3(w,t[1],t[2],x),S=new Split3(t[4],t[5],t[6],t[7]),P=new Split3(t[8],t[9],t[10],t[11]),R=new Split3(M,t[13],t[14],b),T=new Split3(w,t[4],t[8],M),y=new Split3(A.m0,S.m0,P.m0,R.m0),D=new Split3(A.m3,S.m3,P.m3,R.m3),I=new Split3(A.m5,S.m5,P.m5,R.m5),z=new Split3(A.m4,S.m4,P.m4,R.m4),E=new Split3(A.m2,S.m2,P.m2,R.m2),O=new Split3(x,t[7],t[11],b),L=[w,A.m0,A.m3,A.m5,T.m0,y.m0,D.m0,I.m0,T.m3,y.m3,D.m3,I.m3,T.m5,y.m5,D.m5,I.m5],N=[T.m5,y.m5,D.m5,I.m5,T.m4,y.m4,D.m4,I.m4,T.m2,y.m2,D.m2,I.m2,M,R.m0,R.m3,R.m5],_=[I.m5,z.m5,E.m5,O.m5,I.m4,z.m4,E.m4,O.m4,I.m2,z.m2,E.m2,O.m2,R.m5,R.m4,R.m2,b],B=[A.m5,A.m4,A.m2,x,I.m0,z.m0,E.m0,O.m0,I.m3,z.m3,E.m3,O.m3,I.m5,z.m5,E.m5,O.m5],V=L[15],C=this.normal(L[0],L[4],L[8],L[12],L[13],L[14],L[15]);abs2(C)<this.epsilon&&abs2(C=this.normal(L[0],L[4],L[8],L[12],L[11],L[7],L[3]))<this.epsilon&&(C=this.normal(L[3],L[2],L[1],L[0],L[13],L[14],L[15]));let F=this.normal(N[12],N[13],N[14],N[15],N[11],N[7],N[3]);abs2(F)<this.epsilon&&abs2(F=this.normal(N[12],N[13],N[14],N[15],N[2],N[1],N[0]))<this.epsilon&&(F=this.normal(N[0],N[4],N[8],N[12],N[11],N[7],N[3]));let H=this.normal(_[15],_[11],_[7],_[3],_[2],_[1],_[0]);abs2(H)<this.epsilon&&abs2(H=this.normal(_[15],_[11],_[7],_[3],_[4],_[8],_[12]))<this.epsilon&&(H=this.normal(_[12],_[13],_[14],_[15],_[2],_[1],_[0]));let G=this.normal(B[3],B[2],B[1],B[0],B[4],B[8],B[12]);abs2(G)<this.epsilon&&abs2(G=this.normal(B[3],B[2],B[1],B[0],B[13],B[14],B[15]))<this.epsilon&&(G=this.normal(B[15],B[11],B[7],B[3],B[4],B[8],B[12]));let U=this.normal(_[3],_[2],_[1],V,_[4],_[8],_[12]),W=this.Epsilon,Y=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(w,t[4],t[8],M)<this.res2){let t=unit(this.differential(N[0],N[1],N[2],N[3]));Y=[Y[0]-W*t[0],Y[1]-W*t[1],Y[2]-W*t[2]]}else Y=L[12];let j=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!d)if(d=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(_[12],_[8],_[4],_[0]));j=[j[0]-W*t[0],j[1]-W*t[1],j[2]-W*t[2]]}else j=N[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!c)if(c=Straightness(b,t[11],t[7],x)<this.res2){let t=unit(this.differential(B[15],B[14],B[13],B[12]));k=[k[0]-W*t[0],k[1]-W*t[1],k[2]-W*t[2]]}else k=_[3];let Z=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(w,t[1],t[2],x)<this.res2){let t=unit(this.differential(L[3],L[7],L[11],L[15]));Z=[Z[0]-W*t[0],Z[1]-W*t[1],Z[2]-W*t[2]]}else Z=B[0];if(f){let t=Array(4),g=Array(4),w=Array(4),x=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(u[e]+p[e]),w[e]=.5*(p[e]+v[e]),x[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+w[e]);let b=this.data.Vertex(Y,C,t),A=this.data.Vertex(j,F,g),S=this.data.Vertex(k,H,w),P=this.data.Vertex(Z,G,x),R=this.data.Vertex(V,U,M);this.Render(L,e,b,R,P,n,Y,V,Z,l,!1,!1,m,f,t,M,x),this.Render(N,b,i,A,R,Y,s,j,V,l,d,!1,!1,t,u,g,M),this.Render(_,R,A,a,S,V,j,o,k,!1,d,c,!1,M,g,p,w),this.Render(B,P,R,S,r,Z,V,k,h,!1,!1,c,m,x,M,w,v)}else{let t=this.vertex(Y,C),f=this.vertex(j,F),u=this.vertex(k,H),p=this.vertex(Z,G),v=this.vertex(V,U);this.Render(L,e,t,v,p,n,Y,V,Z,l,!1,!1,m),this.Render(N,t,i,f,v,Y,s,j,V,l,d,!1,!1),this.Render(_,v,f,a,u,V,j,o,k,!1,d,c,!1),this.Render(B,p,v,u,r,Z,V,k,h,!1,!1,c,m)}}}process3(t){if(1==wireframe)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],a=t[9],r=this.normal(a,t[5],t[2],e,t[1],t[3],i),n=this.normal(e,t[1],t[3],i,t[7],t[8],a),s=this.normal(i,t[7],t[8],a,t[5],t[2],e);if(this.color){let o=this.color[0],h=this.color[1],l=this.color[2],d=this.data.Vertex(e,r,o),c=this.data.Vertex(i,n,h),m=this.data.Vertex(a,s,l);this.Render3(t,d,c,m,e,i,a,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,n),l=this.vertex(a,s);this.Render3(t,o,h,l,e,i,a,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,a,r,n,s,o,h,l,d,c,m){if(this.Distance3(t)<this.res2)this.offscreen([r,n,s])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],g=t[4],w=t[5],x=t[6],M=t[7],b=t[8],A=t[9],S=[.5*(A[0]+w[0]),.5*(A[1]+w[1]),.5*(A[2]+w[2])],P=[.5*(A[0]+b[0]),.5*(A[1]+b[1]),.5*(A[2]+b[2])],R=[.5*(w[0]+p[0]),.5*(w[1]+p[1]),.5*(w[2]+p[2])],T=[.5*(b[0]+g[0]),.5*(b[1]+g[1]),.5*(b[2]+g[2])],y=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],D=[.5*(p[0]+g[0]),.5*(p[1]+g[1]),.5*(p[2]+g[2])],I=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],z=[.5*(g[0]+v[0]),.5*(g[1]+v[1]),.5*(g[2]+v[2])],E=[.5*(M[0]+x[0]),.5*(M[1]+x[1]),.5*(M[2]+x[2])],O=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],L=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],N=[.5*(v[0]+x[0]),.5*(v[1]+x[1]),.5*(v[2]+x[2])],_=[.5*(S[0]+R[0]),.5*(S[1]+R[1]),.5*(S[2]+R[2])],B=[.5*(P[0]+y[0]),.5*(P[1]+y[1]),.5*(P[2]+y[2])],V=[.5*(R[0]+I[0]),.5*(R[1]+I[1]),.5*(R[2]+I[2])],C=[.5*T[0]+.25*(g[0]+u[0]),.5*T[1]+.25*(g[1]+u[1]),.5*T[2]+.25*(g[2]+u[2])],F=[.5*(y[0]+E[0]),.5*(y[1]+E[1]),.5*(y[2]+E[2])],H=[.5*D[0]+.25*(g[0]+M[0]),.5*D[1]+.25*(g[1]+M[1]),.5*D[2]+.25*(g[2]+M[2])],G=[.25*(w[0]+g[0])+.5*z[0],.25*(w[1]+g[1])+.5*z[1],.25*(w[2]+g[2])+.5*z[2]],U=[.5*(O[0]+L[0]),.5*(O[1]+L[1]),.5*(O[2]+L[2])],W=[.5*(L[0]+N[0]),.5*(L[1]+N[1]),.5*(L[2]+N[2])],Y=[.5*(H[0]+U[0]),.5*(H[1]+U[1]),.5*(H[2]+U[2])],j=[.5*(H[0]+W[0]),.5*(H[1]+W[1]),.5*(H[2]+W[2])],k=[.5*(U[0]+W[0]),.5*(U[1]+W[1]),.5*(U[2]+W[2])],Z=[.5*(G[0]+F[0]),.5*(G[1]+F[1]),.5*(G[2]+F[2])],X=[.5*(B[0]+G[0]),.5*(B[1]+G[1]),.5*(B[2]+G[2])],q=[.5*(B[0]+F[0]),.5*(B[1]+F[1]),.5*(B[2]+F[2])],K=[.5*(_[0]+C[0]),.5*(_[1]+C[1]),.5*(_[2]+C[2])],$=[.5*(V[0]+C[0]),.5*(V[1]+C[1]),.5*(V[2]+C[2])],Q=[.5*(_[0]+V[0]),.5*(_[1]+V[1]),.5*(_[2]+V[2])],J=[f,O,I,U,[.5*(D[0]+O[0]),.5*(D[1]+O[1]),.5*(D[2]+O[2])],V,k,Y,$,Q],tt=[k,W,j,N,[.5*(z[0]+E[0]),.5*(z[1]+E[1]),.5*(z[2]+E[2])],Z,x,E,F,q],et=[Q,K,_,X,[.5*(S[0]+T[0]),.5*(S[1]+T[1]),.5*(S[2]+T[2])],S,q,B,P,A],it=[q,X,Z,K,[.25*(R[0]+y[0]+L[0]+g[0]),.25*(R[1]+y[1]+L[1]+g[1]),.25*(R[2]+y[2]+L[2]+g[2])],j,Q,$,Y,k],at=this.normal(k,j,Z,q,X,K,Q),rt=this.normal(q,X,K,Q,$,Y,k),nt=this.normal(Q,$,Y,k,j,Z,q),st=this.Epsilon,ot=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!o)if(o=Straightness(x,M,b,A)<this.res2){let t=unit(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-st*t[0],ot[1]-st*t[1],ot[2]-st*t[2]]}else ot=q;let ht=[.5*(s[0]+r[0]),.5*(s[1]+r[1]),.5*(s[2]+r[2])];if(!h)if(h=Straightness(f,p,w,A)<this.res2){let t=unit(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-st*t[0],ht[1]-st*t[1],ht[2]-st*t[2]]}else ht=Q;let lt=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])];if(!l)if(l=Straightness(f,u,v,x)<this.res2){let t=unit(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-st*t[0],lt[1]-st*t[1],lt[2]-st*t[2]]}else lt=k;if(d){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(c[e]+m[e]),f[e]=.5*(m[e]+d[e]),u[e]=.5*(d[e]+c[e]);let p=this.data.Vertex(ot,at,t),v=this.data.Vertex(ht,rt,f),g=this.data.Vertex(lt,nt,u);this.Render3(J,e,g,v,r,lt,ht,!1,h,l,d,u,f),this.Render3(tt,g,i,p,lt,n,ot,o,!1,l,u,c,t),this.Render3(et,v,p,a,ht,ot,s,o,h,!1,f,t,m),this.Render3(it,p,v,g,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,at),d=this.vertex(ht,rt),c=this.vertex(lt,nt);this.Render3(J,e,c,d,r,lt,ht,!1,h,l),this.Render3(tt,c,i,t,lt,n,ot,o,!1,l),this.Render3(et,d,t,a,ht,ot,s,o,h,!1),this.Render3(it,t,d,c,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],a=t[12],r=t[15],n=Flatness(e,a,i,r);n=Math.max(Straightness(e,t[4],t[8],a)),n=Math.max(n,Straightness(t[1],t[5],t[9],t[13])),n=Math.max(n,Straightness(i,t[7],t[11],r)),n=Math.max(n,Straightness(t[2],t[6],t[10],t[14]));let s=Flatness(e,i,a,r);return s=Math.max(s,Straightness(e,t[1],t[2],i)),s=Math.max(s,Straightness(t[4],t[5],t[6],t[7])),s=Math.max(s,Straightness(t[8],t[9],t[10],t[11])),[n,s=Math.max(s,Straightness(a,t[13],t[14],r))]}Distance3(t){let e=t[0],i=t[4],a=t[6],r=t[9],n=abs2([(e[0]+a[0]+r[0])*third-i[0],(e[1]+a[1]+r[1])*third-i[1],(e[2]+a[2]+r[2])*third-i[2]]);return n=Math.max(n,Straightness(e,t[1],t[3],a)),n=Math.max(n,Straightness(e,t[2],t[5],r)),Math.max(n,Straightness(a,t[7],t[8],r))}differential(t,e,i,a){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return abs2(r)>this.epsilon?r:abs2(r=bezierPP(t,e,i))>this.epsilon?r:bezierPPP(t,e,i,a)}sumdifferential(t,e,i,a,r,n,s){let o=this.differential(t,e,i,a),h=this.differential(t,r,n,s);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,a,r,n,s){let o=3*(r[0]-a[0]),h=3*(r[1]-a[1]),l=3*(r[2]-a[2]),d=3*(i[0]-a[0]),c=3*(i[1]-a[1]),m=3*(i[2]-a[2]),f=[h*m-l*c,l*d-o*m,o*c-h*d];if(abs2(f)>this.epsilon)return f;let u=[d,c,m],p=[o,h,l],v=bezierPP(a,i,e),g=bezierPP(a,r,n),w=cross(g,u),x=cross(p,v);if(abs2(f=[w[0]+x[0],w[1]+x[1],w[2]+x[2]])>this.epsilon)return f;let M=bezierPPP(a,i,e,t),b=bezierPPP(a,r,n,s);w=cross(p,M),x=cross(b,u);let A=cross(g,v);return abs2(f=[w[0]+x[0]+A[0],w[1]+x[1]+A[1],w[2]+x[2]+A[2]])>this.epsilon?f:(w=cross(b,v),x=cross(g,M),abs2(f=[w[0]+x[0],w[1]+x[1],w[2]+x[2]])>this.epsilon?f:cross(b,M))}}class BezierCurve extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.CenterIndex=e,this.MaterialIndex=i}setMaterialIndex(){this.setMaterial(material1Data,drawMaterial1)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],a=t[2],r=t[3],n=this.normal(bezierP(e,i),bezierPP(e,i,a)),s=this.normal(bezierP(a,r),bezierPP(r,a,i)),o=this.data.vertex(e,n),h=this.data.vertex(r,s);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){material1Data.append(this.data)}Render(t,e,i){let a=t[0],r=t[1],n=t[2],s=t[3];if(Straightness(a,r,n,s)<this.res2)this.offscreen([a,s])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])],h=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])],l=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])],d=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],c=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(d[0]+c[0]),.5*(d[1]+c[1]),.5*(d[2]+c[2])],f=[a,o,d,m],u=[m,c,l,s],p=this.normal(bezierPh(a,r,n,s),bezierPPh(a,r,n,s)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=dot(t,t),a=dot(t,e);return[i*e[0]-a*t[0],i*e[1]-a*t[1],i*e[2]-a*t[2]]}}class Pixel extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=a,this.Max=r}setMaterialIndex(){this.setMaterial(material0Data,drawMaterial0)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){material0Data.append(this.data)}}class Triangles extends Geometry{constructor(t,e,i){super(),this.CenterIndex=0,this.MaterialIndex=t,this.Min=e,this.Max=i,this.Positions=Positions,this.Normals=Normals,this.Colors=Colors,this.Indices=Indices,Positions=[],Normals=[],Colors=[],Indices=[],this.transparent=Materials[t].diffuse[3]<1}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.setMaterial(triangleData,drawTriangle)}process(t){materialIndex=this.Colors.length>0?-1-materialIndex:1+materialIndex;for(let t=0,e=this.Indices.length;t<e;++t){let e=this.Indices[t],i=e[0],a=this.Positions[i[0]],r=this.Positions[i[1]],n=this.Positions[i[2]];if(!this.offscreen([a,r,n])){let t=e.length>1?e[1]:i;if(t&&0!=t.length||(t=i),this.Colors.length>0){let s=e.length>2?e[2]:i;s&&0!=s.length||(s=i);let o=this.Colors[s[0]],h=this.Colors[s[1]],l=this.Colors[s[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l)):(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[0],a,this.Normals[t[0]],o))}else 0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]])):(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[0],a,this.Normals[t[0]]))}}this.data.nvertices=this.Positions.length,this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):triangleData.append(this.data)}}function home(){mat4.identity(rotMat),initProjection(),setProjection(),remesh=!0,draw()}let positionAttribute=0,normalAttribute=1,materialAttribute=2,colorAttribute=3,widthAttribute=4;function initShader(t=[]){let e=getShader(gl,vertex,gl.VERTEX_SHADER,t),i=getShader(gl,fragment,gl.FRAGMENT_SHADER,t),a=gl.createProgram();return gl.attachShader(a,e),gl.attachShader(a,i),gl.bindAttribLocation(a,positionAttribute,"position"),gl.bindAttribLocation(a,normalAttribute,"normal"),gl.bindAttribLocation(a,materialAttribute,"materialIndex"),gl.bindAttribLocation(a,colorAttribute,"color"),gl.bindAttribLocation(a,widthAttribute,"width"),gl.linkProgram(a),gl.getProgramParameter(a,gl.LINK_STATUS)||alert("Could not initialize shaders"),a}class Split3{constructor(t,e,i,a){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),n=.5*(e[1]+i[1]),s=.5*(e[2]+i[2]);this.m2=[.5*(i[0]+a[0]),.5*(i[1]+a[1]),.5*(i[2]+a[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+n),.5*(this.m0[2]+s)],this.m4=[.5*(r+this.m2[0]),.5*(n+this.m2[1]),.5*(s+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}function unit(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function abs2(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function dot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function cross(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function bezierP(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function bezierPP(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function bezierPPP(t,e,i,a){return[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]}function bezierPh(t,e,i,a){return[i[0]+a[0]-t[0]-e[0],i[1]+a[1]-t[1]-e[1],i[2]+a[2]-t[2]-e[2]]}function bezierPPh(t,e,i,a){return[3*t[0]-5*e[0]+i[0]+a[0],3*t[1]-5*e[1]+i[1]+a[1],3*t[2]-5*e[2]+i[2]+a[2]]}function Straightness(t,e,i,a){let r=[third*(a[0]-t[0]),third*(a[1]-t[1]),third*(a[2]-t[2])];return Math.max(abs2([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),abs2([a[0]-r[0]-i[0],a[1]-r[1]-i[1],a[2]-r[2]-i[2]]))}function Flatness(t,e,i,a){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],n=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return Math.max(abs2(cross(r,unit(n))),abs2(cross(n,unit(r))))/9}function corners(t,e){return[t,[t[0],t[1],e[2]],[t[0],e[1],t[2]],[t[0],e[1],e[2]],[e[0],t[1],t[2]],[e[0],t[1],e[2]],[e[0],e[1],t[2]],e]}function minbound(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function maxbound(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function COBTarget(t,e){mat4.fromTranslation(T,[center.x,center.y,center.z]),mat4.invert(cjMatInv,T),mat4.multiply(t,e,cjMatInv),mat4.multiply(t,T,t)}function setUniforms(t,e){let i=e==pixelShader;gl.useProgram(e),gl.enableVertexAttribArray(positionAttribute),i&&gl.enableVertexAttribArray(widthAttribute);let a=!i&&Lights.length>0;if(a&&gl.enableVertexAttribArray(normalAttribute),gl.enableVertexAttribArray(materialAttribute),e.projViewMatUniform=gl.getUniformLocation(e,"projViewMat"),e.viewMatUniform=gl.getUniformLocation(e,"viewMat"),e.normMatUniform=gl.getUniformLocation(e,"normMat"),e!=colorShader&&e!=transparentShader||gl.enableVertexAttribArray(colorAttribute),a)for(let t=0;t<Lights.length;++t)Lights[t].setUniform(e,t);for(let i=0;i<t.materials.length;++i)t.materials[i].setUniform(e,i);gl.uniformMatrix4fv(e.projViewMatUniform,!1,projViewMat),gl.uniformMatrix4fv(e.viewMatUniform,!1,viewMat),gl.uniformMatrix3fv(e.normMatUniform,!1,normMat)}function handleMouseDown(t){zoomEnabled||enableZoom(),mouseDownOrTouchActive=!0,lastMouseX=t.clientX,lastMouseY=t.clientY}let pinchStart,touchStartTime,pinch=!1;function pinchDistance(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function handleTouchStart(t){t.preventDefault(),zoomEnabled||enableZoom();let e=t.targetTouches;swipe=rotate=pinch=!1,zooming||(1!=e.length||mouseDownOrTouchActive||(touchStartTime=(new Date).getTime(),touchId=e[0].identifier,lastMouseX=e[0].pageX,lastMouseY=e[0].pageY),2!=e.length||mouseDownOrTouchActive||(touchId=e[0].identifier,pinchStart=pinchDistance(e),pinch=!0))}function handleMouseUpOrTouchEnd(t){mouseDownOrTouchActive=!1}function rotateScene(t,e,i,a,r){if(t==i&&e==a)return;let[n,s]=arcball([t,-e],[i,-a]);mat4.fromRotation(T,2*r*ArcballFactor*n/lastzoom,s),mat4.multiply(rotMat,T,rotMat)}function shiftScene(t,e,i,a){let r=1/lastzoom;shift.x+=(i-t)*r*halfCanvasWidth,shift.y-=(a-e)*r*halfCanvasHeight}function panScene(t,e,i,a){orthographic?shiftScene(t,e,i,a):(center.x+=(i-t)*(viewParam.xmax-viewParam.xmin),center.y-=(a-e)*(viewParam.ymax-viewParam.ymin))}function updateViewMatrix(){COBTarget(viewMat,rotMat),mat4.translate(viewMat,viewMat,[center.x,center.y,0]),mat3.fromMat4(viewMat3,viewMat),mat3.invert(normMat,viewMat3),mat4.multiply(projViewMat,projMat,viewMat)}function capzoom(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;Zoom<=e&&(Zoom=e),Zoom>=t&&(Zoom=t),Zoom!=lastzoom&&(remesh=!0),lastzoom=Zoom}function zoomImage(t){let e=zoomStep*halfCanvasHeight*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(zoomFactor);Math.abs(e)<i&&(Zoom*=zoomFactor**e,capzoom())}function normMouse(t){let e=t[0],i=t[1],a=Math.hypot(e,i);return a>1&&(denom=1/a,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function arcball(t,e){let i=normMouse(t),a=normMouse(e),r=dot(i,a);return r>1?r=1:r<-1&&(r=-1),[Math.acos(r),unit(cross(i,a))]}function zoomScene(t,e,i,a){zoomImage(e-a)}const DRAGMODE_ROTATE=1,DRAGMODE_SHIFT=2,DRAGMODE_ZOOM=3,DRAGMODE_PAN=4;function processDrag(t,e,i,a=1){let r;switch(i){case DRAGMODE_ROTATE:r=rotateScene;break;case DRAGMODE_SHIFT:r=shiftScene;break;case DRAGMODE_ZOOM:r=zoomScene;break;case DRAGMODE_PAN:r=panScene;break;default:r=((t,e,i,a)=>{})}r((lastMouseX-halfCanvasWidth)/halfCanvasWidth,(lastMouseY-halfCanvasHeight)/halfCanvasHeight,(t-halfCanvasWidth)/halfCanvasWidth,(e-halfCanvasHeight)/halfCanvasHeight,a),lastMouseX=t,lastMouseY=e,setProjection(),draw()}let zoomEnabled=0;function enableZoom(){zoomEnabled=1,canvas.addEventListener("wheel",handleMouseWheel,!1)}function disableZoom(){zoomEnabled=0,canvas.removeEventListener("wheel",handleMouseWheel,!1)}function handleKey(t){if(zoomEnabled||enableZoom(),embedded&&zoomEnabled&&27==t.keyCode)return void disableZoom();let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":home();break;case"m":3==++wireframe&&(wireframe=0),2!=wireframe&&(embedded||deleteShaders(),initShaders()),remesh=!0,draw();break;case"+":case"=":case">":expand();break;case"-":case"_":case"<":shrink()}e.length>0&&(mat4.rotate(rotMat,rotMat,.1,e),updateViewMatrix(),draw())}function handleMouseWheel(t){t.preventDefault(),t.deltaY<0?Zoom*=zoomFactor:Zoom/=zoomFactor,capzoom(),setProjection(),draw()}function handleMouseMove(t){if(!mouseDownOrTouchActive)return;let e;processDrag(t.clientX,t.clientY,e=t.getModifierState("Control")?DRAGMODE_SHIFT:t.getModifierState("Shift")?DRAGMODE_ZOOM:t.getModifierState("Alt")?DRAGMODE_PAN:DRAGMODE_ROTATE)}let zooming=!1,swipe=!1,rotate=!1;function handleTouchMove(t){if(t.preventDefault(),zooming)return;let e=t.targetTouches;if(!pinch&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,a=t-lastMouseX,r=i-lastMouseY,n=a*a+r*r<=shiftHoldDistance*shiftHoldDistance;if(n&&!swipe&&!rotate&&(new Date).getTime()-touchStartTime>shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(vibrateTime),swipe=!0),swipe)processDrag(t,i,DRAGMODE_SHIFT);else if(!n){rotate=!0,processDrag(e[0].pageX,e[0].pageY,DRAGMODE_ROTATE,.5)}}if(pinch&&!swipe&&2==e.length&&touchId==e[0].identifier){let t=pinchDistance(e),i=t-pinchStart;zooming=!0,(i*=zoomPinchFactor)>zoomPinchCap&&(i=zoomPinchCap),i<-zoomPinchCap&&(i=-zoomPinchCap),zoomImage(i/size2),pinchStart=t,swipe=rotate=zooming=!1,setProjection(),draw()}}let pixelShader,materialShader,colorShader,transparentShader,zbuffer=[];function transformVertices(t){let e=viewMat[2],i=viewMat[6],a=viewMat[10];zbuffer.length=t.length;for(let r=0;r<t.length;++r){let n=6*r;zbuffer[r]=e*t[n]+i*t[n+1]+a*t[n+2]}}function drawMaterial0(){drawBuffer(material0Data,pixelShader),material0Data.clear()}function drawMaterial1(){drawBuffer(material1Data,materialShader),material1Data.clear()}function drawMaterial(){drawBuffer(materialData,materialShader),materialData.clear()}function drawColor(){drawBuffer(colorData,colorShader),colorData.clear()}function drawTriangle(){drawBuffer(triangleData,transparentShader),triangleData.clear()}function drawTransparent(){let t=transparentData.indices;if(wireframe>0)return drawBuffer(transparentData,transparentShader,t),void transparentData.clear();if(t.length>0){transformVertices(transparentData.vertices);let e=t.length/3,i=Array(e).fill().map((t,e)=>e);i.sort(function(e,i){let a=3*e;Ia=t[a],Ib=t[a+1],Ic=t[a+2];let r=3*i;return IA=t[r],IB=t[r+1],IC=t[r+2],zbuffer[Ia]+zbuffer[Ib]+zbuffer[Ic]<zbuffer[IA]+zbuffer[IB]+zbuffer[IC]?-1:1});let a=Array(t.length);for(let r=0;r<e;++r){let e=3*i[r];a[3*r]=t[e],a[3*r+1]=t[e+1],a[3*r+2]=t[e+2]}gl.depthMask(!1),drawBuffer(transparentData,transparentShader,a),gl.depthMask(!0)}transparentData.clear()}function drawBuffers(){drawMaterial0(),drawMaterial1(),drawMaterial(),drawColor(),drawTriangle(),drawTransparent()}function draw(){embedded&&(offscreen.width=canvas.width,offscreen.height=canvas.height,setViewport()),gl.clearColor(Background[0],Background[1],Background[2],Background[3]),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);for(let t=0;t<P.length;++t)P[t].render();drawBuffers(),embedded&&(context.clearRect(0,0,canvas.width,canvas.height),context.drawImage(offscreen,0,0)),0==wireframe&&(remesh=!1)}function setDimensions(t,e,i,a){let r=t/e,n=1/lastzoom,s=(i/t+viewportshift[0])*lastzoom,o=(a/e+viewportshift[1])*lastzoom;if(orthographic){let t=B[0]-b[0],e=B[1]-b[1];if(t<e*r){let t=.5*e*r*n,i=2*t*s,a=e*n*o;viewParam.xmin=-t-i,viewParam.xmax=t-i,viewParam.ymin=b[1]*n-a,viewParam.ymax=B[1]*n-a}else{let e=.5*t/(r*Zoom),i=t*n*s,a=2*e*o;viewParam.xmin=b[0]*n-i,viewParam.xmax=B[0]*n-i,viewParam.ymin=-e-a,viewParam.ymax=e-a}}else{let t=H*n,e=t*r,i=2*e*s,a=2*t*o;viewParam.xmin=-e-i,viewParam.xmax=e-i,viewParam.ymin=-t-a,viewParam.ymax=t-a}}function setProjection(){setDimensions(canvasWidth,canvasHeight,shift.x,shift.y),(orthographic?mat4.ortho:mat4.frustum)(projMat,viewParam.xmin,viewParam.xmax,viewParam.ymin,viewParam.ymax,-viewParam.zmax,-viewParam.zmin),updateViewMatrix()}function initProjection(){H=-Math.tan(.5*angle)*B[2],center.x=center.y=0,center.z=.5*(b[2]+B[2]),lastzoom=Zoom=Zoom0,viewParam.zmin=b[2],viewParam.zmax=B[2],shift.x=shift.y=0}function setViewport(){gl.viewportWidth=canvasWidth,gl.viewportHeight=canvasHeight,gl.viewport(0,0,gl.viewportWidth,gl.viewportHeight),gl.scissor(0,0,gl.viewportWidth,gl.viewportHeight)}function setCanvas(){canvas.width=canvasWidth,canvas.height=canvasHeight,embedded&&(offscreen.width=canvasWidth,offscreen.height=canvasHeight),size2=Math.hypot(canvasWidth,canvasHeight),halfCanvasWidth=.5*canvasWidth,halfCanvasHeight=.5*canvasHeight}function setsize(t,e){t>maxViewportWidth&&(t=maxViewportWidth),e>maxViewportHeight&&(e=maxViewportHeight),shift.x*=t/canvasWidth,shift.y*=e/canvasHeight,canvasWidth=t,canvasHeight=e,setCanvas(),setViewport(),home()}function expand(){setsize(canvasWidth*resizeStep+.5,canvasHeight*resizeStep+.5)}function shrink(){setsize(Math.max(canvasWidth/resizeStep+.5,1),Math.max(canvasHeight/resizeStep+.5,1))}function webGLInit(){if(canvas=document.getElementById("Asymptote"),embedded=window.top.document!=document,initGL(),absolute&&!embedded)canvasWidth*=window.devicePixelRatio,canvasHeight*=window.devicePixelRatio;else{canvas.width=Math.max(window.innerWidth-windowTrim,windowTrim),canvas.height=Math.max(window.innerHeight-windowTrim,windowTrim);let t=canvasWidth/canvasHeight;canvas.width>canvas.height*t?canvas.width=Math.min(canvas.height*t,canvas.width):canvas.height=Math.min(canvas.width/t,canvas.height),canvas.width>0&&(canvasWidth=canvas.width),canvas.height>0&&(canvasHeight=canvas.height)}setCanvas(),ArcballFactor=1+8*Math.hypot(viewportmargin[0],viewportmargin[1])/size2,viewportshift[0]/=Zoom0,viewportshift[1]/=Zoom0,gl.enable(gl.BLEND),gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA),gl.enable(gl.DEPTH_TEST),gl.enable(gl.SCISSOR_TEST),setViewport(),home(),canvas.onmousedown=handleMouseDown,document.onmouseup=handleMouseUpOrTouchEnd,document.onmousemove=handleMouseMove,canvas.onkeydown=handleKey,embedded||enableZoom(),canvas.addEventListener("touchstart",handleTouchStart,!1),canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchmove",handleTouchMove,!1),document.addEventListener("keydown",handleKey,!1)}let listen=!1;class Align{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],a=t[2],r=e*this.ct+a*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+a*this.ct+this.center[2]]}}function Tcorners(t,e,i){let a=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1],e[2]]),t(i)];return[minbound(a),maxbound(a)]}function sphere(t,e,i,r,n){let s,o,h,l,d,c,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,g=.0549670512339254,w=.998880711874577,x=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,a,0],[1,a,m],[f,a*f,u],[p,a*p,v],[a,1,0],[a,1,m],[a*f,f,u],[a*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,a*p,v],[g,0,w],[a*p,p,v],[x,x,1],[.05*a,0,1],[0,p,v],[0,g,w],[0,.05*a,1],[0,0,1]]],b=new Align(t,n);function A(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let a=t[i];e[i]=d([s*a[0],o*a[1],h*a[2]])}return e}n?(l=1,c=0,d=b.T.bind(b)):(l=-1,c=-e,d=b.T0.bind(b));let S=Tcorners(d,[-e,-e,c],[e,e,e]),R=S[0],T=S[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){o=t*e;for(let t=l;t<=1;t+=2){h=t*e;for(let t=0;t<2;++t)P.push(new BezierPatch(A(M[t]),i,r,R,T))}}}}let a=4/3*(Math.sqrt(2)-1);function disk(t,e,i,r,n){let s=1-2*a/3,o=[[1,0,0],[1,-a,0],[a,-1,0],[0,-1,0],[1,a,0],[s,0,0],[0,-s,0],[-a,-1,0],[a,1,0],[0,s,0],[-s,0,0],[-1,-a,0],[0,1,0],[-a,1,0],[-1,a,0],[-1,0,0]],h=new Align(t,n);let l=Tcorners(h.T.bind(h),[-e,-e,0],[e,e,0]);P.push(new BezierPatch(function(t){let i=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];i[a]=h.T([e*r[0],e*r[1],0])}return i}(o),i,r,l[0],l[1]))}function cylinder(t,e,i,r,n,s,o){let h,l,d=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,a,0],[1,a,1/3],[1,a,2/3],[1,a,1],[a,1,0],[a,1,1/3],[a,1,2/3],[a,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],c=new Align(t,s);function m(t){let e=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];e[a]=c.T([h*r[0],l*r[1],i*r[2]])}return e}let f=Tcorners(c.T.bind(c),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){h=t*e;for(let t=-1;t<=1;t+=2)l=t*e,P.push(new BezierPatch(m(d),r,n,u,p))}if(o){let e=c.T([0,0,i]);P.push(new BezierCurve([t,e],r,n,t,e))}}function rmf(t,e,i,a,r){class n{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=cross(i,e)}}let s=Number.EPSILON*Math.max(abs2(t),abs2(e),abs2(i),abs2(a));function o(r){if(1==r){let r=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return abs2(r)>s?unit(r):abs2(r=[2*i[0]-e[0]-a[0],2*i[1]-e[1]-a[1],2*i[2]-e[2]-a[2]])>s?unit(r):[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]}let n=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,d=[n[0]*l+o[0]*r+h[0],n[1]*l+o[1]*r+h[1],n[2]*l+o[2]*r+h[2]];return abs2(d)>s?unit(d):abs2(d=[n[0]*(l=2*r)+o[0],n[1]*l+o[1],n[2]*l+o[2]])>s?unit(d):unit(n)}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];abs2(l)<s&&abs2(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]])<s&&(l=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]);let d=function(t){let e=cross(t,[0,1,0]),i=Number.EPSILON*abs2(t);return abs2(e)>i?unit(e):abs2(e=cross(t,[0,0,1]))>i?unit(e):[1,0,0]}(l=unit(l));h[0]=new n(t,d,l);for(let s=1;s<r.length;++s){let l=h[s-1],d=r[s],c=1-d,m=c*c,f=m*c,u=3*d;m*=u,c*=u*d;let p=d*d*d,v=[f*t[0]+m*e[0]+c*i[0]+p*a[0],f*t[1]+m*e[1]+c*i[1]+p*a[1],f*t[2]+m*e[2]+c*i[2]+p*a[2]],g=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=g[0]||0!=g[1]||0!=g[2]){let t=l.r,e=unit(g),i=l.t,a=dot(e,i),r=[i[0]-2*a*e[0],i[1]-2*a*e[1],i[2]-2*a*e[2]];i=o(d);let c=2*dot(e,t),m=[t[0]-c*e[0],t[1]-c*e[1],t[2]-c*e[2]],f=unit([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*dot(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[s]=new n(v,unit(m),unit(i))}else h[s]=h[s-1]}return h}function tube(t,e,i,r,n,s,o){let h=rmf(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),l=a*e,d=[[e,0],[e,l],[l,e],[0,e]];function c(e,a,o,l){let c=Array(16);for(let i=0;i<4;++i){let r=h[i],n=r.r[0],s=r.s[0],m=n*e+s*a,f=n*o+s*l,u=(n=r.r[1])*e+(s=r.s[1])*a,p=n*o+s*l,v=(n=r.r[2])*e+(s=r.s[2])*a,g=n*o+s*l,w=t[i],x=w[0];w1=w[1],w2=w[2];for(let t=0;t<4;++t){let e=d[t],a=e[0],r=e[1];c[4*i+t]=[m*a+f*r+x,u*a+p*r+w1,v*a+g*r+w2]}}P.push(new BezierPatch(c,i,r,n,s))}c(1,0,0,1),c(0,-1,1,0),c(-1,0,0,-1),c(0,1,-1,0),o&&P.push(new BezierCurve(t,i,r,n,s))}function webGLStart(){0==window.innerWidth||0==window.innerHeight?listen||(listen=!0,window.addEventListener("resize",webGLStart,!1)):(listen&&(window.removeEventListener("resize",webGLStart,!1),listen=!1),webGLInit())} +let vertex="\nattribute vec3 position;\n#ifdef WIDTH\nattribute float width;\n#endif\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\nattribute float materialIndex;\n#ifdef COLOR\nattribute vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\n#endif\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\nvarying vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif \n Normal=normalize(normal*normMat);\n \n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0) {\n diffuse=m.diffuse;\n } else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif\n#endif\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nvarying vec3 ViewPosition;\n#endif\nvarying vec3 Normal;\nvarying vec4 diffuse;\nvarying vec3 specular;\nvarying float roughness,metallic,fresnel0;\n\nfloat Roughness2;\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 ? alpha2/(denom*denom) : 0.0;\n}\n \nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n \nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n \nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n \n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n \n float omegain=max(dot(viewDirection,normal),0.0);\n float omegali=max(dot(lightDirection,normal),0.0);\n \n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n \n float denom=4.0*omegain*omegali;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n \n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n \n return mix(dielectric,metal,metallic);\n}\n#endif\nvarying vec4 emissive;\n \nvoid main(void)\n{\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n Roughness2=roughness*roughness;\n vec3 color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n gl_FragColor=vec4(color,diffuse.a);\n#else\n gl_FragColor=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var a in i)("object"==typeof exports?exports:t)[a]=i[a]}}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function i(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,a){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=a*Math.max(1,Math.abs(t),Math.abs(e))};var a=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var a=n(i(2)),r=n(i(3));function n(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=a,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=c*s-o*l,m=-c*n+o*h,f=l*n-s*h,u=i*d+a*m+r*f;if(!u)return null;return u=1/u,t[0]=d*u,t[1]=(-c*a+r*l)*u,t[2]=(o*a-r*s)*u,t[3]=m*u,t[4]=(c*i-r*h)*u,t[5]=(-o*i+r*n)*u,t[6]=f*u,t[7]=(-l*i+a*h)*u,t[8]=(s*i-a*n)*u,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new a.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],a=e[1],r=e[2],n=e[3],s=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],g=e[15],x=i*o-a*s,w=i*h-r*s,M=i*l-n*s,b=a*h-r*o,S=a*l-n*o,P=r*l-n*h,A=c*p-d*u,y=c*v-m*u,T=c*g-f*u,R=d*v-m*p,D=d*g-f*p,I=m*g-f*v,z=x*I-w*D+M*R+b*T-S*y+P*A;if(!z)return null;return z=1/z,t[0]=(o*I-h*D+l*R)*z,t[1]=(r*D-a*I-n*R)*z,t[2]=(p*P-v*S+g*b)*z,t[3]=(m*S-d*P-f*b)*z,t[4]=(h*T-s*I-l*y)*z,t[5]=(i*I-r*T+n*y)*z,t[6]=(v*M-u*P-g*w)*z,t[7]=(c*P-m*M+f*w)*z,t[8]=(s*D-o*T+l*A)*z,t[9]=(a*T-i*D-n*A)*z,t[10]=(u*S-p*M+g*x)*z,t[11]=(d*M-c*S-f*x)*z,t[12]=(o*y-s*R-h*A)*z,t[13]=(i*R-a*y+r*A)*z,t[14]=(p*w-u*b-v*x)*z,t[15]=(c*b-d*w+m*x)*z,t},e.multiply=r,e.translate=function(t,e,i){var a=i[0],r=i[1],n=i[2],s=void 0,o=void 0,h=void 0,l=void 0,c=void 0,d=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,g=void 0;e===t?(t[12]=e[0]*a+e[4]*r+e[8]*n+e[12],t[13]=e[1]*a+e[5]*r+e[9]*n+e[13],t[14]=e[2]*a+e[6]*r+e[10]*n+e[14],t[15]=e[3]*a+e[7]*r+e[11]*n+e[15]):(s=e[0],o=e[1],h=e[2],l=e[3],c=e[4],d=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],g=e[11],t[0]=s,t[1]=o,t[2]=h,t[3]=l,t[4]=c,t[5]=d,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=g,t[12]=s*a+c*r+u*n+e[12],t[13]=o*a+d*r+p*n+e[13],t[14]=h*a+m*r+v*n+e[14],t[15]=l*a+f*r+g*n+e[15]);return t},e.rotate=function(t,e,i,r){var n,s,o,h,l,c,d,m,f,u,p,v,g,x,w,M,b,S,P,A,y,T,R,D,I=r[0],z=r[1],L=r[2],N=Math.sqrt(I*I+z*z+L*L);if(Math.abs(N)<a.EPSILON)return null;I*=N=1/N,z*=N,L*=N,n=Math.sin(i),s=Math.cos(i),o=1-s,h=e[0],l=e[1],c=e[2],d=e[3],m=e[4],f=e[5],u=e[6],p=e[7],v=e[8],g=e[9],x=e[10],w=e[11],M=I*I*o+s,b=z*I*o+L*n,S=L*I*o-z*n,P=I*z*o-L*n,A=z*z*o+s,y=L*z*o+I*n,T=I*L*o+z*n,R=z*L*o-I*n,D=L*L*o+s,t[0]=h*M+m*b+v*S,t[1]=l*M+f*b+g*S,t[2]=c*M+u*b+x*S,t[3]=d*M+p*b+w*S,t[4]=h*P+m*A+v*y,t[5]=l*P+f*A+g*y,t[6]=c*P+u*A+x*y,t[7]=d*P+p*A+w*y,t[8]=h*T+m*R+v*D,t[9]=l*T+f*R+g*D,t[10]=c*T+u*R+x*D,t[11]=d*T+p*R+w*D,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r,n,s,o=i[0],h=i[1],l=i[2],c=Math.sqrt(o*o+h*h+l*l);if(Math.abs(c)<a.EPSILON)return null;return o*=c=1/c,h*=c,l*=c,r=Math.sin(e),n=Math.cos(e),s=1-n,t[0]=o*o*s+n,t[1]=h*o*s+l*r,t[2]=l*o*s-h*r,t[3]=0,t[4]=o*h*s-l*r,t[5]=h*h*s+n,t[6]=l*h*s+o*r,t[7]=0,t[8]=o*l*s+h*r,t[9]=h*l*s-o*r,t[10]=l*l*s+n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,a,r,n,s){var o=1/(i-e),h=1/(r-a),l=1/(n-s);return t[0]=2*n*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*n*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+a)*h,t[10]=(s+n)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*n*2*l,t[15]=0,t},e.ortho=function(t,e,i,a,r,n,s){var o=1/(e-i),h=1/(a-r),l=1/(n-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+a)*h,t[14]=(s+n)*l,t[15]=1,t};var a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var a=e[0],r=e[1],n=e[2],s=e[3],o=e[4],h=e[5],l=e[6],c=e[7],d=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],g=e[14],x=e[15],w=i[0],M=i[1],b=i[2],S=i[3];return t[0]=w*a+M*o+b*d+S*p,t[1]=w*r+M*h+b*m+S*v,t[2]=w*n+M*l+b*f+S*g,t[3]=w*s+M*c+b*u+S*x,w=i[4],M=i[5],b=i[6],S=i[7],t[4]=w*a+M*o+b*d+S*p,t[5]=w*r+M*h+b*m+S*v,t[6]=w*n+M*l+b*f+S*g,t[7]=w*s+M*c+b*u+S*x,w=i[8],M=i[9],b=i[10],S=i[11],t[8]=w*a+M*o+b*d+S*p,t[9]=w*r+M*h+b*m+S*v,t[10]=w*n+M*l+b*f+S*g,t[11]=w*s+M*c+b*u+S*x,w=i[12],M=i[13],b=i[14],S=i[15],t[12]=w*a+M*o+b*d+S*p,t[13]=w*r+M*h+b*m+S*v,t[14]=w*n+M*l+b*f+S*g,t[15]=w*s+M*c+b*u+S*x,t}}])}));let canvasWidth,canvasHeight,canvasWidth0,canvasHeight0,b,B,angle,Zoom0,zoom0,viewportmargin,zoomFactor,zoomPinchFactor,zoomPinchCap,zoomStep,shiftHoldDistance,shiftWaitTime,vibrateTime,embedded,canvas,gl,alpha,offscreen,context,maxMaterials,halfCanvasWidth,halfCanvasHeight,Zoom,maxViewportWidth,maxViewportHeight,P=[],Materials=[],Lights=[],Centers=[],Background=[1,1,1,1],absolute=!1,viewportshift=[0,0],nlights=0,Nmaterials=2,materials=[],pixel=.75,zoomRemeshFactor=1.5,FillFactor=.1;const windowTrim=10;let lastZoom,H,zmin,zmax,size2,ArcballFactor,third=1/3,rotMat=mat4.create(),projMat=mat4.create(),viewMat=mat4.create(),projViewMat=mat4.create(),normMat=mat3.create(),viewMat3=mat3.create(),cjMatInv=mat4.create(),T=mat4.create(),center={x:0,y:0,z:0},shift={x:0,y:0},viewParam={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},remesh=!0,wireframe=0,mouseDownOrTouchActive=!1,lastMouseX=null,lastMouseY=null,touchID=null,Positions=[],Normals=[],Colors=[],Indices=[];class Material{constructor(t,e,i,a,r,n){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=a,this.metallic=r,this.fresnel0=n}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Materials["+e+"]."+i);gl.uniform4fv(i("diffuse"),new Float32Array(this.diffuse)),gl.uniform4fv(i("emissive"),new Float32Array(this.emissive)),gl.uniform4fv(i("specular"),new Float32Array(this.specular)),gl.uniform4f(i("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let indexExt,TRIANGLES,material0Data,material1Data,materialData,colorData,transparentData,triangleData,materialIndex,enumPointLight=1,enumDirectionalLight=2;class Light{constructor(t,e){this.direction=t,this.color=e}setUniform(t,e){let i=i=>gl.getUniformLocation(t,"Lights["+e+"]."+i);gl.uniform3fv(i("direction"),new Float32Array(this.direction)),gl.uniform3fv(i("color"),new Float32Array(this.color))}}function initShaders(){let t=gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);maxMaterials=Math.floor((t-14)/4),Nmaterials=Math.min(Math.max(Nmaterials,Materials.length),maxMaterials),pixelShader=initShader(["WIDTH"]),materialShader=initShader(["NORMAL"]),colorShader=initShader(["NORMAL","COLOR"]),transparentShader=initShader(["NORMAL","COLOR","TRANSPARENT"])}function deleteShaders(){gl.deleteProgram(transparentShader),gl.deleteProgram(colorShader),gl.deleteProgram(materialShader),gl.deleteProgram(pixelShader)}function noGL(){gl||alert("Could not initialize WebGL")}function saveAttributes(){let t=window.top.document.asygl[alpha];t.gl=gl,t.nlights=Lights.length,t.Nmaterials=Nmaterials,t.maxMaterials=maxMaterials,t.pixelShader=pixelShader,t.materialShader=materialShader,t.colorShader=colorShader,t.transparentShader=transparentShader}function restoreAttributes(){let t=window.top.document.asygl[alpha];gl=t.gl,nlights=t.nlights,Nmaterials=t.Nmaterials,maxMaterials=t.maxMaterials,pixelShader=t.pixelShader,materialShader=t.materialShader,colorShader=t.colorShader,transparentShader=t.transparentShader}function initGL(){if(alpha=Background[3]<1,embedded){let t=window.top.document;null==t.asygl&&(t.asygl=Array(2)),context=canvas.getContext("2d"),offscreen=t.offscreen,offscreen||(offscreen=t.createElement("canvas"),t.offscreen=offscreen),t.asygl[alpha]&&t.asygl[alpha].gl?(restoreAttributes(),(Lights.length!=nlights||Math.min(Materials.length,maxMaterials)>Nmaterials)&&(initShaders(),saveAttributes())):(gl=offscreen.getContext("webgl",{alpha:alpha}),gl||noGL(),initShaders(),t.asygl[alpha]={},saveAttributes())}else gl=canvas.getContext("webgl",{alpha:alpha}),gl||noGL(),initShaders();indexExt=gl.getExtension("OES_element_index_uint"),TRIANGLES=gl.TRIANGLES,material0Data=new vertexBuffer(gl.POINTS),material1Data=new vertexBuffer(gl.LINES),materialData=new vertexBuffer,colorData=new vertexBuffer,transparentData=new vertexBuffer,triangleData=new vertexBuffer}function getShader(t,e,i,a=[]){let r=`#version 100\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n #define nlights ${0==wireframe?Lights.length:0}\n\n const int Nlights=${Math.max(Lights.length,1)};\n\n #define Nmaterials ${Nmaterials}\n`;orthographic&&(r+="#define ORTHOGRAPHIC\n"),a.forEach(t=>r+="#define "+t+"\n");let n=t.createShader(i);return t.shaderSource(n,r+e),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:(alert(t.getShaderInfoLog(n)),null)}function registerBuffer(t,e,i,a=gl.ARRAY_BUFFER){return t.length>0&&(0==e&&(e=gl.createBuffer(),i=!0),gl.bindBuffer(a,e),i&&gl.bufferData(a,t,gl.STATIC_DRAW)),e}function drawBuffer(t,e,i=t.indices){if(0==t.indices.length)return;let a=e!=pixelShader;setUniforms(t,e);let r=remesh||t.partial||!t.rendered;t.verticesBuffer=registerBuffer(new Float32Array(t.vertices),t.verticesBuffer,r),gl.vertexAttribPointer(positionAttribute,3,gl.FLOAT,!1,a?24:16,0),a&&Lights.length>0?gl.vertexAttribPointer(normalAttribute,3,gl.FLOAT,!1,24,12):pixel&&gl.vertexAttribPointer(widthAttribute,1,gl.FLOAT,!1,16,12),t.materialsBuffer=registerBuffer(new Int16Array(t.materialIndices),t.materialsBuffer,r),gl.vertexAttribPointer(materialAttribute,1,gl.SHORT,!1,2,0),e!=colorShader&&e!=transparentShader||(t.colorsBuffer=registerBuffer(new Uint8Array(t.colors),t.colorsBuffer,r),gl.vertexAttribPointer(colorAttribute,4,gl.UNSIGNED_BYTE,!0,0,0)),t.indicesBuffer=registerBuffer(indexExt?new Uint32Array(i):new Uint16Array(i),t.indicesBuffer,r,gl.ELEMENT_ARRAY_BUFFER),t.rendered=!0,gl.drawElements(a?wireframe?gl.LINES:t.type:gl.POINTS,i.length,indexExt?gl.UNSIGNED_INT:gl.UNSIGNED_SHORT,0)}class vertexBuffer{constructor(t){this.type=t||TRIANGLES,this.verticesBuffer=0,this.materialsBuffer=0,this.colorsBuffer=0,this.indicesBuffer=0,this.rendered=!1,this.partial=!1,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.nvertices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(materialIndex),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(materialIndex),this.nvertices++}iVertex(t,e,i,a=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=materialIndex;let n=4*t;this.colors[n]=a[0],this.colors[n+1]=a[1],this.colors[n+2]=a[2],this.colors[n+3]=a[3],this.indices.push(t)}append(t){append(this.vertices,t.vertices),append(this.materialIndices,t.materialIndices),append(this.colors,t.colors),appendOffset(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function append(t,e){let i=t.length,a=e.length;t.length+=a;for(let r=0;r<a;++r)t[i+r]=e[r]}function appendOffset(t,e,i){let a=t.length,r=e.length;t.length+=e.length;for(let n=0;n<r;++n)t[a+n]=e[n]+i}class Geometry{constructor(){this.data=new vertexBuffer,this.Onscreen=!1,this.m=[]}offscreen(t){let e=projViewMat,i=t[0],a=i[0],r=i[1],n=i[2],s=1/(e[3]*a+e[7]*r+e[11]*n+e[15]);this.x=this.X=(e[0]*a+e[4]*r+e[8]*n+e[12])*s,this.y=this.Y=(e[1]*a+e[5]*r+e[9]*n+e[13])*s;for(let i=1,a=t.length;i<a;++i){let a=t[i],r=a[0],n=a[1],s=a[2],o=1/(e[3]*r+e[7]*n+e[11]*s+e[15]),h=(e[0]*r+e[4]*n+e[8]*s+e[12])*o,l=(e[1]*r+e[5]*n+e[9]*s+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],a=this.c[2],r=t[0]-e,n=t[1]-i,s=t[2]-a;return[r*normMat[0]+n*normMat[3]+s*normMat[6]+e,r*normMat[1]+n*normMat[4]+s*normMat[7]+i,r*normMat[2]+n*normMat[5]+s*normMat[8]+a]}Tcorners(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null==t.materialTable[this.MaterialIndex]&&(t.materials.length>=Nmaterials&&(t.partial=!0,e()),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(Materials[this.MaterialIndex])),materialIndex=t.materialTable[this.MaterialIndex]}render(){let t;if(this.setMaterialIndex(),0==this.CenterIndex?t=corners(this.Min,this.Max):(this.c=Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return this.data.clear(),void this.notRendered();let e,i=this.controlpoints;if(0==this.CenterIndex){if(!remesh&&this.Onscreen)return void this.append();e=i}else{let t=i.length;e=Array(t);for(let a=0;a<t;++a)e[a]=this.T(i[a])}let a=orthographic?1:this.Min[2]/B[2],r=pixel*Math.hypot(a*(viewParam.xmax-viewParam.xmin),a*(viewParam.ymax-viewParam.ymin))/size2;this.res2=r*r,this.Epsilon=FillFactor*r,this.data.clear(),this.notRendered(),this.Onscreen=!0,this.process(e)}}class BezierPatch extends Geometry{constructor(t,e,i,a,r,n){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.color=n,this.CenterIndex=e;let s=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==s||4==s?t+n[3][3]<1020:t<765}else this.transparent=Materials[i].diffuse[3]<1;this.MaterialIndex=i,this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data),this.L2norm(this.controlpoints)}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.color?this.setMaterial(colorData,drawColor):this.setMaterial(materialData,drawMaterial)}L2norm(t){let e=t[0];this.epsilon=0;let i=t.length;for(let a=1;a<i;++a)this.epsilon=Math.max(this.epsilon,abs2([t[a][0]-e[0],t[a][1]-e[1],t[a][2]-e[2]]));this.epsilon*=Number.EPSILON}processTriangle(t){let e=t[0],i=t[1],a=t[2],r=unit(cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-e[0],a[1]-e[1],a[2]-e[2]]));if(!this.offscreen([e,i,a])){let t,n,s;this.color?(t=this.data.Vertex(e,r,this.color[0]),n=this.data.Vertex(i,r,this.color[1]),s=this.data.Vertex(a,r,this.color[2])):(t=this.vertex(e,r),n=this.vertex(i,r),s=this.vertex(a,r)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],a=t[2],r=t[3],n=cross([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[a[0]-i[0],a[1]-i[1],a[2]-i[2]]),s=cross([a[0]-r[0],a[1]-r[1],a[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=unit([n[0]+s[0],n[1]+s[1],n[2]+s[2]]);if(!this.offscreen([e,i,a,r])){let t,n,s,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),n=this.data.Vertex(i,o,this.color[1]),s=this.data.Vertex(a,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),n=this.vertex(i,o),s=this.vertex(a,o),h=this.vertex(r,o)),0==wireframe?(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,a,r){new BezierCurve([t[e],t[i],t[a],t[r]],0,materialIndex,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=wireframe&&(materialIndex=this.color?-1-materialIndex:1+materialIndex),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==wireframe)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],a=t[12],r=t[15],n=this.normal(i,t[2],t[1],e,t[4],t[8],a);abs2(n)<this.epsilon&&(n=this.normal(i,t[2],t[1],e,t[13],t[14],r),abs2(n)<this.epsilon&&(n=this.normal(r,t[11],t[7],i,t[4],t[8],a)));let s=this.normal(e,t[4],t[8],a,t[13],t[14],r);abs2(s)<this.epsilon&&(s=this.normal(e,t[4],t[8],a,t[11],t[7],i),abs2(s)<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r)));let o=this.normal(a,t[13],t[14],r,t[11],t[7],i);abs2(o)<this.epsilon&&(o=this.normal(a,t[13],t[14],r,t[2],t[1],e),abs2(o)<this.epsilon&&(o=this.normal(e,t[4],t[8],a,t[11],t[7],i)));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(abs2(h)<this.epsilon&&(h=this.normal(r,t[11],t[7],i,t[4],t[8],a),abs2(h)<this.epsilon&&(h=this.normal(a,t[13],t[14],r,t[2],t[1],e))),this.color){let l=this.color[0],c=this.color[1],d=this.color[2],m=this.color[3],f=this.data.Vertex(e,n,l),u=this.data.Vertex(a,s,c),p=this.data.Vertex(r,o,d),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,a,r,i,!1,!1,!1,!1,l,c,d,m)}else{let l=this.vertex(e,n),c=this.vertex(a,s),d=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,c,d,m,e,a,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):this.color?colorData.append(this.data):materialData.append(this.data)}notRendered(){this.transparent?transparentData.rendered=!1:this.color?colorData.rendered=!1:materialData.rendered=!1}Render(t,e,i,a,r,n,s,o,h,l,c,d,m,f,u,p,v){let g=this.Distance(t);if(g[0]<this.res2&&g[1]<this.res2)this.offscreen([n,s,o])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a))),this.offscreen([n,o,h])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(a),this.data.indices.push(r)):(this.data.indices.push(a),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let x=t[0],w=t[3],M=t[12],b=t[15];if(g[0]<this.res2){let g=new Split3(x,t[1],t[2],w),S=new Split3(t[4],t[5],t[6],t[7]),P=new Split3(t[8],t[9],t[10],t[11]),A=new Split3(M,t[13],t[14],b),y=[x,g.m0,g.m3,g.m5,t[4],S.m0,S.m3,S.m5,t[8],P.m0,P.m3,P.m5,M,A.m0,A.m3,A.m5],T=[g.m5,g.m4,g.m2,w,S.m5,S.m4,S.m2,t[7],P.m5,P.m4,P.m2,t[11],A.m5,A.m4,A.m2,b],R=this.normal(y[12],y[13],y[14],y[15],y[11],y[7],y[3]);abs2(R)<=this.epsilon&&(R=this.normal(y[12],y[13],y[14],y[15],y[2],y[1],y[0]),abs2(R)<=this.epsilon&&(R=this.normal(y[0],y[4],y[8],y[12],y[11],y[7],y[3])));let D=this.normal(T[3],T[2],T[1],T[0],T[4],T[8],T[12]);abs2(D)<=this.epsilon&&(D=this.normal(T[3],T[2],T[1],T[0],T[13],T[14],T[15]),abs2(D)<=this.epsilon&&(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12])));let I=this.Epsilon,z=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!c)if(c=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(T[12],T[8],T[4],T[0]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=y[15];let L=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(x,t[1],t[2],w)<this.res2){let t=unit(this.differential(y[3],y[7],y[11],y[15]));L=[L[0]-I*t[0],L[1]-I*t[1],L[2]-I*t[2]]}else L=T[0];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),g[e]=.5*(v[e]+f[e]);let x=this.data.Vertex(z,R,t),w=this.data.Vertex(L,D,g);this.Render(y,e,i,x,w,n,s,z,L,l,c,!1,m,f,u,t,g),this.Render(T,w,x,a,r,L,z,o,h,!1,c,d,m,g,t,p,v)}else{let t=this.vertex(z,R),f=this.vertex(L,D);this.Render(y,e,i,t,f,n,s,z,L,l,c,!1,m),this.Render(T,f,t,a,r,L,z,o,h,!1,c,d,m)}return}if(g[1]<this.res2){let g=new Split3(x,t[4],t[8],M),S=new Split3(t[1],t[5],t[9],t[13]),P=new Split3(t[2],t[6],t[10],t[14]),A=new Split3(w,t[7],t[11],b),y=[x,t[1],t[2],w,g.m0,S.m0,P.m0,A.m0,g.m3,S.m3,P.m3,A.m3,g.m5,S.m5,P.m5,A.m5],T=[g.m5,S.m5,P.m5,A.m5,g.m4,S.m4,P.m4,A.m4,g.m2,S.m2,P.m2,A.m2,M,t[13],t[14],b],R=this.normal(y[0],y[4],y[8],y[12],y[13],y[14],y[15]);abs2(R)<=this.epsilon&&(R=this.normal(y[0],y[4],y[8],y[12],y[11],y[7],y[3]),abs2(R)<=this.epsilon&&(R=this.normal(y[3],y[2],y[1],y[0],y[13],y[14],y[15])));let D=this.normal(T[15],T[11],T[7],T[3],T[2],T[1],T[0]);abs2(D)<=this.epsilon&&(D=this.normal(T[15],T[11],T[7],T[3],T[4],T[8],T[12]),abs2(D)<=this.epsilon&&(D=this.normal(T[12],T[13],T[14],T[15],T[2],T[1],T[0])));let I=this.Epsilon,z=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(x,t[4],t[8],M)<this.res2){let t=unit(this.differential(T[0],T[1],T[2],T[3]));z=[z[0]-I*t[0],z[1]-I*t[1],z[2]-I*t[2]]}else z=y[12];let L=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=Straightness(b,t[11],t[7],w)<this.res2){let t=unit(this.differential(y[15],y[14],y[13],y[12]));L=[L[0]-I*t[0],L[1]-I*t[1],L[2]-I*t[2]]}else L=T[3];if(f){let t=Array(4),g=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(p[e]+v[e]);let x=this.data.Vertex(z,R,t),w=this.data.Vertex(L,D,g);this.Render(y,e,x,w,r,n,z,L,h,l,!1,d,m,f,t,g,v),this.Render(T,x,i,a,w,z,s,o,L,l,c,d,!1,t,u,p,g)}else{let t=this.vertex(z,R),f=this.vertex(L,D);this.Render(y,e,t,f,r,n,z,L,h,l,!1,d,m),this.Render(T,t,i,a,f,z,s,o,L,l,c,d,!1)}return}let S=new Split3(x,t[1],t[2],w),P=new Split3(t[4],t[5],t[6],t[7]),A=new Split3(t[8],t[9],t[10],t[11]),y=new Split3(M,t[13],t[14],b),T=new Split3(x,t[4],t[8],M),R=new Split3(S.m0,P.m0,A.m0,y.m0),D=new Split3(S.m3,P.m3,A.m3,y.m3),I=new Split3(S.m5,P.m5,A.m5,y.m5),z=new Split3(S.m4,P.m4,A.m4,y.m4),L=new Split3(S.m2,P.m2,A.m2,y.m2),N=new Split3(w,t[7],t[11],b),E=[x,S.m0,S.m3,S.m5,T.m0,R.m0,D.m0,I.m0,T.m3,R.m3,D.m3,I.m3,T.m5,R.m5,D.m5,I.m5],O=[T.m5,R.m5,D.m5,I.m5,T.m4,R.m4,D.m4,I.m4,T.m2,R.m2,D.m2,I.m2,M,y.m0,y.m3,y.m5],V=[I.m5,z.m5,L.m5,N.m5,I.m4,z.m4,L.m4,N.m4,I.m2,z.m2,L.m2,N.m2,y.m5,y.m4,y.m2,b],C=[S.m5,S.m4,S.m2,w,I.m0,z.m0,L.m0,N.m0,I.m3,z.m3,L.m3,N.m3,I.m5,z.m5,L.m5,N.m5],B=E[15],H=this.normal(E[0],E[4],E[8],E[12],E[13],E[14],E[15]);abs2(H)<this.epsilon&&(H=this.normal(E[0],E[4],E[8],E[12],E[11],E[7],E[3]),abs2(H)<this.epsilon&&(H=this.normal(E[3],E[2],E[1],E[0],E[13],E[14],E[15])));let _=this.normal(O[12],O[13],O[14],O[15],O[11],O[7],O[3]);abs2(_)<this.epsilon&&(_=this.normal(O[12],O[13],O[14],O[15],O[2],O[1],O[0]),abs2(_)<this.epsilon&&(_=this.normal(O[0],O[4],O[8],O[12],O[11],O[7],O[3])));let F=this.normal(V[15],V[11],V[7],V[3],V[2],V[1],V[0]);abs2(F)<this.epsilon&&(F=this.normal(V[15],V[11],V[7],V[3],V[4],V[8],V[12]),abs2(F)<this.epsilon&&(F=this.normal(V[12],V[13],V[14],V[15],V[2],V[1],V[0])));let G=this.normal(C[3],C[2],C[1],C[0],C[4],C[8],C[12]);abs2(G)<this.epsilon&&(G=this.normal(C[3],C[2],C[1],C[0],C[13],C[14],C[15]),abs2(G)<this.epsilon&&(G=this.normal(C[15],C[11],C[7],C[3],C[4],C[8],C[12])));let W=this.normal(V[3],V[2],V[1],B,V[4],V[8],V[12]),U=this.Epsilon,Z=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!l)if(l=Straightness(x,t[4],t[8],M)<this.res2){let t=unit(this.differential(O[0],O[1],O[2],O[3]));Z=[Z[0]-U*t[0],Z[1]-U*t[1],Z[2]-U*t[2]]}else Z=E[12];let j=[.5*(s[0]+o[0]),.5*(s[1]+o[1]),.5*(s[2]+o[2])];if(!c)if(c=Straightness(M,t[13],t[14],b)<this.res2){let t=unit(this.differential(V[12],V[8],V[4],V[0]));j=[j[0]-U*t[0],j[1]-U*t[1],j[2]-U*t[2]]}else j=O[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=Straightness(b,t[11],t[7],w)<this.res2){let t=unit(this.differential(C[15],C[14],C[13],C[12]));k=[k[0]-U*t[0],k[1]-U*t[1],k[2]-U*t[2]]}else k=V[3];let Y=[.5*(h[0]+n[0]),.5*(h[1]+n[1]),.5*(h[2]+n[2])];if(!m)if(m=Straightness(x,t[1],t[2],w)<this.res2){let t=unit(this.differential(E[3],E[7],E[11],E[15]));Y=[Y[0]-U*t[0],Y[1]-U*t[1],Y[2]-U*t[2]]}else Y=C[0];if(f){let t=Array(4),g=Array(4),x=Array(4),w=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),g[e]=.5*(u[e]+p[e]),x[e]=.5*(p[e]+v[e]),w[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+x[e]);let b=this.data.Vertex(Z,H,t),S=this.data.Vertex(j,_,g),P=this.data.Vertex(k,F,x),A=this.data.Vertex(Y,G,w),y=this.data.Vertex(B,W,M);this.Render(E,e,b,y,A,n,Z,B,Y,l,!1,!1,m,f,t,M,w),this.Render(O,b,i,S,y,Z,s,j,B,l,c,!1,!1,t,u,g,M),this.Render(V,y,S,a,P,B,j,o,k,!1,c,d,!1,M,g,p,x),this.Render(C,A,y,P,r,Y,B,k,h,!1,!1,d,m,w,M,x,v)}else{let t=this.vertex(Z,H),f=this.vertex(j,_),u=this.vertex(k,F),p=this.vertex(Y,G),v=this.vertex(B,W);this.Render(E,e,t,v,p,n,Z,B,Y,l,!1,!1,m),this.Render(O,t,i,f,v,Z,s,j,B,l,c,!1,!1),this.Render(V,v,f,a,u,B,j,o,k,!1,c,d,!1),this.Render(C,p,v,u,r,Y,B,k,h,!1,!1,d,m)}}}process3(t){if(1==wireframe)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],a=t[9],r=this.normal(a,t[5],t[2],e,t[1],t[3],i),n=this.normal(e,t[1],t[3],i,t[7],t[8],a),s=this.normal(i,t[7],t[8],a,t[5],t[2],e);if(this.color){let o=this.color[0],h=this.color[1],l=this.color[2],c=this.data.Vertex(e,r,o),d=this.data.Vertex(i,n,h),m=this.data.Vertex(a,s,l);this.Render3(t,c,d,m,e,i,a,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,n),l=this.vertex(a,s);this.Render3(t,o,h,l,e,i,a,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,a,r,n,s,o,h,l,c,d,m){if(this.Distance3(t)<this.res2)this.offscreen([r,n,s])||(0==wireframe?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(a)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],g=t[4],x=t[5],w=t[6],M=t[7],b=t[8],S=t[9],P=[.5*(S[0]+x[0]),.5*(S[1]+x[1]),.5*(S[2]+x[2])],A=[.5*(S[0]+b[0]),.5*(S[1]+b[1]),.5*(S[2]+b[2])],y=[.5*(x[0]+p[0]),.5*(x[1]+p[1]),.5*(x[2]+p[2])],T=[.5*(b[0]+g[0]),.5*(b[1]+g[1]),.5*(b[2]+g[2])],R=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],D=[.5*(p[0]+g[0]),.5*(p[1]+g[1]),.5*(p[2]+g[2])],I=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],z=[.5*(g[0]+v[0]),.5*(g[1]+v[1]),.5*(g[2]+v[2])],L=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],N=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],E=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],O=[.5*(v[0]+w[0]),.5*(v[1]+w[1]),.5*(v[2]+w[2])],V=[.5*(P[0]+y[0]),.5*(P[1]+y[1]),.5*(P[2]+y[2])],C=[.5*(A[0]+R[0]),.5*(A[1]+R[1]),.5*(A[2]+R[2])],B=[.5*(y[0]+I[0]),.5*(y[1]+I[1]),.5*(y[2]+I[2])],H=[.5*T[0]+.25*(g[0]+u[0]),.5*T[1]+.25*(g[1]+u[1]),.5*T[2]+.25*(g[2]+u[2])],_=[.5*(R[0]+L[0]),.5*(R[1]+L[1]),.5*(R[2]+L[2])],F=[.5*D[0]+.25*(g[0]+M[0]),.5*D[1]+.25*(g[1]+M[1]),.5*D[2]+.25*(g[2]+M[2])],G=[.25*(x[0]+g[0])+.5*z[0],.25*(x[1]+g[1])+.5*z[1],.25*(x[2]+g[2])+.5*z[2]],W=[.5*(N[0]+E[0]),.5*(N[1]+E[1]),.5*(N[2]+E[2])],U=[.5*(E[0]+O[0]),.5*(E[1]+O[1]),.5*(E[2]+O[2])],Z=[.5*(F[0]+W[0]),.5*(F[1]+W[1]),.5*(F[2]+W[2])],j=[.5*(F[0]+U[0]),.5*(F[1]+U[1]),.5*(F[2]+U[2])],k=[.5*(W[0]+U[0]),.5*(W[1]+U[1]),.5*(W[2]+U[2])],Y=[.5*(G[0]+_[0]),.5*(G[1]+_[1]),.5*(G[2]+_[2])],X=[.5*(C[0]+G[0]),.5*(C[1]+G[1]),.5*(C[2]+G[2])],q=[.5*(C[0]+_[0]),.5*(C[1]+_[1]),.5*(C[2]+_[2])],K=[.5*(V[0]+H[0]),.5*(V[1]+H[1]),.5*(V[2]+H[2])],$=[.5*(B[0]+H[0]),.5*(B[1]+H[1]),.5*(B[2]+H[2])],Q=[.5*(V[0]+B[0]),.5*(V[1]+B[1]),.5*(V[2]+B[2])],J=[f,N,I,W,[.5*(D[0]+N[0]),.5*(D[1]+N[1]),.5*(D[2]+N[2])],B,k,Z,$,Q],tt=[k,U,j,O,[.5*(z[0]+L[0]),.5*(z[1]+L[1]),.5*(z[2]+L[2])],Y,w,L,_,q],et=[Q,K,V,X,[.5*(P[0]+T[0]),.5*(P[1]+T[1]),.5*(P[2]+T[2])],P,q,C,A,S],it=[q,X,Y,K,[.25*(y[0]+R[0]+E[0]+g[0]),.25*(y[1]+R[1]+E[1]+g[1]),.25*(y[2]+R[2]+E[2]+g[2])],j,Q,$,Z,k],at=this.normal(k,j,Y,q,X,K,Q),rt=this.normal(q,X,K,Q,$,Z,k),nt=this.normal(Q,$,Z,k,j,Y,q),st=this.Epsilon,ot=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])];if(!o)if(o=Straightness(w,M,b,S)<this.res2){let t=unit(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-st*t[0],ot[1]-st*t[1],ot[2]-st*t[2]]}else ot=q;let ht=[.5*(s[0]+r[0]),.5*(s[1]+r[1]),.5*(s[2]+r[2])];if(!h)if(h=Straightness(f,p,x,S)<this.res2){let t=unit(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-st*t[0],ht[1]-st*t[1],ht[2]-st*t[2]]}else ht=Q;let lt=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])];if(!l)if(l=Straightness(f,u,v,w)<this.res2){let t=unit(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-st*t[0],lt[1]-st*t[1],lt[2]-st*t[2]]}else lt=k;if(c){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(d[e]+m[e]),f[e]=.5*(m[e]+c[e]),u[e]=.5*(c[e]+d[e]);let p=this.data.Vertex(ot,at,t),v=this.data.Vertex(ht,rt,f),g=this.data.Vertex(lt,nt,u);this.Render3(J,e,g,v,r,lt,ht,!1,h,l,c,u,f),this.Render3(tt,g,i,p,lt,n,ot,o,!1,l,u,d,t),this.Render3(et,v,p,a,ht,ot,s,o,h,!1,f,t,m),this.Render3(it,p,v,g,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,at),c=this.vertex(ht,rt),d=this.vertex(lt,nt);this.Render3(J,e,d,c,r,lt,ht,!1,h,l),this.Render3(tt,d,i,t,lt,n,ot,o,!1,l),this.Render3(et,c,t,a,ht,ot,s,o,h,!1),this.Render3(it,t,c,d,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],a=t[12],r=t[15],n=Flatness(e,a,i,r);n=Math.max(Straightness(e,t[4],t[8],a)),n=Math.max(n,Straightness(t[1],t[5],t[9],t[13])),n=Math.max(n,Straightness(i,t[7],t[11],r)),n=Math.max(n,Straightness(t[2],t[6],t[10],t[14]));let s=Flatness(e,i,a,r);return s=Math.max(s,Straightness(e,t[1],t[2],i)),s=Math.max(s,Straightness(t[4],t[5],t[6],t[7])),s=Math.max(s,Straightness(t[8],t[9],t[10],t[11])),s=Math.max(s,Straightness(a,t[13],t[14],r)),[n,s]}Distance3(t){let e=t[0],i=t[4],a=t[6],r=t[9],n=abs2([(e[0]+a[0]+r[0])*third-i[0],(e[1]+a[1]+r[1])*third-i[1],(e[2]+a[2]+r[2])*third-i[2]]);return n=Math.max(n,Straightness(e,t[1],t[3],a)),n=Math.max(n,Straightness(e,t[2],t[5],r)),Math.max(n,Straightness(a,t[7],t[8],r))}differential(t,e,i,a){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return abs2(r)>this.epsilon?r:(r=bezierPP(t,e,i),abs2(r)>this.epsilon?r:bezierPPP(t,e,i,a))}sumdifferential(t,e,i,a,r,n,s){let o=this.differential(t,e,i,a),h=this.differential(t,r,n,s);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,a,r,n,s){let o=3*(r[0]-a[0]),h=3*(r[1]-a[1]),l=3*(r[2]-a[2]),c=3*(i[0]-a[0]),d=3*(i[1]-a[1]),m=3*(i[2]-a[2]),f=[h*m-l*d,l*c-o*m,o*d-h*c];if(abs2(f)>this.epsilon)return f;let u=[c,d,m],p=[o,h,l],v=bezierPP(a,i,e),g=bezierPP(a,r,n),x=cross(g,u),w=cross(p,v);if(f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]],abs2(f)>this.epsilon)return f;let M=bezierPPP(a,i,e,t),b=bezierPPP(a,r,n,s);x=cross(p,M),w=cross(b,u);let S=cross(g,v);return f=[x[0]+w[0]+S[0],x[1]+w[1]+S[1],x[2]+w[2]+S[2]],abs2(f)>this.epsilon?f:(x=cross(b,v),w=cross(g,M),f=[x[0]+w[0],x[1]+w[1],x[2]+w[2]],abs2(f)>this.epsilon?f:cross(b,M))}}class BezierCurve extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoints=t,this.Min=a,this.Max=r,this.CenterIndex=e,this.MaterialIndex=i}setMaterialIndex(){this.setMaterial(material1Data,drawMaterial1)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],a=t[2],r=t[3],n=this.normal(bezierP(e,i),bezierPP(e,i,a)),s=this.normal(bezierP(a,r),bezierPP(r,a,i)),o=this.data.vertex(e,n),h=this.data.vertex(r,s);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){material1Data.append(this.data)}notRendered(){material1Data.rendered=!1}Render(t,e,i){let a=t[0],r=t[1],n=t[2],s=t[3];if(Straightness(a,r,n,s)<this.res2)this.offscreen([a,s])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])],h=[.5*(r[0]+n[0]),.5*(r[1]+n[1]),.5*(r[2]+n[2])],l=[.5*(n[0]+s[0]),.5*(n[1]+s[1]),.5*(n[2]+s[2])],c=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],d=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(c[0]+d[0]),.5*(c[1]+d[1]),.5*(c[2]+d[2])],f=[a,o,c,m],u=[m,d,l,s],p=this.normal(bezierPh(a,r,n,s),bezierPPh(a,r,n,s)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=dot(t,t),a=dot(t,e);return[i*e[0]-a*t[0],i*e[1]-a*t[1],i*e[2]-a*t[2]]}}class Pixel extends Geometry{constructor(t,e,i,a,r){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=a,this.Max=r}setMaterialIndex(){this.setMaterial(material0Data,drawMaterial0)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){material0Data.append(this.data)}notRendered(){material0Data.rendered=!1}}class Triangles extends Geometry{constructor(t,e,i){super(),this.CenterIndex=0,this.MaterialIndex=t,this.Min=e,this.Max=i,this.Positions=Positions,this.Normals=Normals,this.Colors=Colors,this.Indices=Indices,Positions=[],Normals=[],Colors=[],Indices=[],this.transparent=Materials[t].diffuse[3]<1}setMaterialIndex(){this.transparent?this.setMaterial(transparentData,drawTransparent):this.setMaterial(triangleData,drawTriangle)}process(t){materialIndex=this.Colors.length>0?-1-materialIndex:1+materialIndex;for(let t=0,e=this.Indices.length;t<e;++t){let e=this.Indices[t],i=e[0],a=this.Positions[i[0]],r=this.Positions[i[1]],n=this.Positions[i[2]];if(!this.offscreen([a,r,n])){let t=e.length>1?e[1]:i;if(t&&0!=t.length||(t=i),this.Colors.length>0){let s=e.length>2?e[2]:i;s&&0!=s.length||(s=i);let o=this.Colors[s[0]],h=this.Colors[s[1]],l=this.Colors[s[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l)):(this.data.iVertex(i[0],a,this.Normals[t[0]],o),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[1],r,this.Normals[t[1]],h),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[2],n,this.Normals[t[2]],l),this.data.iVertex(i[0],a,this.Normals[t[0]],o))}else 0==wireframe?(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]])):(this.data.iVertex(i[0],a,this.Normals[t[0]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[1],r,this.Normals[t[1]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[2],n,this.Normals[t[2]]),this.data.iVertex(i[0],a,this.Normals[t[0]]))}}this.data.nvertices=this.Positions.length,this.data.indices.length>0&&this.append()}append(){this.transparent?transparentData.append(this.data):triangleData.append(this.data)}notRendered(){this.transparent?transparentData.rendered=!1:triangleData.rendered=!1}}function redraw(){initProjection(),setProjection(),remesh=!0,draw()}function home(){mat4.identity(rotMat),redraw()}let positionAttribute=0,normalAttribute=1,materialAttribute=2,colorAttribute=3,widthAttribute=4;function initShader(t=[]){let e=getShader(gl,vertex,gl.VERTEX_SHADER,t),i=getShader(gl,fragment,gl.FRAGMENT_SHADER,t),a=gl.createProgram();return gl.attachShader(a,e),gl.attachShader(a,i),gl.bindAttribLocation(a,positionAttribute,"position"),gl.bindAttribLocation(a,normalAttribute,"normal"),gl.bindAttribLocation(a,materialAttribute,"materialIndex"),gl.bindAttribLocation(a,colorAttribute,"color"),gl.bindAttribLocation(a,widthAttribute,"width"),gl.linkProgram(a),gl.getProgramParameter(a,gl.LINK_STATUS)||alert("Could not initialize shaders"),a}class Split3{constructor(t,e,i,a){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),n=.5*(e[1]+i[1]),s=.5*(e[2]+i[2]);this.m2=[.5*(i[0]+a[0]),.5*(i[1]+a[1]),.5*(i[2]+a[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+n),.5*(this.m0[2]+s)],this.m4=[.5*(r+this.m2[0]),.5*(n+this.m2[1]),.5*(s+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}function unit(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function abs2(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function dot(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function cross(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function bezierP(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function bezierPP(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function bezierPPP(t,e,i,a){return[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])]}function bezierPh(t,e,i,a){return[i[0]+a[0]-t[0]-e[0],i[1]+a[1]-t[1]-e[1],i[2]+a[2]-t[2]-e[2]]}function bezierPPh(t,e,i,a){return[3*t[0]-5*e[0]+i[0]+a[0],3*t[1]-5*e[1]+i[1]+a[1],3*t[2]-5*e[2]+i[2]+a[2]]}function Straightness(t,e,i,a){let r=[third*(a[0]-t[0]),third*(a[1]-t[1]),third*(a[2]-t[2])];return Math.max(abs2([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),abs2([a[0]-r[0]-i[0],a[1]-r[1]-i[1],a[2]-r[2]-i[2]]))}function Flatness(t,e,i,a){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],n=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return Math.max(abs2(cross(r,unit(n))),abs2(cross(n,unit(r))))/9}function corners(t,e){return[t,[t[0],t[1],e[2]],[t[0],e[1],t[2]],[t[0],e[1],e[2]],[e[0],t[1],t[2]],[e[0],t[1],e[2]],[e[0],e[1],t[2]],e]}function minbound(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function maxbound(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function COBTarget(t,e){mat4.fromTranslation(T,[center.x,center.y,center.z]),mat4.invert(cjMatInv,T),mat4.multiply(t,e,cjMatInv),mat4.multiply(t,T,t)}function setUniforms(t,e){let i=e==pixelShader;gl.useProgram(e),gl.enableVertexAttribArray(positionAttribute),i&&gl.enableVertexAttribArray(widthAttribute);let a=!i&&Lights.length>0;if(a&&gl.enableVertexAttribArray(normalAttribute),gl.enableVertexAttribArray(materialAttribute),e.projViewMatUniform=gl.getUniformLocation(e,"projViewMat"),e.viewMatUniform=gl.getUniformLocation(e,"viewMat"),e.normMatUniform=gl.getUniformLocation(e,"normMat"),e!=colorShader&&e!=transparentShader||gl.enableVertexAttribArray(colorAttribute),a)for(let t=0;t<Lights.length;++t)Lights[t].setUniform(e,t);for(let i=0;i<t.materials.length;++i)t.materials[i].setUniform(e,i);gl.uniformMatrix4fv(e.projViewMatUniform,!1,projViewMat),gl.uniformMatrix4fv(e.viewMatUniform,!1,viewMat),gl.uniformMatrix3fv(e.normMatUniform,!1,normMat)}function handleMouseDown(t){zoomEnabled||enableZoom(),mouseDownOrTouchActive=!0,lastMouseX=t.clientX,lastMouseY=t.clientY}let pinchStart,touchStartTime,pinch=!1;function pinchDistance(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function handleTouchStart(t){t.preventDefault(),zoomEnabled||enableZoom();let e=t.targetTouches;swipe=rotate=pinch=!1,zooming||(1!=e.length||mouseDownOrTouchActive||(touchStartTime=(new Date).getTime(),touchId=e[0].identifier,lastMouseX=e[0].pageX,lastMouseY=e[0].pageY),2!=e.length||mouseDownOrTouchActive||(touchId=e[0].identifier,pinchStart=pinchDistance(e),pinch=!0))}function handleMouseUpOrTouchEnd(t){mouseDownOrTouchActive=!1}function rotateScene(t,e,i,a,r){if(t==i&&e==a)return;let[n,s]=arcball([t,-e],[i,-a]);mat4.fromRotation(T,2*r*ArcballFactor*n/Zoom,s),mat4.multiply(rotMat,T,rotMat)}function shiftScene(t,e,i,a){let r=1/Zoom;shift.x+=(i-t)*r*halfCanvasWidth,shift.y-=(a-e)*r*halfCanvasHeight}function panScene(t,e,i,a){orthographic?shiftScene(t,e,i,a):(center.x+=(i-t)*(viewParam.xmax-viewParam.xmin),center.y-=(a-e)*(viewParam.ymax-viewParam.ymin))}function updateViewMatrix(){COBTarget(viewMat,rotMat),mat4.translate(viewMat,viewMat,[center.x,center.y,0]),mat3.fromMat4(viewMat3,viewMat),mat3.invert(normMat,viewMat3),mat4.multiply(projViewMat,projMat,viewMat)}function capzoom(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;Zoom<=e&&(Zoom=e),Zoom>=t&&(Zoom=t),(zoomRemeshFactor*Zoom<lastZoom||Zoom>zoomRemeshFactor*lastZoom)&&(remesh=!0,lastZoom=Zoom)}function zoomImage(t){let e=zoomStep*halfCanvasHeight*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(zoomFactor);Math.abs(e)<i&&(Zoom*=zoomFactor**e,capzoom())}function normMouse(t){let e=t[0],i=t[1],a=Math.hypot(e,i);return a>1&&(denom=1/a,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function arcball(t,e){let i=normMouse(t),a=normMouse(e),r=dot(i,a);return[r>1?0:r<-1?pi:Math.acos(r),unit(cross(i,a))]}function zoomScene(t,e,i,a){zoomImage(e-a)}const DRAGMODE_ROTATE=1,DRAGMODE_SHIFT=2,DRAGMODE_ZOOM=3,DRAGMODE_PAN=4;function processDrag(t,e,i,a=1){let r;switch(i){case 1:r=rotateScene;break;case 2:r=shiftScene;break;case 3:r=zoomScene;break;case 4:r=panScene;break;default:r=(t,e,i,a)=>{}}r((lastMouseX-halfCanvasWidth)/halfCanvasWidth,(lastMouseY-halfCanvasHeight)/halfCanvasHeight,(t-halfCanvasWidth)/halfCanvasWidth,(e-halfCanvasHeight)/halfCanvasHeight,a),lastMouseX=t,lastMouseY=e,setProjection(),draw()}let zoomEnabled=0;function enableZoom(){zoomEnabled=1,canvas.addEventListener("wheel",handleMouseWheel,!1)}function disableZoom(){zoomEnabled=0,canvas.removeEventListener("wheel",handleMouseWheel,!1)}function handleKey(t){if(zoomEnabled||enableZoom(),embedded&&zoomEnabled&&27==t.keyCode)return void disableZoom();let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":home();break;case"m":++wireframe,3==wireframe&&(wireframe=0),2!=wireframe&&(embedded||deleteShaders(),initShaders()),remesh=!0,draw();break;case"+":case"=":case">":expand();break;case"-":case"_":case"<":shrink()}e.length>0&&(mat4.rotate(rotMat,rotMat,.1,e),updateViewMatrix(),draw())}function setZoom(){capzoom(),setProjection(),draw()}function handleMouseWheel(t){t.preventDefault(),t.deltaY<0?Zoom*=zoomFactor:Zoom/=zoomFactor,setZoom()}function handleMouseMove(t){if(!mouseDownOrTouchActive)return;let e,i=t.clientX,a=t.clientY;e=t.getModifierState("Control")?2:t.getModifierState("Shift")?3:t.getModifierState("Alt")?4:1,processDrag(i,a,e)}let zooming=!1,swipe=!1,rotate=!1;function handleTouchMove(t){if(t.preventDefault(),zooming)return;let e=t.targetTouches;if(!pinch&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,a=t-lastMouseX,r=i-lastMouseY,n=a*a+r*r<=shiftHoldDistance*shiftHoldDistance;if(n&&!swipe&&!rotate&&(new Date).getTime()-touchStartTime>shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(vibrateTime),swipe=!0),swipe)processDrag(t,i,2);else if(!n){rotate=!0,processDrag(e[0].pageX,e[0].pageY,1,.5)}}if(pinch&&!swipe&&2==e.length&&touchId==e[0].identifier){let t=pinchDistance(e),i=t-pinchStart;zooming=!0,i*=zoomPinchFactor,i>zoomPinchCap&&(i=zoomPinchCap),i<-zoomPinchCap&&(i=-zoomPinchCap),zoomImage(i/size2),pinchStart=t,swipe=rotate=zooming=!1,setProjection(),draw()}}let pixelShader,materialShader,colorShader,transparentShader,zbuffer=[];function transformVertices(t){let e=viewMat[2],i=viewMat[6],a=viewMat[10];zbuffer.length=t.length;for(let r=0;r<t.length;++r){let n=6*r;zbuffer[r]=e*t[n]+i*t[n+1]+a*t[n+2]}}function drawMaterial0(){drawBuffer(material0Data,pixelShader),material0Data.clear()}function drawMaterial1(){drawBuffer(material1Data,materialShader),material1Data.clear()}function drawMaterial(){drawBuffer(materialData,materialShader),materialData.clear()}function drawColor(){drawBuffer(colorData,colorShader),colorData.clear()}function drawTriangle(){drawBuffer(triangleData,transparentShader),triangleData.rendered=!1,triangleData.clear()}function drawTransparent(){let t=transparentData.indices;if(wireframe>0)return drawBuffer(transparentData,transparentShader,t),void transparentData.clear();if(t.length>0){transformVertices(transparentData.vertices);let e=t.length/3,i=Array(e).fill().map((t,e)=>e);i.sort((function(e,i){let a=3*e;Ia=t[a],Ib=t[a+1],Ic=t[a+2];let r=3*i;return IA=t[r],IB=t[r+1],IC=t[r+2],zbuffer[Ia]+zbuffer[Ib]+zbuffer[Ic]<zbuffer[IA]+zbuffer[IB]+zbuffer[IC]?-1:1}));let a=Array(t.length);for(let r=0;r<e;++r){let e=3*i[r];a[3*r]=t[e],a[3*r+1]=t[e+1],a[3*r+2]=t[e+2]}gl.depthMask(!1),drawBuffer(transparentData,transparentShader,a),transparentData.rendered=!1,gl.depthMask(!0)}transparentData.clear()}function drawBuffers(){drawMaterial0(),drawMaterial1(),drawMaterial(),drawColor(),drawTriangle(),drawTransparent()}function draw(){embedded&&(offscreen.width=canvasWidth,offscreen.height=canvasHeight,setViewport()),gl.clearColor(Background[0],Background[1],Background[2],Background[3]),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);for(let t=0;t<P.length;++t)P[t].render();drawBuffers(),embedded&&(context.clearRect(0,0,canvasWidth,canvasHeight),context.drawImage(offscreen,0,0)),0==wireframe&&(remesh=!1)}function setDimensions(t,e,i,a){let r=t/e,n=1/Zoom,s=(i/t+viewportshift[0])*Zoom,o=(a/e+viewportshift[1])*Zoom;if(orthographic){let t=B[0]-b[0],e=B[1]-b[1];if(t<e*r){let t=.5*e*r*n,i=2*t*s,a=e*n*o;viewParam.xmin=-t-i,viewParam.xmax=t-i,viewParam.ymin=b[1]*n-a,viewParam.ymax=B[1]*n-a}else{let e=.5*t/(r*Zoom),i=t*n*s,a=2*e*o;viewParam.xmin=b[0]*n-i,viewParam.xmax=B[0]*n-i,viewParam.ymin=-e-a,viewParam.ymax=e-a}}else{let t=H*n,e=t*r,i=2*e*s,a=2*t*o;viewParam.xmin=-e-i,viewParam.xmax=e-i,viewParam.ymin=-t-a,viewParam.ymax=t-a}}function setProjection(){setDimensions(canvasWidth,canvasHeight,shift.x,shift.y),(orthographic?mat4.ortho:mat4.frustum)(projMat,viewParam.xmin,viewParam.xmax,viewParam.ymin,viewParam.ymax,-viewParam.zmax,-viewParam.zmin),updateViewMatrix()}function initProjection(){H=-Math.tan(.5*angle)*B[2],center.x=center.y=0,center.z=.5*(b[2]+B[2]),lastZoom=Zoom=zoom0,viewParam.zmin=b[2],viewParam.zmax=B[2],shift.x=shift.y=0}function setViewport(){gl.viewportWidth=canvasWidth,gl.viewportHeight=canvasHeight,gl.viewport(.5*(canvas.width-canvasWidth),.5*(canvas.height-canvasHeight),canvasWidth,canvasHeight),gl.scissor(0,0,canvas.width,canvas.height)}function setCanvas(){embedded&&(canvas.width=offscreen.width=canvasWidth,canvas.height=offscreen.height=canvasHeight),size2=Math.hypot(canvasWidth,canvasHeight),halfCanvasWidth=.5*canvas.width,halfCanvasHeight=.5*canvas.height,ArcballFactor=1+8*Math.hypot(viewportmargin[0],viewportmargin[1])/size2}function setsize(t,e){t>maxViewportWidth&&(t=maxViewportWidth),e>maxViewportHeight&&(e=maxViewportHeight),shift.x*=t/canvasWidth,shift.y*=e/canvasHeight,canvasWidth=t,canvasHeight=e,setCanvas(),setViewport(),setProjection(),remesh=!0}function resize(){if(zoom0=Zoom0,absolute&&!embedded)canvasWidth=canvasWidth0*window.devicePixelRatio,canvasHeight=canvasHeight0*window.devicePixelRatio;else{let t=canvasWidth0/canvasHeight0;canvasWidth=Math.max(window.innerWidth-10,10),canvasHeight=Math.max(window.innerHeight-10,10),!orthographic&&canvasWidth<canvasHeight*t&&(zoom0*=canvasWidth/(canvasHeight*t))}canvas.width=canvasWidth,canvas.height=canvasHeight;window.innerWidth,window.innerHeight;viewportshift[0]/=zoom0,viewportshift[1]/=zoom0,setsize(canvasWidth,canvasHeight),redraw()}function expand(){Zoom*=zoomFactor,setZoom()}function shrink(){Zoom/=zoomFactor,setZoom()}class Align{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],a=t[2],r=e*this.ct+a*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+a*this.ct+this.center[2]]}}function Tcorners(t,e,i){let a=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1],e[2]]),t(i)];return[minbound(a),maxbound(a)]}function sphere(t,e,i,r,n){let s,o,h,l,c,d,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,g=.0549670512339254,x=.998880711874577,w=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,a,0],[1,a,m],[f,a*f,u],[p,a*p,v],[a,1,0],[a,1,m],[a*f,f,u],[a*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,a*p,v],[g,0,x],[a*p,p,v],[w,w,1],[.05*a,0,1],[0,p,v],[0,g,x],[0,.05*a,1],[0,0,1]]],b=new Align(t,n);function S(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let a=t[i];e[i]=c([s*a[0],o*a[1],h*a[2]])}return e}n?(l=1,d=0,c=b.T.bind(b)):(l=-1,d=-e,c=b.T0.bind(b));let A=Tcorners(c,[-e,-e,d],[e,e,e]),y=A[0],T=A[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){o=t*e;for(let t=l;t<=1;t+=2){h=t*e;for(let t=0;t<2;++t)P.push(new BezierPatch(S(M[t]),i,r,y,T))}}}}let a=4/3*(Math.sqrt(2)-1);function disk(t,e,i,r,n){let s=1-2*a/3,o=[[1,0,0],[1,-a,0],[a,-1,0],[0,-1,0],[1,a,0],[s,0,0],[0,-s,0],[-a,-1,0],[a,1,0],[0,s,0],[-s,0,0],[-1,-a,0],[0,1,0],[-a,1,0],[-1,a,0],[-1,0,0]],h=new Align(t,n);let l=Tcorners(h.T.bind(h),[-e,-e,0],[e,e,0]);P.push(new BezierPatch(function(t){let i=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];i[a]=h.T([e*r[0],e*r[1],0])}return i}(o),i,r,l[0],l[1]))}function cylinder(t,e,i,r,n,s,o){let h,l,c=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,a,0],[1,a,1/3],[1,a,2/3],[1,a,1],[a,1,0],[a,1,1/3],[a,1,2/3],[a,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],d=new Align(t,s);function m(t){let e=Array(t.length);for(let a=0;a<t.length;++a){let r=t[a];e[a]=d.T([h*r[0],l*r[1],i*r[2]])}return e}let f=Tcorners(d.T.bind(d),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){h=t*e;for(let t=-1;t<=1;t+=2)l=t*e,P.push(new BezierPatch(m(c),r,n,u,p))}if(o){let e=d.T([0,0,i]);P.push(new BezierCurve([t,e],r,n,t,e))}}function rmf(t,e,i,a,r){class n{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=cross(i,e)}}let s=Number.EPSILON*Math.max(abs2(t),abs2(e),abs2(i),abs2(a));function o(r){if(1==r){let r=[a[0]-i[0],a[1]-i[1],a[2]-i[2]];return abs2(r)>s?unit(r):(r=[2*i[0]-e[0]-a[0],2*i[1]-e[1]-a[1],2*i[2]-e[2]-a[2]],abs2(r)>s?unit(r):[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])])}let n=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,c=[n[0]*l+o[0]*r+h[0],n[1]*l+o[1]*r+h[1],n[2]*l+o[2]*r+h[2]];return abs2(c)>s?unit(c):(l=2*r,c=[n[0]*l+o[0],n[1]*l+o[1],n[2]*l+o[2]],abs2(c)>s?unit(c):unit(n))}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];abs2(l)<s&&(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]],abs2(l)<s&&(l=[a[0]-t[0]+3*(e[0]-i[0]),a[1]-t[1]+3*(e[1]-i[1]),a[2]-t[2]+3*(e[2]-i[2])])),l=unit(l);let c=function(t){let e=cross(t,[0,1,0]),i=Number.EPSILON*abs2(t);return abs2(e)>i?unit(e):(e=cross(t,[0,0,1]),abs2(e)>i?unit(e):[1,0,0])}(l);h[0]=new n(t,c,l);for(let s=1;s<r.length;++s){let l=h[s-1],c=r[s],d=1-c,m=d*d,f=m*d,u=3*c;m*=u,d*=u*c;let p=c*c*c,v=[f*t[0]+m*e[0]+d*i[0]+p*a[0],f*t[1]+m*e[1]+d*i[1]+p*a[1],f*t[2]+m*e[2]+d*i[2]+p*a[2]],g=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=g[0]||0!=g[1]||0!=g[2]){let t=l.r,e=unit(g),i=l.t,a=dot(e,i),r=[i[0]-2*a*e[0],i[1]-2*a*e[1],i[2]-2*a*e[2]];i=o(c);let d=2*dot(e,t),m=[t[0]-d*e[0],t[1]-d*e[1],t[2]-d*e[2]],f=unit([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*dot(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[s]=new n(v,unit(m),unit(i))}else h[s]=h[s-1]}return h}function tube(t,e,i,r,n,s,o){let h=rmf(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),l=a*e,c=[[e,0],[e,l],[l,e],[0,e]];function d(e,a,o,l){let d=Array(16);for(let i=0;i<4;++i){let r=h[i],n=r.r[0],s=r.s[0],m=n*e+s*a,f=n*o+s*l;n=r.r[1],s=r.s[1];let u=n*e+s*a,p=n*o+s*l;n=r.r[2],s=r.s[2];let v=n*e+s*a,g=n*o+s*l,x=t[i],w=x[0];w1=x[1],w2=x[2];for(let t=0;t<4;++t){let e=c[t],a=e[0],r=e[1];d[4*i+t]=[m*a+f*r+w,u*a+p*r+w1,v*a+g*r+w2]}}P.push(new BezierPatch(d,i,r,n,s))}d(1,0,0,1),d(0,-1,1,0),d(-1,0,0,-1),d(0,1,-1,0),o&&P.push(new BezierCurve(t,i,r,n,s))}function webGLStart(){canvas=document.getElementById("Asymptote"),embedded=window.top.document!=document,initGL(),gl.enable(gl.BLEND),gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA),gl.enable(gl.DEPTH_TEST),gl.enable(gl.SCISSOR_TEST),canvas.onmousedown=handleMouseDown,document.onmouseup=handleMouseUpOrTouchEnd,document.onmousemove=handleMouseMove,canvas.onkeydown=handleKey,embedded||enableZoom(),canvas.addEventListener("touchstart",handleTouchStart,!1),canvas.addEventListener("touchend",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchcancel",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchleave",handleMouseUpOrTouchEnd,!1),canvas.addEventListener("touchmove",handleTouchMove,!1),document.addEventListener("keydown",handleKey,!1),canvasWidth0=canvasWidth,canvasHeight0=canvasHeight,mat4.identity(rotMat),0!=window.innerWidth&&0!=window.innerHeight&&resize(),window.addEventListener("resize",resize,!1)} diff --git a/Master/texmf-dist/doc/asymptote/CAD.pdf b/Master/texmf-dist/doc/asymptote/CAD.pdf Binary files differindex 2838bc85730..373599d13c8 100644 --- a/Master/texmf-dist/doc/asymptote/CAD.pdf +++ b/Master/texmf-dist/doc/asymptote/CAD.pdf diff --git a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf Binary files differindex 69297b6f4f7..157796687b0 100644 --- a/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf +++ b/Master/texmf-dist/doc/asymptote/TeXShopAndAsymptote.pdf diff --git a/Master/texmf-dist/doc/asymptote/asy-latex.pdf b/Master/texmf-dist/doc/asymptote/asy-latex.pdf Binary files differindex 9a1ceaac57c..628bccc4dde 100644 --- a/Master/texmf-dist/doc/asymptote/asy-latex.pdf +++ b/Master/texmf-dist/doc/asymptote/asy-latex.pdf diff --git a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf Binary files differindex 4ece2fff639..ee61f55ceb2 100644 --- a/Master/texmf-dist/doc/asymptote/asyRefCard.pdf +++ b/Master/texmf-dist/doc/asymptote/asyRefCard.pdf diff --git a/Master/texmf-dist/doc/asymptote/asymptote.pdf b/Master/texmf-dist/doc/asymptote/asymptote.pdf Binary files differindex 55c056d4050..5698afe4acd 100644 --- a/Master/texmf-dist/doc/asymptote/asymptote.pdf +++ b/Master/texmf-dist/doc/asymptote/asymptote.pdf diff --git a/Master/texmf-dist/doc/asymptote/examples/100d.pdb1 b/Master/texmf-dist/doc/asymptote/examples/100d.pdb1 new file mode 100644 index 00000000000..d9143c1173b --- /dev/null +++ b/Master/texmf-dist/doc/asymptote/examples/100d.pdb1 @@ -0,0 +1,535 @@ +HEADER DNA/RNA 05-DEC-94 XXXX +TITLE CRYSTAL STRUCTURE OF THE HIGHLY DISTORTED CHIMERIC DECAMER +TITLE 2 R(C)D(CGGCGCCG)R(G)-SPERMINE COMPLEX-SPERMINE BINDING TO +TITLE 3 PHOSPHATE ONLY AND MINOR GROOVE TERTIARY BASE-PAIRING +COMPND 5'-R(*CP*)-D(*CP*GP*GP*CP*GP*CP*CP*GP*)-R(*G)-3' +KEYWDS A-DNA/RNA, DOUBLE HELIX +EXPDTA X-RAY DIFFRACTION +AUTHOR C.BAN, B.RAMAKRISHNAN, M.SUNDARALINGAM +JRNL AUTH C.BAN, B.RAMAKRISHNAN, M.SUNDARALINGAM +JRNL TITL CRYSTAL STRUCTURE OF THE HIGHLY DISTORTED CHIMERIC +JRNL TITL 2 DECAMER R(C)D(CGGCGCCG)R(G).SPERMINE +JRNL TITL 3 COMPLEX--SPERMINE BINDING TO PHOSPHATE ONLY AND +JRNL TITL 4 MINOR GROOVE TERTIARY BASE-PAIRING. +JRNL REF NUCLEIC ACIDS RES. V. 22 5466 1994 +JRNL REFN ASTM NARHAD UK ISSN 0305-1048 +REMARK 1 +SEQRES 1 A 10 C DC DG DG DC DG DC DC DG G +SEQRES 1 B 10 C DC DG DG DC DG DC DC DG G +HETNAM SPM SPERMINE +FORMUL 3 SPM C10 H26 N4 +FORMUL 4 HOH *67(H2 O) +CRYST1 23.980 40.770 44.840 90.00 90.00 90.00 P 21 21 21 8 +ORIGX1 1.000000 0.000000 0.000000 0.00000 +ORIGX2 0.000000 1.000000 0.000000 0.00000 +ORIGX3 0.000000 0.000000 1.000000 0.00000 +SCALE1 0.041701 0.000000 0.000000 0.00000 +SCALE2 0.000000 0.024528 0.000000 0.00000 +SCALE3 0.000000 0.000000 0.022302 0.00000 +ATOM 1 N1 C A 1 -4.931 6.902 7.826 1.00 19.25 N +ATOM 2 C2 C A 1 -4.838 7.263 9.158 1.00 16.72 C +ATOM 3 O2 C A 1 -4.287 8.308 9.505 1.00 15.49 O +ATOM 4 N3 C A 1 -5.367 6.448 10.085 1.00 15.96 N +ATOM 5 C4 C A 1 -5.978 5.310 9.736 1.00 16.84 C +ATOM 6 N4 C A 1 -6.592 4.588 10.676 1.00 19.14 N +ATOM 7 C5 C A 1 -6.059 4.907 8.376 1.00 17.68 C +ATOM 8 C6 C A 1 -5.522 5.732 7.461 1.00 17.68 C +ATOM 9 O5' C A 1 -4.549 5.095 4.262 1.00 28.71 O +ATOM 10 C5' C A 1 -4.176 6.323 3.646 1.00 27.35 C +ATOM 11 C4' C A 1 -3.853 7.410 4.672 1.00 24.41 C +ATOM 12 O4' C A 1 -4.992 7.650 5.512 1.00 22.53 O +ATOM 13 C3' C A 1 -2.713 7.010 5.605 1.00 23.56 C +ATOM 14 O3' C A 1 -1.379 7.127 5.060 1.00 21.02 O +ATOM 15 C2' C A 1 -2.950 7.949 6.756 1.00 23.73 C +ATOM 16 O2' C A 1 -2.407 9.267 6.554 1.00 23.93 O +ATOM 17 C1' C A 1 -4.489 7.917 6.825 1.00 20.60 C +ATOM 18 P DC A 2 -0.178 6.220 5.647 1.00 24.85 P +ATOM 19 N1 DC A 2 -1.070 6.635 10.823 1.00 14.48 N +ATOM 20 C2 DC A 2 -1.417 6.355 12.130 1.00 13.03 C +ATOM 21 O2 DC A 2 -1.007 7.022 13.094 1.00 11.15 O +ATOM 22 N3 DC A 2 -2.233 5.297 12.333 1.00 11.95 N +ATOM 23 C4 DC A 2 -2.681 4.542 11.344 1.00 11.37 C +ATOM 24 N4 DC A 2 -3.532 3.569 11.652 1.00 11.93 N +ATOM 25 C5 DC A 2 -2.314 4.796 9.986 1.00 11.95 C +ATOM 26 C6 DC A 2 -1.510 5.853 9.776 1.00 11.94 C +ATOM 27 OP1 DC A 2 0.915 6.451 4.671 1.00 25.96 O +ATOM 28 OP2 DC A 2 -0.948 4.954 5.664 1.00 24.57 O +ATOM 29 O5' DC A 2 0.435 6.502 7.097 1.00 24.10 O +ATOM 30 C5' DC A 2 1.020 7.793 7.281 1.00 19.66 C +ATOM 31 C4' DC A 2 1.034 8.184 8.738 1.00 17.99 C +ATOM 32 O4' DC A 2 -0.290 8.244 9.222 1.00 17.23 O +ATOM 33 C3' DC A 2 1.724 7.167 9.617 1.00 18.98 C +ATOM 34 O3' DC A 2 3.130 7.395 9.564 1.00 18.39 O +ATOM 35 C2' DC A 2 1.152 7.607 10.934 1.00 17.33 C +ATOM 36 C1' DC A 2 -0.273 7.853 10.599 1.00 15.44 C +ATOM 37 P DG A 3 4.177 6.440 10.285 1.00 21.10 P +ATOM 38 N9 DG A 3 1.615 4.437 14.168 1.00 11.63 N +ATOM 39 C8 DG A 3 1.389 4.110 12.865 1.00 10.83 C +ATOM 40 N7 DG A 3 0.474 3.204 12.690 1.00 12.03 N +ATOM 41 C5 DG A 3 0.093 2.891 13.972 1.00 9.28 C +ATOM 42 C6 DG A 3 -0.792 1.917 14.408 1.00 6.67 C +ATOM 43 O6 DG A 3 -1.528 1.253 13.693 1.00 11.90 O +ATOM 44 N1 DG A 3 -0.833 1.822 15.808 1.00 7.48 N +ATOM 45 C2 DG A 3 -0.098 2.583 16.686 1.00 7.12 C +ATOM 46 N2 DG A 3 -0.228 2.346 17.999 1.00 2.92 N +ATOM 47 N3 DG A 3 0.745 3.531 16.259 1.00 7.08 N +ATOM 48 C4 DG A 3 0.788 3.626 14.894 1.00 12.36 C +ATOM 49 OP1 DG A 3 5.469 7.004 9.830 1.00 21.52 O +ATOM 50 OP2 DG A 3 3.681 5.183 9.686 1.00 14.50 O +ATOM 51 O5' DG A 3 4.378 6.142 11.832 1.00 19.95 O +ATOM 52 C5' DG A 3 4.654 7.213 12.730 1.00 17.61 C +ATOM 53 C4' DG A 3 4.016 6.885 14.035 1.00 17.62 C +ATOM 54 O4' DG A 3 2.614 6.626 13.799 1.00 16.77 O +ATOM 55 C3' DG A 3 4.595 5.586 14.598 1.00 16.31 C +ATOM 56 O3' DG A 3 5.774 5.836 15.353 1.00 18.86 O +ATOM 57 C2' DG A 3 3.484 5.274 15.528 1.00 17.71 C +ATOM 58 C1' DG A 3 2.243 5.627 14.740 1.00 16.27 C +ATOM 59 P DG A 4 6.647 4.633 15.976 1.00 19.10 P +ATOM 60 N9 DG A 4 3.496 1.232 18.319 1.00 11.82 N +ATOM 61 C8 DG A 4 3.617 1.742 17.054 1.00 8.09 C +ATOM 62 N7 DG A 4 2.902 1.118 16.167 1.00 11.07 N +ATOM 63 C5 DG A 4 2.252 0.091 16.894 1.00 11.16 C +ATOM 64 C6 DG A 4 1.310 -0.920 16.456 1.00 9.75 C +ATOM 65 O6 DG A 4 0.888 -1.151 15.321 1.00 9.97 O +ATOM 66 N1 DG A 4 0.906 -1.749 17.502 1.00 8.27 N +ATOM 67 C2 DG A 4 1.340 -1.630 18.818 1.00 8.31 C +ATOM 68 N2 DG A 4 0.852 -2.494 19.717 1.00 6.42 N +ATOM 69 N3 DG A 4 2.218 -0.681 19.223 1.00 9.10 N +ATOM 70 C4 DG A 4 2.629 0.144 18.209 1.00 10.34 C +ATOM 71 OP1 DG A 4 7.834 5.387 16.410 1.00 21.78 O +ATOM 72 OP2 DG A 4 6.811 3.466 15.083 1.00 20.41 O +ATOM 73 O5' DG A 4 5.837 4.160 17.304 1.00 19.69 O +ATOM 74 C5' DG A 4 5.832 4.777 18.613 1.00 14.70 C +ATOM 75 C4' DG A 4 5.349 3.746 19.615 1.00 15.74 C +ATOM 76 O4' DG A 4 4.014 3.339 19.320 1.00 15.71 O +ATOM 77 C3' DG A 4 6.144 2.446 19.549 1.00 14.86 C +ATOM 78 O3' DG A 4 7.442 2.553 20.185 1.00 20.22 O +ATOM 79 C2' DG A 4 5.194 1.467 20.191 1.00 13.42 C +ATOM 80 C1' DG A 4 3.886 1.904 19.582 1.00 13.10 C +ATOM 81 P DC A 5 8.623 1.481 19.918 1.00 16.11 P +ATOM 82 N1 DC A 5 5.142 -2.576 17.527 1.00 12.08 N +ATOM 83 C2 DC A 5 4.179 -3.389 16.962 1.00 12.60 C +ATOM 84 O2 DC A 5 3.695 -4.327 17.591 1.00 10.69 O +ATOM 85 N3 DC A 5 3.792 -3.162 15.680 1.00 10.73 N +ATOM 86 C4 DC A 5 4.335 -2.176 14.967 1.00 10.86 C +ATOM 87 N4 DC A 5 3.833 -1.904 13.765 1.00 7.57 N +ATOM 88 C5 DC A 5 5.346 -1.339 15.528 1.00 12.31 C +ATOM 89 C6 DC A 5 5.709 -1.571 16.800 1.00 10.26 C +ATOM 90 OP1 DC A 5 9.474 2.225 20.879 1.00 21.84 O +ATOM 91 OP2 DC A 5 8.908 1.639 18.468 1.00 19.79 O +ATOM 92 O5' DC A 5 8.728 -0.072 20.325 1.00 19.47 O +ATOM 93 C5' DC A 5 8.554 -1.158 19.407 1.00 15.29 C +ATOM 94 C4' DC A 5 7.470 -2.178 19.802 1.00 12.49 C +ATOM 95 O4' DC A 5 6.161 -1.717 19.496 1.00 12.55 O +ATOM 96 C3' DC A 5 7.697 -3.468 19.046 1.00 11.96 C +ATOM 97 O3' DC A 5 8.775 -4.194 19.666 1.00 14.17 O +ATOM 98 C2' DC A 5 6.342 -4.056 19.192 1.00 10.58 C +ATOM 99 C1' DC A 5 5.464 -2.822 18.946 1.00 10.97 C +ATOM 100 P DG A 6 9.797 -5.058 18.800 1.00 14.87 P +ATOM 101 N9 DG A 6 5.801 -7.550 16.290 1.00 13.78 N +ATOM 102 C8 DG A 6 6.477 -6.339 16.189 1.00 11.32 C +ATOM 103 N7 DG A 6 6.114 -5.628 15.161 1.00 11.53 N +ATOM 104 C5 DG A 6 5.137 -6.431 14.528 1.00 15.14 C +ATOM 105 C6 DG A 6 4.442 -6.239 13.291 1.00 14.51 C +ATOM 106 O6 DG A 6 4.382 -5.224 12.595 1.00 15.52 O +ATOM 107 N1 DG A 6 3.678 -7.348 12.942 1.00 15.78 N +ATOM 108 C2 DG A 6 3.558 -8.503 13.679 1.00 16.04 C +ATOM 109 N2 DG A 6 2.732 -9.421 13.210 1.00 15.11 N +ATOM 110 N3 DG A 6 4.187 -8.691 14.842 1.00 14.81 N +ATOM 111 C4 DG A 6 4.959 -7.617 15.206 1.00 13.90 C +ATOM 112 OP1 DG A 6 10.851 -5.532 19.718 1.00 14.32 O +ATOM 113 OP2 DG A 6 10.144 -4.575 17.432 1.00 10.67 O +ATOM 114 O5' DG A 6 8.762 -6.277 18.626 1.00 15.18 O +ATOM 115 C5' DG A 6 8.679 -7.438 19.428 1.00 15.40 C +ATOM 116 C4' DG A 6 7.717 -8.446 18.789 1.00 15.34 C +ATOM 117 O4' DG A 6 6.431 -7.834 18.520 1.00 16.46 O +ATOM 118 C3' DG A 6 8.150 -9.052 17.449 1.00 16.54 C +ATOM 119 O3' DG A 6 9.172 -10.043 17.595 1.00 18.58 O +ATOM 120 C2' DG A 6 6.796 -9.650 17.066 1.00 17.79 C +ATOM 121 C1' DG A 6 5.804 -8.517 17.397 1.00 13.96 C +ATOM 122 P DC A 7 10.498 -10.100 16.665 1.00 17.81 P +ATOM 123 N1 DC A 7 7.217 -9.334 12.285 1.00 7.65 N +ATOM 124 C2 DC A 7 6.458 -8.793 11.230 1.00 10.22 C +ATOM 125 O2 DC A 7 5.771 -9.507 10.500 1.00 15.05 O +ATOM 126 N3 DC A 7 6.567 -7.461 10.942 1.00 6.65 N +ATOM 127 C4 DC A 7 7.403 -6.694 11.658 1.00 5.07 C +ATOM 128 N4 DC A 7 7.447 -5.391 11.420 1.00 4.65 N +ATOM 129 C5 DC A 7 8.188 -7.242 12.730 1.00 4.20 C +ATOM 130 C6 DC A 7 8.053 -8.558 13.000 1.00 6.45 C +ATOM 131 OP1 DC A 7 11.307 -11.102 17.394 1.00 17.82 O +ATOM 132 OP2 DC A 7 11.084 -8.759 16.374 1.00 20.08 O +ATOM 133 O5' DC A 7 9.986 -10.722 15.264 1.00 17.30 O +ATOM 134 C5' DC A 7 9.312 -11.986 15.170 1.00 16.36 C +ATOM 135 C4' DC A 7 8.436 -12.095 13.916 1.00 15.85 C +ATOM 136 O4' DC A 7 7.361 -11.148 13.955 1.00 16.34 O +ATOM 137 C3' DC A 7 9.165 -11.823 12.595 1.00 14.83 C +ATOM 138 O3' DC A 7 10.003 -12.907 12.161 1.00 16.25 O +ATOM 139 C2' DC A 7 7.973 -11.600 11.717 1.00 11.20 C +ATOM 140 C1' DC A 7 7.076 -10.772 12.582 1.00 10.61 C +ATOM 141 P DC A 8 11.175 -12.651 11.083 1.00 18.77 P +ATOM 142 N1 DC A 8 8.297 -9.310 7.883 1.00 6.87 N +ATOM 143 C2 DC A 8 7.867 -8.224 7.123 1.00 9.10 C +ATOM 144 O2 DC A 8 7.226 -8.387 6.080 1.00 7.86 O +ATOM 145 N3 DC A 8 8.296 -6.966 7.459 1.00 7.75 N +ATOM 146 C4 DC A 8 9.147 -6.784 8.485 1.00 9.21 C +ATOM 147 N4 DC A 8 9.589 -5.560 8.779 1.00 7.67 N +ATOM 148 C5 DC A 8 9.609 -7.891 9.258 1.00 7.40 C +ATOM 149 C6 DC A 8 9.156 -9.121 8.923 1.00 9.24 C +ATOM 150 OP1 DC A 8 11.871 -13.952 10.908 1.00 20.04 O +ATOM 151 OP2 DC A 8 12.020 -11.472 11.376 1.00 20.24 O +ATOM 152 O5' DC A 8 10.469 -12.357 9.649 1.00 18.79 O +ATOM 153 C5' DC A 8 9.733 -13.334 8.924 1.00 12.85 C +ATOM 154 C4' DC A 8 8.867 -12.647 7.941 1.00 14.40 C +ATOM 155 O4' DC A 8 8.156 -11.587 8.589 1.00 10.91 O +ATOM 156 C3' DC A 8 9.598 -11.936 6.845 1.00 14.90 C +ATOM 157 O3' DC A 8 10.249 -12.831 5.936 1.00 15.23 O +ATOM 158 C2' DC A 8 8.377 -11.232 6.304 1.00 9.34 C +ATOM 159 C1' DC A 8 7.789 -10.648 7.568 1.00 8.80 C +ATOM 160 P DG A 9 11.518 -12.329 5.128 1.00 14.64 P +ATOM 161 N9 DG A 9 9.338 -8.006 2.891 1.00 5.76 N +ATOM 162 C8 DG A 9 10.079 -8.162 4.036 1.00 7.27 C +ATOM 163 N7 DG A 9 10.578 -7.077 4.541 1.00 5.05 N +ATOM 164 C5 DG A 9 10.143 -6.100 3.664 1.00 6.30 C +ATOM 165 C6 DG A 9 10.387 -4.694 3.690 1.00 6.32 C +ATOM 166 O6 DG A 9 10.988 -4.056 4.538 1.00 8.77 O +ATOM 167 N1 DG A 9 9.805 -4.022 2.632 1.00 5.02 N +ATOM 168 C2 DG A 9 9.072 -4.651 1.658 1.00 7.22 C +ATOM 169 N2 DG A 9 8.590 -3.921 0.680 1.00 5.13 N +ATOM 170 N3 DG A 9 8.837 -5.970 1.631 1.00 8.90 N +ATOM 171 C4 DG A 9 9.395 -6.649 2.656 1.00 5.39 C +ATOM 172 OP1 DG A 9 11.889 -13.707 4.763 1.00 17.77 O +ATOM 173 OP2 DG A 9 12.558 -11.435 5.714 1.00 16.33 O +ATOM 174 O5' DG A 9 10.890 -11.645 3.793 1.00 13.73 O +ATOM 175 C5' DG A 9 10.098 -12.334 2.826 1.00 10.04 C +ATOM 176 C4' DG A 9 9.322 -11.365 2.036 1.00 8.60 C +ATOM 177 O4' DG A 9 8.636 -10.420 2.864 1.00 9.95 O +ATOM 178 C3' DG A 9 10.183 -10.481 1.201 1.00 11.49 C +ATOM 179 O3' DG A 9 10.786 -11.138 0.073 1.00 12.29 O +ATOM 180 C2' DG A 9 9.103 -9.503 0.858 1.00 7.88 C +ATOM 181 C1' DG A 9 8.570 -9.111 2.181 1.00 8.58 C +ATOM 182 P G A 10 12.244 -10.723 -0.414 1.00 18.00 P +ATOM 183 N9 G A 10 11.582 -5.303 -1.017 1.00 15.40 N +ATOM 184 C8 G A 10 12.179 -6.115 -0.061 1.00 15.00 C +ATOM 185 N7 G A 10 12.826 -5.480 0.870 1.00 12.61 N +ATOM 186 C5 G A 10 12.635 -4.148 0.522 1.00 13.15 C +ATOM 187 C6 G A 10 13.133 -2.991 1.159 1.00 11.89 C +ATOM 188 O6 G A 10 13.713 -2.965 2.241 1.00 12.64 O +ATOM 189 N1 G A 10 12.806 -1.814 0.462 1.00 9.10 N +ATOM 190 C2 G A 10 12.079 -1.777 -0.689 1.00 10.96 C +ATOM 191 N2 G A 10 11.851 -0.582 -1.197 1.00 11.87 N +ATOM 192 N3 G A 10 11.588 -2.874 -1.294 1.00 12.41 N +ATOM 193 C4 G A 10 11.899 -4.020 -0.633 1.00 13.44 C +ATOM 194 OP1 G A 10 12.221 -11.870 -1.354 1.00 19.65 O +ATOM 195 OP2 G A 10 13.525 -10.237 0.168 1.00 21.55 O +ATOM 196 O5' G A 10 11.507 -9.424 -1.092 1.00 18.23 O +ATOM 197 C5' G A 10 10.721 -9.357 -2.288 1.00 18.20 C +ATOM 198 C4' G A 10 10.589 -7.934 -2.878 1.00 17.37 C +ATOM 199 O4' G A 10 10.102 -6.968 -1.936 1.00 15.12 O +ATOM 200 C3' G A 10 11.859 -7.317 -3.471 1.00 17.88 C +ATOM 201 O3' G A 10 12.164 -7.754 -4.846 1.00 16.65 O +ATOM 202 C2' G A 10 11.470 -5.841 -3.464 1.00 16.83 C +ATOM 203 O2' G A 10 10.607 -5.618 -4.583 1.00 18.75 O +ATOM 204 C1' G A 10 10.721 -5.691 -2.168 1.00 15.79 C +TER 205 G A 10 +ATOM 206 N1 C B 11 13.988 2.735 1.589 1.00 16.99 N +ATOM 207 C2 C B 11 13.552 1.541 1.023 1.00 15.65 C +ATOM 208 O2 C B 11 12.869 1.532 0.006 1.00 14.94 O +ATOM 209 N3 C B 11 13.773 0.359 1.678 1.00 16.15 N +ATOM 210 C4 C B 11 14.386 0.347 2.865 1.00 16.53 C +ATOM 211 N4 C B 11 14.619 -0.822 3.476 1.00 18.43 N +ATOM 212 C5 C B 11 14.816 1.571 3.473 1.00 16.78 C +ATOM 213 C6 C B 11 14.597 2.724 2.804 1.00 15.01 C +ATOM 214 O5' C B 11 14.526 5.793 4.007 1.00 18.48 O +ATOM 215 C5' C B 11 14.531 6.777 2.948 1.00 17.64 C +ATOM 216 C4' C B 11 14.028 6.161 1.616 1.00 17.23 C +ATOM 217 O4' C B 11 14.808 4.991 1.256 1.00 16.55 O +ATOM 218 C3' C B 11 12.611 5.611 1.737 1.00 17.97 C +ATOM 219 O3' C B 11 11.508 6.538 1.711 1.00 18.76 O +ATOM 220 C2' C B 11 12.546 4.594 0.654 1.00 14.10 C +ATOM 221 O2' C B 11 12.366 5.290 -0.579 1.00 13.63 O +ATOM 222 C1' C B 11 13.918 3.977 0.766 1.00 14.14 C +ATOM 223 P DC B 12 10.233 6.143 2.644 1.00 21.42 P +ATOM 224 N1 DC B 12 9.527 0.825 1.326 1.00 15.29 N +ATOM 225 C2 DC B 12 9.472 -0.563 1.382 1.00 14.49 C +ATOM 226 O2 DC B 12 8.922 -1.257 0.518 1.00 17.30 O +ATOM 227 N3 DC B 12 10.055 -1.190 2.418 1.00 11.60 N +ATOM 228 C4 DC B 12 10.676 -0.500 3.383 1.00 15.58 C +ATOM 229 N4 DC B 12 11.164 -1.186 4.430 1.00 14.28 N +ATOM 230 C5 DC B 12 10.760 0.927 3.341 1.00 15.60 C +ATOM 231 C6 DC B 12 10.166 1.544 2.298 1.00 15.73 C +ATOM 232 OP1 DC B 12 9.634 7.406 2.139 1.00 21.29 O +ATOM 233 OP2 DC B 12 10.077 5.869 4.079 1.00 22.13 O +ATOM 234 O5' DC B 12 9.636 4.841 1.804 1.00 20.84 O +ATOM 235 C5' DC B 12 8.999 5.040 0.519 1.00 19.83 C +ATOM 236 C4' DC B 12 8.512 3.757 -0.108 1.00 18.55 C +ATOM 237 O4' DC B 12 9.529 2.733 -0.171 1.00 19.79 O +ATOM 238 C3' DC B 12 7.498 3.211 0.801 1.00 18.00 C +ATOM 239 O3' DC B 12 6.305 3.969 0.629 1.00 19.14 O +ATOM 240 C2' DC B 12 7.475 1.788 0.344 1.00 15.87 C +ATOM 241 C1' DC B 12 8.913 1.473 0.156 1.00 15.45 C +ATOM 242 P DG B 13 4.970 3.543 1.371 1.00 21.52 P +ATOM 243 N9 DG B 13 6.185 -2.069 3.050 1.00 9.23 N +ATOM 244 C8 DG B 13 6.745 -1.032 3.745 1.00 8.94 C +ATOM 245 N7 DG B 13 7.370 -1.389 4.833 1.00 7.30 N +ATOM 246 C5 DG B 13 7.209 -2.767 4.877 1.00 8.43 C +ATOM 247 C6 DG B 13 7.692 -3.719 5.823 1.00 9.75 C +ATOM 248 O6 DG B 13 8.258 -3.536 6.903 1.00 14.29 O +ATOM 249 N1 DG B 13 7.361 -5.014 5.443 1.00 5.73 N +ATOM 250 C2 DG B 13 6.655 -5.359 4.323 1.00 2.65 C +ATOM 251 N2 DG B 13 6.506 -6.654 4.079 1.00 2.15 N +ATOM 252 N3 DG B 13 6.190 -4.477 3.470 1.00 2.55 N +ATOM 253 C4 DG B 13 6.497 -3.198 3.793 1.00 6.08 C +ATOM 254 OP1 DG B 13 4.172 4.637 0.743 1.00 22.41 O +ATOM 255 OP2 DG B 13 5.322 3.646 2.816 1.00 21.67 O +ATOM 256 O5' DG B 13 4.263 2.118 1.102 1.00 18.28 O +ATOM 257 C5' DG B 13 3.977 1.214 2.153 1.00 12.90 C +ATOM 258 C4' DG B 13 3.997 -0.166 1.554 1.00 15.74 C +ATOM 259 O4' DG B 13 5.326 -0.638 1.288 1.00 15.41 O +ATOM 260 C3' DG B 13 3.328 -1.110 2.479 1.00 14.99 C +ATOM 261 O3' DG B 13 1.948 -0.901 2.181 1.00 18.56 O +ATOM 262 C2' DG B 13 3.943 -2.416 1.990 1.00 14.49 C +ATOM 263 C1' DG B 13 5.414 -2.020 1.777 1.00 12.61 C +ATOM 264 P DG B 14 0.784 -1.093 3.255 1.00 15.78 P +ATOM 265 N9 DG B 14 3.152 -5.336 5.518 1.00 6.83 N +ATOM 266 C8 DG B 14 3.420 -4.010 5.692 1.00 4.36 C +ATOM 267 N7 DG B 14 4.172 -3.751 6.719 1.00 5.76 N +ATOM 268 C5 DG B 14 4.412 -5.012 7.281 1.00 8.36 C +ATOM 269 C6 DG B 14 5.175 -5.383 8.425 1.00 10.81 C +ATOM 270 O6 DG B 14 5.939 -4.687 9.102 1.00 10.46 O +ATOM 271 N1 DG B 14 5.100 -6.738 8.655 1.00 7.70 N +ATOM 272 C2 DG B 14 4.415 -7.650 7.890 1.00 6.88 C +ATOM 273 N2 DG B 14 4.444 -8.925 8.254 1.00 4.21 N +ATOM 274 N3 DG B 14 3.730 -7.316 6.805 1.00 7.97 N +ATOM 275 C4 DG B 14 3.774 -5.982 6.566 1.00 7.79 C +ATOM 276 OP1 DG B 14 -0.388 -0.771 2.418 1.00 12.44 O +ATOM 277 OP2 DG B 14 0.951 -0.425 4.562 1.00 16.99 O +ATOM 278 O5' DG B 14 0.825 -2.666 3.590 1.00 12.34 O +ATOM 279 C5' DG B 14 0.518 -3.657 2.618 1.00 15.26 C +ATOM 280 C4' DG B 14 0.962 -5.042 3.026 1.00 11.81 C +ATOM 281 O4' DG B 14 2.388 -5.092 3.261 1.00 14.56 O +ATOM 282 C3' DG B 14 0.298 -5.494 4.281 1.00 10.90 C +ATOM 283 O3' DG B 14 -1.014 -5.933 3.977 1.00 16.35 O +ATOM 284 C2' DG B 14 1.223 -6.607 4.600 1.00 8.75 C +ATOM 285 C1' DG B 14 2.583 -6.029 4.341 1.00 8.31 C +ATOM 286 P DC B 15 -2.108 -5.846 5.127 1.00 18.17 P +ATOM 287 N1 DC B 15 0.594 -8.193 8.784 1.00 10.36 N +ATOM 288 C2 DC B 15 1.420 -8.271 9.913 1.00 13.07 C +ATOM 289 O2 DC B 15 1.626 -9.323 10.519 1.00 11.62 O +ATOM 290 N3 DC B 15 1.985 -7.143 10.391 1.00 9.60 N +ATOM 291 C4 DC B 15 1.755 -5.962 9.810 1.00 9.75 C +ATOM 292 N4 DC B 15 2.507 -4.945 10.242 1.00 10.36 N +ATOM 293 C5 DC B 15 0.883 -5.835 8.681 1.00 8.80 C +ATOM 294 C6 DC B 15 0.336 -6.973 8.201 1.00 11.04 C +ATOM 295 OP1 DC B 15 -3.198 -6.237 4.195 1.00 23.53 O +ATOM 296 OP2 DC B 15 -2.242 -4.630 5.951 1.00 23.09 O +ATOM 297 O5' DC B 15 -1.783 -7.100 6.053 1.00 20.88 O +ATOM 298 C5' DC B 15 -2.023 -8.439 5.585 1.00 16.99 C +ATOM 299 C4' DC B 15 -1.560 -9.527 6.542 1.00 16.47 C +ATOM 300 O4' DC B 15 -0.145 -9.414 6.793 1.00 14.34 O +ATOM 301 C3' DC B 15 -2.235 -9.419 7.903 1.00 17.63 C +ATOM 302 O3' DC B 15 -3.580 -9.983 8.004 1.00 16.81 O +ATOM 303 C2' DC B 15 -1.174 -10.022 8.803 1.00 12.88 C +ATOM 304 C1' DC B 15 0.116 -9.496 8.210 1.00 14.19 C +ATOM 305 P DG B 16 -4.447 -9.204 9.118 1.00 23.27 P +ATOM 306 N9 DG B 16 -0.792 -7.342 13.150 1.00 14.23 N +ATOM 307 C8 DG B 16 -1.064 -6.617 12.000 1.00 13.86 C +ATOM 308 N7 DG B 16 -0.426 -5.487 11.941 1.00 10.67 N +ATOM 309 C5 DG B 16 0.313 -5.477 13.124 1.00 13.65 C +ATOM 310 C6 DG B 16 1.184 -4.501 13.652 1.00 10.61 C +ATOM 311 O6 DG B 16 1.552 -3.475 13.129 1.00 10.52 O +ATOM 312 N1 DG B 16 1.683 -4.846 14.894 1.00 14.28 N +ATOM 313 C2 DG B 16 1.388 -6.009 15.567 1.00 12.13 C +ATOM 314 N2 DG B 16 1.910 -6.217 16.766 1.00 10.28 N +ATOM 315 N3 DG B 16 0.578 -6.929 15.063 1.00 15.53 N +ATOM 316 C4 DG B 16 0.082 -6.603 13.853 1.00 12.03 C +ATOM 317 OP1 DG B 16 -5.486 -10.240 8.913 1.00 22.76 O +ATOM 318 OP2 DG B 16 -4.614 -7.887 8.455 1.00 24.12 O +ATOM 319 O5' DG B 16 -4.232 -8.798 10.672 1.00 18.16 O +ATOM 320 C5' DG B 16 -4.091 -9.850 11.581 1.00 18.35 C +ATOM 321 C4' DG B 16 -3.224 -9.555 12.771 1.00 17.50 C +ATOM 322 O4' DG B 16 -1.873 -9.267 12.423 1.00 15.59 O +ATOM 323 C3' DG B 16 -3.673 -8.498 13.727 1.00 17.67 C +ATOM 324 O3' DG B 16 -4.857 -8.945 14.432 1.00 23.53 O +ATOM 325 C2' DG B 16 -2.423 -8.573 14.568 1.00 16.53 C +ATOM 326 C1' DG B 16 -1.278 -8.659 13.568 1.00 15.43 C +ATOM 327 P DC B 17 -6.006 -7.956 15.048 1.00 19.94 P +ATOM 328 N1 DC B 17 -2.194 -5.587 17.570 1.00 12.74 N +ATOM 329 C2 DC B 17 -1.248 -4.622 17.829 1.00 13.09 C +ATOM 330 O2 DC B 17 -0.698 -4.517 18.933 1.00 12.24 O +ATOM 331 N3 DC B 17 -0.984 -3.712 16.852 1.00 14.35 N +ATOM 332 C4 DC B 17 -1.639 -3.762 15.686 1.00 13.79 C +ATOM 333 N4 DC B 17 -1.297 -2.921 14.711 1.00 16.68 N +ATOM 334 C5 DC B 17 -2.631 -4.748 15.430 1.00 11.59 C +ATOM 335 C6 DC B 17 -2.858 -5.633 16.400 1.00 8.53 C +ATOM 336 OP1 DC B 17 -6.749 -9.243 15.142 1.00 18.85 O +ATOM 337 OP2 DC B 17 -6.441 -6.892 14.132 1.00 21.49 O +ATOM 338 O5' DC B 17 -5.598 -7.385 16.536 1.00 17.70 O +ATOM 339 C5' DC B 17 -5.483 -8.267 17.659 1.00 17.29 C +ATOM 340 C4' DC B 17 -4.462 -7.850 18.701 1.00 19.19 C +ATOM 341 O4' DC B 17 -3.142 -7.783 18.121 1.00 20.08 O +ATOM 342 C3' DC B 17 -4.754 -6.460 19.204 1.00 21.26 C +ATOM 343 O3' DC B 17 -5.866 -6.375 20.121 1.00 23.03 O +ATOM 344 C2' DC B 17 -3.399 -6.104 19.736 1.00 18.88 C +ATOM 345 C1' DC B 17 -2.472 -6.604 18.629 1.00 18.39 C +ATOM 346 P DC B 18 -7.007 -5.260 19.781 1.00 28.77 P +ATOM 347 N1 DC B 18 -3.297 -1.380 18.786 1.00 18.17 N +ATOM 348 C2 DC B 18 -2.446 -0.458 18.171 1.00 16.98 C +ATOM 349 O2 DC B 18 -1.573 0.166 18.774 1.00 20.32 O +ATOM 350 N3 DC B 18 -2.583 -0.258 16.848 1.00 16.82 N +ATOM 351 C4 DC B 18 -3.505 -0.931 16.149 1.00 15.76 C +ATOM 352 N4 DC B 18 -3.636 -0.665 14.860 1.00 13.34 N +ATOM 353 C5 DC B 18 -4.372 -1.893 16.748 1.00 12.67 C +ATOM 354 C6 DC B 18 -4.237 -2.080 18.066 1.00 14.81 C +ATOM 355 OP1 DC B 18 -8.010 -5.697 20.796 1.00 27.91 O +ATOM 356 OP2 DC B 18 -7.417 -4.926 18.375 1.00 24.48 O +ATOM 357 O5' DC B 18 -6.346 -3.878 20.355 1.00 26.69 O +ATOM 358 C5' DC B 18 -5.876 -3.663 21.675 1.00 22.45 C +ATOM 359 C4' DC B 18 -4.868 -2.527 21.660 1.00 20.14 C +ATOM 360 O4' DC B 18 -3.898 -2.791 20.621 1.00 17.95 O +ATOM 361 C3' DC B 18 -5.383 -1.139 21.350 1.00 20.46 C +ATOM 362 O3' DC B 18 -6.122 -0.495 22.422 1.00 22.52 O +ATOM 363 C2' DC B 18 -4.069 -0.456 20.977 1.00 18.70 C +ATOM 364 C1' DC B 18 -3.245 -1.549 20.252 1.00 18.68 C +ATOM 365 P DG B 19 -7.015 0.794 21.992 1.00 18.68 P +ATOM 366 N9 DG B 19 -3.670 3.314 18.697 1.00 8.91 N +ATOM 367 C8 DG B 19 -4.569 2.317 18.417 1.00 7.23 C +ATOM 368 N7 DG B 19 -4.814 2.192 17.179 1.00 8.80 N +ATOM 369 C5 DG B 19 -4.038 3.182 16.585 1.00 8.99 C +ATOM 370 C6 DG B 19 -3.831 3.450 15.217 1.00 9.86 C +ATOM 371 O6 DG B 19 -4.361 2.871 14.270 1.00 14.98 O +ATOM 372 N1 DG B 19 -2.868 4.446 14.998 1.00 8.65 N +ATOM 373 C2 DG B 19 -2.192 5.116 15.998 1.00 8.58 C +ATOM 374 N2 DG B 19 -1.417 6.149 15.640 1.00 8.82 N +ATOM 375 N3 DG B 19 -2.387 4.836 17.299 1.00 9.44 N +ATOM 376 C4 DG B 19 -3.324 3.871 17.515 1.00 8.64 C +ATOM 377 OP1 DG B 19 -7.592 0.740 23.355 1.00 20.58 O +ATOM 378 OP2 DG B 19 -7.881 0.644 20.808 1.00 18.98 O +ATOM 379 O5' DG B 19 -6.137 2.085 21.765 1.00 14.67 O +ATOM 380 C5' DG B 19 -5.282 2.635 22.743 1.00 14.92 C +ATOM 381 C4' DG B 19 -4.265 3.471 22.044 1.00 11.67 C +ATOM 382 O4' DG B 19 -3.668 2.725 20.993 1.00 13.34 O +ATOM 383 C3' DG B 19 -4.831 4.632 21.315 1.00 12.46 C +ATOM 384 O3' DG B 19 -5.233 5.692 22.194 1.00 12.97 O +ATOM 385 C2' DG B 19 -3.646 4.994 20.460 1.00 10.60 C +ATOM 386 C1' DG B 19 -3.149 3.663 20.010 1.00 11.00 C +ATOM 387 P G B 20 -6.156 6.845 21.578 1.00 16.17 P +ATOM 388 N9 G B 20 -4.621 7.966 16.781 1.00 8.70 N +ATOM 389 C8 G B 20 -5.409 6.982 17.305 1.00 8.15 C +ATOM 390 N7 G B 20 -5.951 6.226 16.408 1.00 9.88 N +ATOM 391 C5 G B 20 -5.496 6.753 15.190 1.00 10.42 C +ATOM 392 C6 G B 20 -5.780 6.342 13.855 1.00 11.50 C +ATOM 393 O6 G B 20 -6.476 5.399 13.485 1.00 13.46 O +ATOM 394 N1 G B 20 -5.138 7.125 12.924 1.00 8.26 N +ATOM 395 C2 G B 20 -4.310 8.187 13.214 1.00 7.88 C +ATOM 396 N2 G B 20 -3.735 8.801 12.170 1.00 6.62 N +ATOM 397 N3 G B 20 -4.043 8.594 14.477 1.00 8.59 N +ATOM 398 C4 G B 20 -4.676 7.821 15.410 1.00 7.98 C +ATOM 399 OP1 G B 20 -6.346 7.569 22.839 1.00 11.59 O +ATOM 400 OP2 G B 20 -7.348 6.334 20.882 1.00 19.70 O +ATOM 401 O5' G B 20 -5.304 7.716 20.550 1.00 15.64 O +ATOM 402 C5' G B 20 -4.166 8.497 20.960 1.00 13.60 C +ATOM 403 C4' G B 20 -3.731 9.295 19.780 1.00 11.64 C +ATOM 404 O4' G B 20 -3.346 8.405 18.762 1.00 12.78 O +ATOM 405 C3' G B 20 -4.937 10.017 19.154 1.00 9.26 C +ATOM 406 O3' G B 20 -5.162 11.232 19.849 1.00 8.82 O +ATOM 407 C2' G B 20 -4.515 10.231 17.738 1.00 10.28 C +ATOM 408 O2' G B 20 -3.496 11.210 17.640 1.00 14.06 O +ATOM 409 C1' G B 20 -3.782 8.924 17.491 1.00 11.06 C +TER 410 G B 20 +HETATM 411 N1 SPM 21 10.683 -8.783 22.839 1.00 40.13 N +HETATM 412 C2 SPM 21 11.531 -7.621 23.379 1.00 38.06 C +HETATM 413 C3 SPM 21 10.826 -6.312 23.033 1.00 36.69 C +HETATM 414 C4 SPM 21 11.754 -5.116 22.994 1.00 35.02 C +HETATM 415 N5 SPM 21 10.958 -3.909 22.549 1.00 32.86 N +HETATM 416 C6 SPM 21 12.018 -2.878 22.231 1.00 32.94 C +HETATM 417 C7 SPM 21 11.419 -1.515 22.220 1.00 31.05 C +HETATM 418 C8 SPM 21 12.460 -0.586 21.671 1.00 30.79 C +HETATM 419 C9 SPM 21 12.057 0.847 21.888 1.00 28.48 C +HETATM 420 N10 SPM 21 13.064 1.749 21.221 1.00 28.45 N +HETATM 421 C11 SPM 21 13.493 2.749 22.270 1.00 30.71 C +HETATM 422 C12 SPM 21 14.237 3.946 21.699 1.00 31.37 C +HETATM 423 C13 SPM 21 14.691 4.712 22.920 1.00 32.44 C +HETATM 424 N14 SPM 21 14.460 6.175 22.642 1.00 34.72 N +HETATM 425 O HOH 22 -2.974 -2.437 11.925 1.00 16.09 O +HETATM 426 O HOH 23 4.908 -5.520 0.996 1.00 18.38 O +HETATM 427 O HOH 24 -7.781 4.610 18.814 1.00 18.46 O +HETATM 428 O HOH 25 -0.410 11.047 5.984 1.00 21.92 O +HETATM 429 O HOH 26 -8.768 2.303 25.439 1.00 63.34 O +HETATM 430 O HOH 27 2.982 -6.730 19.716 1.00 59.88 O +HETATM 431 O HOH 28 14.965 -12.628 -1.536 1.00 20.30 O +HETATM 432 O HOH 29 11.946 -14.326 0.320 1.00 19.82 O +HETATM 433 O HOH 30 10.067 -5.986 15.026 1.00 53.92 O +HETATM 434 O HOH 31 12.687 -7.091 6.513 1.00 22.27 O +HETATM 435 O HOH 32 12.609 -9.474 8.227 1.00 37.71 O +HETATM 436 O HOH 33 -2.941 -7.858 2.063 1.00 27.19 O +HETATM 437 O HOH 34 7.529 -3.577 14.088 1.00 21.79 O +HETATM 438 O HOH 35 1.254 -0.882 12.378 1.00 24.27 O +HETATM 439 O HOH 36 3.423 0.963 13.195 1.00 29.99 O +HETATM 440 O HOH 37 7.112 -6.175 -0.485 1.00 27.77 O +HETATM 441 O HOH 38 -0.686 -3.219 10.199 1.00 34.51 O +HETATM 442 O HOH 39 9.580 7.535 14.458 1.00 36.42 O +HETATM 443 O HOH 40 13.715 -4.726 5.032 1.00 69.56 O +HETATM 444 O HOH 41 5.720 -2.345 11.434 1.00 31.09 O +HETATM 445 O HOH 42 3.591 6.788 4.471 1.00 54.80 O +HETATM 446 O HOH 43 10.402 4.780 14.504 1.00 68.31 O +HETATM 447 O HOH 44 14.574 -10.275 18.466 1.00 49.77 O +HETATM 448 O HOH 45 9.740 9.480 0.051 1.00 32.13 O +HETATM 449 O HOH 46 0.657 2.761 2.939 1.00 32.50 O +HETATM 450 O HOH 47 -4.337 -5.705 11.632 1.00 61.29 O +HETATM 451 O HOH 48 8.511 0.032 6.773 1.00 19.39 O +HETATM 452 O HOH 49 4.696 -1.081 7.336 1.00 33.58 O +HETATM 453 O HOH 50 15.251 -12.102 2.108 1.00 32.25 O +HETATM 454 O HOH 51 -6.031 -4.587 15.810 1.00 44.75 O +HETATM 455 O HOH 52 3.985 7.860 0.750 1.00 43.33 O +HETATM 456 O HOH 53 -9.947 -8.411 16.066 1.00 42.79 O +HETATM 457 O HOH 54 14.022 -9.173 2.574 1.00 61.84 O +HETATM 458 O HOH 55 8.927 4.925 21.552 1.00 21.30 O +HETATM 459 O HOH 56 12.080 -9.656 20.565 1.00 39.11 O +HETATM 460 O HOH 57 10.264 3.453 5.213 1.00 32.36 O +HETATM 461 O HOH 58 7.585 8.903 10.458 1.00 55.81 O +HETATM 462 O HOH 59 -6.958 -12.129 15.577 1.00 25.61 O +HETATM 463 O HOH 60 7.487 1.041 16.040 1.00 46.35 O +HETATM 464 O HOH 61 -0.194 -3.247 7.396 1.00 35.93 O +HETATM 465 O HOH 62 8.225 6.727 12.206 1.00 60.91 O +HETATM 466 O HOH 63 -7.060 4.463 4.604 1.00 46.27 O +HETATM 467 O HOH 64 7.946 3.533 12.709 1.00 28.03 O +HETATM 468 O HOH 65 6.779 -1.926 8.904 1.00 41.06 O +HETATM 469 O HOH 66 -4.616 1.948 8.938 1.00 36.90 O +HETATM 470 O HOH 67 2.587 3.984 4.922 1.00 71.03 O +HETATM 471 O HOH 68 -2.870 3.373 6.568 1.00 35.34 O +HETATM 472 O HOH 69 -2.641 -4.676 8.852 1.00 65.95 O +HETATM 473 O HOH 70 7.896 2.158 5.060 1.00 37.59 O +HETATM 474 O HOH 71 -10.031 -4.027 18.622 1.00 67.65 O +HETATM 475 O HOH 72 -8.176 -1.645 24.639 1.00 49.61 O +HETATM 476 O HOH 73 17.116 0.579 15.466 1.00 47.99 O +HETATM 477 O HOH 74 -2.555 0.759 5.884 1.00 40.81 O +HETATM 478 O HOH 75 5.250 1.995 7.543 1.00 70.98 O +HETATM 479 O HOH 76 -10.113 -6.723 18.202 1.00 59.20 O +HETATM 480 O HOH 77 1.829 -2.266 9.724 1.00 75.20 O +HETATM 481 O HOH 78 -8.873 -3.504 22.680 1.00 79.41 O +HETATM 482 O HOH 79 -9.310 -1.446 19.391 1.00 71.79 O +HETATM 483 O HOH 80 -6.613 0.677 10.598 1.00 80.35 O +HETATM 484 O HOH 81 -7.134 2.452 7.202 1.00 72.90 O +HETATM 485 O HOH 82 13.359 4.222 15.085 1.00 55.82 O +HETATM 486 O HOH 83 -1.981 3.230 3.724 1.00 91.06 O +HETATM 487 O HOH 84 8.014 -16.765 6.352 1.00 97.71 O +HETATM 488 O HOH 85 13.277 -1.574 6.340 1.00 80.86 O +HETATM 489 O HOH 86 4.216 1.820 10.481 1.00 76.69 O +HETATM 490 O HOH 87 10.662 -11.389 23.778 1.00 49.18 O +HETATM 491 O HOH 88 -2.029 -10.316 17.858 1.00 83.02 O +CONECT 411 412 +CONECT 412 411 413 +CONECT 413 412 414 +CONECT 414 413 415 +CONECT 415 414 416 +CONECT 416 415 417 +CONECT 417 416 418 +CONECT 418 417 419 +CONECT 419 418 420 +CONECT 420 419 421 +CONECT 421 420 422 +CONECT 422 421 423 +CONECT 423 422 424 +CONECT 424 423 +MASTER 0 0 0 0 0 0 0 6 489 2 14 2 +END diff --git a/Master/texmf-dist/doc/asymptote/examples/1overx.asy b/Master/texmf-dist/doc/asymptote/examples/1overx.asy index 5d9775d44dc..9bbbf282aca 100644 --- a/Master/texmf-dist/doc/asymptote/examples/1overx.asy +++ b/Master/texmf-dist/doc/asymptote/examples/1overx.asy @@ -8,7 +8,7 @@ bool3 branch(real x) static int lastsign=0; if(x == 0) return false; int sign=sgn(x); - bool b=lastsign == 0 || sign == lastsign; + bool b=lastsign == 0 || sign == lastsign; lastsign=sign; return b ? true : default; } diff --git a/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy b/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy index 4e3e55cb40e..1091ae22504 100644 --- a/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy +++ b/Master/texmf-dist/doc/asymptote/examples/BezierPatch.asy @@ -5,9 +5,9 @@ currentlight=Headlamp; surface s=surface(patch(new triple[][] { {(0,0,0),(1,0,0),(1,0,0),(2,0,0)}, - {(0,1,0),(1,0,1),(1,0,1),(2,1,0)}, - {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)}, - {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}})); + {(0,1,0),(1,0,1),(1,0,1),(2,1,0)}, + {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)}, + {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}})); draw(s,yellow); draw(s.s[0].vequals(0.5),squarecap+2bp+blue,currentlight); diff --git a/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy b/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy index 62c01a55717..1055fbb1513 100644 --- a/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy +++ b/Master/texmf-dist/doc/asymptote/examples/BezierSurface.asy @@ -10,29 +10,33 @@ ROLL=17.39344555165265 // viewpoint=getstring("viewpoint",viewpoint); currentprojection=perspective(viewpoint); -triple[][][] P={ +triple[][][] P= { + { {(-1.6,0,1.875),(-2.3,0,1.875),(-2.7,0,1.875),(-2.7,0,1.65),}, {(-1.6,-0.3,1.875),(-2.3,-0.3,1.875),(-2.7,-0.3,1.875),(-2.7,-0.3,1.65),}, {(-1.5,-0.3,2.1),(-2.5,-0.3,2.1),(-3,-0.3,2.1),(-3,-0.3,1.65),}, {(-1.5,0,2.1),(-2.5,0,2.1),(-3,0,2.1),(-3,0,1.65),} - },{ + }, + { {(-2.7,0,1.65),(-2.7,0,1.425),(-2.5,0,0.975),(-2,0,0.75),}, {(-2.7,-0.3,1.65),(-2.7,-0.3,1.425),(-2.5,-0.3,0.975),(-2,-0.3,0.75),}, {(-3,-0.3,1.65),(-3,-0.3,1.2),(-2.65,-0.3,0.7275),(-1.9,-0.3,0.45),}, {(-3,0,1.65),(-3,0,1.2),(-2.65,0,0.7275),(-1.9,0,0.45),} - },{ + }, + { {(-2.7,0,1.65),(-2.7,0,1.875),(-2.3,0,1.875),(-1.6,0,1.875),}, {(-2.7,0.3,1.65),(-2.7,0.3,1.875),(-2.3,0.3,1.875),(-1.6,0.3,1.875),}, {(-3,0.3,1.65),(-3,0.3,2.1),(-2.5,0.3,2.1),(-1.5,0.3,2.1),}, {(-3,0,1.65),(-3,0,2.1),(-2.5,0,2.1),(-1.5,0,2.1),} - },{ + }, + { {(-2,0,0.75),(-2.5,0,0.975),(-2.7,0,1.425),(-2.7,0,1.65),}, {(-2,0.3,0.75),(-2.5,0.3,0.975),(-2.7,0.3,1.425),(-2.7,0.3,1.65),}, {(-1.9,0.3,0.45),(-2.65,0.3,0.7275),(-3,0.3,1.2),(-3,0.3,1.65),}, {(-1.9,0,0.45),(-2.65,0,0.7275),(-3,0,1.2),(-3,0,1.65),} - } -}; + } + }; picture pic; size(pic,15cm); diff --git a/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy b/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy index 2ac1272c9f9..70c8e50a404 100644 --- a/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy +++ b/Master/texmf-dist/doc/asymptote/examples/CDlabel.asy @@ -5,12 +5,12 @@ asy(nativeformat(),"logo"); fill(unitcircle^^(scale(2/11.7)*unitcircle), evenodd+rgb(124/255,205/255,124/255)); label(scale(1.1)*minipage( -"\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\ + "\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\ \smallskip \small The Vector Graphics Language}\\ \smallskip \textsc{Andy Hammerlindl, John Bowman, and Tom Prince} -http://asymptote.sourceforge.net\\ +https://asymptote.sourceforge.io\\ ",8cm),(0,0.6)); label(graphic("logo","height=7cm"),(0,-0.22)); clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd); diff --git a/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy b/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy index d49813e5e66..7df039e04c5 100644 --- a/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy +++ b/Master/texmf-dist/doc/asymptote/examples/Gouraud.asy @@ -1,6 +1,6 @@ size(200); -pen[] p={red,green,blue,magenta}; +pen[] p={red,green,blue,yellow}; pair[] z={(-1,0),(0,0),(0,1),(1,0)}; int[] edges={0,0,0,1}; gouraudshade(z[0]--z[2]--z[3]--cycle,p,z,edges); diff --git a/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy b/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy index 7f4cbbebb24..86e66f9edd2 100644 --- a/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy +++ b/Master/texmf-dist/doc/asymptote/examples/HermiteSpline.asy @@ -1,14 +1,14 @@ import graph; -size(140mm,70mm,IgnoreAspect); -scale(false); +size(140mm,70mm,IgnoreAspect); +scale(false); real[] x={1,3,4,5,6}; -real[] y={1,5,2,0,4}; +real[] y={1,5,2,0,4}; -marker mark=marker(scale(1mm)*cross(6,false,r=0.35),red,Fill); +marker mark=marker(scale(1mm)*cross(6,false,r=0.35),red,Fill); draw(graph(x,y,Hermite),"Hermite Spline",mark); -xaxis("$x$",Bottom,LeftTicks(x)); -yaxis("$y$",Left,LeftTicks); +xaxis("$x$",Bottom,LeftTicks(x)); +yaxis("$y$",Left,LeftTicks); attach(legend(),point(NW),40S+30E,UnFill); diff --git a/Master/texmf-dist/doc/asymptote/examples/Klein.asy b/Master/texmf-dist/doc/asymptote/examples/Klein.asy index a5e7418fe6f..ae46b1b2a19 100644 --- a/Master/texmf-dist/doc/asymptote/examples/Klein.asy +++ b/Master/texmf-dist/doc/asymptote/examples/Klein.asy @@ -2,12 +2,11 @@ import graph3; size(469pt); -currentprojection=perspective( -camera=(25.0851928432063,-30.3337528952473,19.3728775115443), -up=Z, -target=(-0.590622314050054,0.692357205025578,-0.627122488455679), -zoom=1, -autoadjust=false); +currentprojection= + perspective(camera=(25.0851928432063,-30.3337528952473,19.3728775115443), + up=Z, + target=(-0.590622314050054,0.692357205025578,-0.627122488455679), + zoom=1,autoadjust=false); triple f(pair t) { real u=t.x; diff --git a/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy b/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy index c4da5c2ff5f..9ad121ecc65 100644 --- a/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy +++ b/Master/texmf-dist/doc/asymptote/examples/NURBScurve.asy @@ -8,13 +8,14 @@ currentprojection=perspective(50,80,50); // udegree=3, nu=6; real[] knot={0,0,0,0,0.4,0.6,1,1,1,1}; -triple[] P={ - (-31.2061,12.001,6.45082), - (-31.3952,14.7353,6.53707), - (-31.5909,21.277,6.70051), - (-31.4284,25.4933,6.76745), - (-31.5413,30.3485,6.68777), - (-31.4896,32.2839,6.58385) +triple[] P= + { + (-31.2061,12.001,6.45082), + (-31.3952,14.7353,6.53707), + (-31.5909,21.277,6.70051), + (-31.4284,25.4933,6.76745), + (-31.5413,30.3485,6.68777), + (-31.4896,32.2839,6.58385) }; draw(P,knot,green); diff --git a/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy b/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy index 5258c9986de..484e8c4cd15 100644 --- a/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy +++ b/Master/texmf-dist/doc/asymptote/examples/NURBSsphere.asy @@ -1,16 +1,16 @@ import three; /* Reference: -@article{Qin97, - title={{Representing quadric surfaces using NURBS surfaces}}, - author={Qin, K.}, - journal={Journal of Computer Science and Technology}, - volume={12}, - number={3}, - pages={210--216}, - year={1997}, - publisher={Springer} -} + @article{Qin97, + title={{Representing quadric surfaces using NURBS surfaces}}, + author={Qin, K.}, + journal={Journal of Computer Science and Technology}, + volume={12}, + number={3}, + pages={210--216}, + year={1997}, + publisher={Springer} + } */ size(10cm); @@ -31,8 +31,8 @@ P.cyclic=true; real[][] weights=new real[3][4]; for(int i=0; i < 3; ++i) -for(int j=0; j < 4; ++j) - weights[i][j]=W[i]*w[j]; + for(int j=0; j < 4; ++j) + weights[i][j]=W[i]*w[j]; real[] uknot={0,0,1/3,1/2,1,1}; real[] vknot={0,0,0,0,1,1,1,1}; @@ -40,7 +40,7 @@ real[] vknot={0,0,0,0,1,1,1,1}; int N=1; for(int k=0; k < N; ++k) -for(int i=0; i < 4; ++i) - draw(shift(k*Z)*P[i:i+3],uknot,vknot,weights,blue); + for(int i=0; i < 4; ++i) + draw(shift(k*Z)*P[i:i+3],uknot,vknot,weights,blue); // draw(unitsphere,red+opacity(0.1)); diff --git a/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy b/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy index 32df6ff98ea..4bfafefbc33 100644 --- a/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy +++ b/Master/texmf-dist/doc/asymptote/examples/NURBSsurface.asy @@ -9,43 +9,49 @@ currentprojection=perspective(50,80,50); real[] uknot={0,0,0,0,0.5,1,1,1,1}; real[] vknot={0,0,0,0,0.4,0.6,1,1,1,1}; -triple[][] P={{ - (-31.2061,12.001,6.45082), - (-31.3952,14.7353,6.53707), - (-31.5909,21.277,6.70051), - (-31.4284,25.4933,6.76745), - (-31.5413,30.3485,6.68777), - (-31.4896,32.2839,6.58385) - },{ - (-28.279,12.001,7.89625), - (-28.4187,14.7353,8.00954), - (-28.5633,21.277,8.22422), - (-28.4433,25.4933,8.31214), - (-28.5266,30.3485,8.20749), - (-28.4885,32.2839,8.07099) - },{ - (-20,12.001,10.0379), - (-20,14.7353,10.2001), - (-20,21.277,10.5076), - (-20,25.4933,10.6335), - (-20,30.3485,10.4836), - (-20,32.2839,10.2881) - },{ - (-11.721,12.001,7.84024), - (-11.5813,14.7353,7.95269), - (-11.4367,21.277,8.16575), - (-11.5567,25.4933,8.25302), - (-11.4734,30.3485,8.14915), - (-11.5115,32.2839,8.01367) - },{ - (-8.79391,12.001,6.39481), - (-8.60483,14.7353,6.48022), - (-8.40905,21.277,6.64204), - (-8.57158,25.4933,6.70832), - (-8.45874,30.3485,6.62943), - (-8.51041,32.2839,6.52653) - } -}; +triple[][] P= + { + { + (-31.2061,12.001,6.45082), + (-31.3952,14.7353,6.53707), + (-31.5909,21.277,6.70051), + (-31.4284,25.4933,6.76745), + (-31.5413,30.3485,6.68777), + (-31.4896,32.2839,6.58385) + }, + { + (-28.279,12.001,7.89625), + (-28.4187,14.7353,8.00954), + (-28.5633,21.277,8.22422), + (-28.4433,25.4933,8.31214), + (-28.5266,30.3485,8.20749), + (-28.4885,32.2839,8.07099) + }, + { + (-20,12.001,10.0379), + (-20,14.7353,10.2001), + (-20,21.277,10.5076), + (-20,25.4933,10.6335), + (-20,30.3485,10.4836), + (-20,32.2839,10.2881) + }, + { + (-11.721,12.001,7.84024), + (-11.5813,14.7353,7.95269), + (-11.4367,21.277,8.16575), + (-11.5567,25.4933,8.25302), + (-11.4734,30.3485,8.14915), + (-11.5115,32.2839,8.01367) + }, + { + (-8.79391,12.001,6.39481), + (-8.60483,14.7353,6.48022), + (-8.40905,21.277,6.64204), + (-8.57158,25.4933,6.70832), + (-8.45874,30.3485,6.62943), + (-8.51041,32.2839,6.52653) + } + }; draw(P,uknot,vknot,new pen[] {red,green,blue,magenta}); diff --git a/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy b/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy index ec1ab7586a9..40f9d065a30 100644 --- a/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy +++ b/Master/texmf-dist/doc/asymptote/examples/RiemannSphere.asy @@ -33,9 +33,9 @@ draw(p,1bp+heavyred); draw(q,1bp+heavyblue); triple - A=(0,0,1), - B=(u(40),v(40),w(40)), - C=(x(40),y(40),z(40)); +A=(0,0,1), +B=(u(40),v(40),w(40)), +C=(x(40),y(40),z(40)); path3 L=A--C; draw(L,1bp+black); diff --git a/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy b/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy index a1f1b665089..92f94bdc721 100644 --- a/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy +++ b/Master/texmf-dist/doc/asymptote/examples/RiemannSurface.asy @@ -1,13 +1,13 @@ import graph3; import palette; - + size(200,300,keepAspect=false); //settings.nothin=true; - + currentprojection=orthographic(10,10,30); currentlight=(10,10,5); triple f(pair t) {return (exp(t.x)*cos(t.y),exp(t.x)*sin(t.y),t.y);} - + surface s=surface(f,(-4,-2pi),(0,4pi),8,16,Spline); s.colors(palette(s.map(zpart),Rainbow())); draw(s,render(merge=true)); diff --git a/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy b/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy index 8cb3af2cfa9..65098ac9359 100644 --- a/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy +++ b/Master/texmf-dist/doc/asymptote/examples/RiemannSurfaceRoot.asy @@ -5,11 +5,11 @@ import palette; int n=3; size(200,300,keepAspect=false); - + currentprojection=orthographic(10,10,30); currentlight=(10,10,5); triple f(pair t) {return (t.x*cos(t.y),t.x*sin(t.y),t.x^(1/n)*sin(t.y/n));} - + surface s=surface(f,(0,0),(1,2pi*n),8,16,Spline); s.colors(palette(s.map(zpart),Rainbow())); diff --git a/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy b/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy index 2e0d4facd64..5936000fd3f 100644 --- a/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy +++ b/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy @@ -2,15 +2,15 @@ size(200); import palette; import three; currentprojection=perspective(8,2,1); - + triple[] M={(0,0,1),1/3*(sqrt(8),0,-1), 1/3*((sqrt(8))*Cos(120),(sqrt(8))*Sin(120),-1), 1/3*((sqrt(8))*Cos(240),(sqrt(8))*Sin(240),-1)}; - + int level=5; - + surface s; - + void recur(triple p, real u, int l) { if(l < level) for(triple V : M) @@ -23,9 +23,9 @@ void recur(triple p, real u, int l) { s.append(surface((p+u*(V+M[3]))--(p+u*(V+M[2]))--(p+u*(V+M[1]))--cycle)); } } - + recur(O,0.5,1); - + s.colors(palette(s.map(zpart),Rainbow())); - + draw(s,render(merge=true)); diff --git a/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy b/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy index deaf7c1dec3..f26db20ff6b 100644 --- a/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy +++ b/Master/texmf-dist/doc/asymptote/examples/SierpinskiSponge.asy @@ -4,36 +4,40 @@ import three; currentprojection=orthographic(1,1,1); -triple[] M={ - (-1,-1,-1),(0,-1,-1),(1,-1,-1),(1,0,-1), - (1,1,-1),(0,1,-1),(-1,1,-1),(-1,0,-1), - (-1,-1,0),(1,-1,0),(1,1,0),(-1,1,0), - (-1,-1,1),(0,-1,1),(1,-1,1),(1,0,1),(1,1,1),(0,1,1),(-1,1,1),(-1,0,1) -}; +triple[] M= + { + (-1,-1,-1),(0,-1,-1),(1,-1,-1),(1,0,-1), + (1,1,-1),(0,1,-1),(-1,1,-1),(-1,0,-1), + (-1,-1,0),(1,-1,0),(1,1,0),(-1,1,0), + (-1,-1,1),(0,-1,1),(1,-1,1),(1,0,1),(1,1,1),(0,1,1),(-1,1,1),(-1,0,1) + }; -surface[] Squares={ - surface((1,-1,-1)--(1,1,-1)--(1,1,1)--(1,-1,1)--cycle), - surface((-1,-1,-1)--(-1,1,-1)--(-1,1,1)--(-1,-1,1)--cycle), - surface((1,1,-1)--(-1,1,-1)--(-1,1,1)--(1,1,1)--cycle), - surface((1,-1,-1)--(-1,-1,-1)--(-1,-1,1)--(1,-1,1)--cycle), - surface((1,-1,1)--(1,1,1)--(-1,1,1)--(-1,-1,1)--cycle), - surface((1,-1,-1)--(1,1,-1)--(-1,1,-1)--(-1,-1,-1)--cycle), +surface[] Squares= + { + surface((1,-1,-1)--(1,1,-1)--(1,1,1)--(1,-1,1)--cycle), + surface((-1,-1,-1)--(-1,1,-1)--(-1,1,1)--(-1,-1,1)--cycle), + surface((1,1,-1)--(-1,1,-1)--(-1,1,1)--(1,1,1)--cycle), + surface((1,-1,-1)--(-1,-1,-1)--(-1,-1,1)--(1,-1,1)--cycle), + surface((1,-1,1)--(1,1,1)--(-1,1,1)--(-1,-1,1)--cycle), + surface((1,-1,-1)--(1,1,-1)--(-1,1,-1)--(-1,-1,-1)--cycle), }; -int[][] SquaresPoints={ - {2,3,4,10,16,15,14,9}, - {0,7,6,11,18,19,12,8}, - {4,5,6,11,18,17,16,10}, - {2,1,0,8,12,13,14,9}, - {12,13,14,15,16,17,18,19}, - {0,1,2,3,4,5,6,7} -}; +int[][] SquaresPoints= + { + {2,3,4,10,16,15,14,9}, + {0,7,6,11,18,19,12,8}, + {4,5,6,11,18,17,16,10}, + {2,1,0,8,12,13,14,9}, + {12,13,14,15,16,17,18,19}, + {0,1,2,3,4,5,6,7} + }; -int[][] index={ - {0,2,4},{0,1},{1,2,4},{2,3},{1,3,4},{0,1},{0,3,4},{2,3}, - {4,5},{4,5},{4,5},{4,5}, - {0,2,5},{0,1},{1,2,5},{2,3},{1,3,5},{0,1},{0,3,5},{2,3} -}; +int[][] index= + { + {0,2,4},{0,1},{1,2,4},{2,3},{1,3,4},{0,1},{0,3,4},{2,3}, + {4,5},{4,5},{4,5},{4,5}, + {0,2,5},{0,1},{1,2,5},{2,3},{1,3,5},{0,1},{0,3,5},{2,3} + }; int[] Sponge0=array(n=6,value=1); diff --git a/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy b/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy index bbfdd21eaba..22bd4e2f3cb 100644 --- a/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy +++ b/Master/texmf-dist/doc/asymptote/examples/animations/slidemovies.asy @@ -16,7 +16,7 @@ access embed; // For non-portable embedded movies usersetting(); titlepage("Slides with {\tt Asymptote}: Animations","John C. Bowman", - "University of Alberta","\today","http://asymptote.sf.net"); + "University of Alberta","\today","https://asymptote.sourceforge.io"); title("Embedded PDF movies (portable)"); animation a=animation("A"); diff --git a/Master/texmf-dist/doc/asymptote/examples/axialshade.asy b/Master/texmf-dist/doc/asymptote/examples/axialshade.asy new file mode 100644 index 00000000000..97977b2aeaa --- /dev/null +++ b/Master/texmf-dist/doc/asymptote/examples/axialshade.asy @@ -0,0 +1,5 @@ +size(0,100); + +axialshade(unitsquare,red,(0,0),blue,(1,1)); + + diff --git a/Master/texmf-dist/doc/asymptote/examples/bars3.asy b/Master/texmf-dist/doc/asymptote/examples/bars3.asy index 4205d46f37c..58adcfb99f8 100644 --- a/Master/texmf-dist/doc/asymptote/examples/bars3.asy +++ b/Master/texmf-dist/doc/asymptote/examples/bars3.asy @@ -1,5 +1,5 @@ import three; -import palette; +import palette; import graph3; size(300); diff --git a/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy b/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy index 2e26454cdbe..278274fb404 100644 --- a/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy +++ b/Master/texmf-dist/doc/asymptote/examples/centroidfg.asy @@ -8,8 +8,8 @@ real g(real x) {return x^2;} draw(graph(f,a,b,operator ..),red); draw(graph(g,a,b,operator ..),blue); - -xaxis(); + +xaxis(); int n=5; @@ -18,7 +18,7 @@ for(int i=0; i <= n; ++i) { real x=a+width*i; draw((x,g(x))--(x,f(x))); } - + labelx("$a$",a); labelx("$b$",b); draw((a,0)--(a,g(a)),dotted); diff --git a/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy b/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy index e0f6b5b4272..fccb03f8c6b 100644 --- a/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy +++ b/Master/texmf-dist/doc/asymptote/examples/colorpatch.asy @@ -5,9 +5,9 @@ size(10cm); surface s=surface(patch(new triple[][] { {(0,0,0),(1,0,0),(1,0,0),(2,0,0)}, - {(0,1,0),(1,0,1),(1,0,1),(2,1,0)}, - {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)}, - {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}})); + {(0,1,0),(1,0,1),(1,0,1),(2,1,0)}, + {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)}, + {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}})); s.s[0].colors=new pen[] {red,green,blue,black}; draw(s,nolight); diff --git a/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy b/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy index 16bef25b545..805b0819931 100644 --- a/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy +++ b/Master/texmf-dist/doc/asymptote/examples/colorplanes.asy @@ -16,7 +16,7 @@ int[] edges={0,0,0,2}; gouraudshade(faces.push(y),project(y),p,edges); gouraudshade(faces.push(l),project(l),p,edges); gouraudshade(faces.push(g),project(g),new pen[]{cyan,magenta,yellow,black}, - edges); + edges); add(faces); diff --git a/Master/texmf-dist/doc/asymptote/examples/conicurv.asy b/Master/texmf-dist/doc/asymptote/examples/conicurv.asy index cb678710c11..8170bb1b7cb 100644 --- a/Master/texmf-dist/doc/asymptote/examples/conicurv.asy +++ b/Master/texmf-dist/doc/asymptote/examples/conicurv.asy @@ -1,4 +1,4 @@ -// Original name : conicurv.mp +// Original name : conicurv.mp // Author : L. Nobre G. // Translators : J. Pienaar (2004) and John Bowman (2005) @@ -7,7 +7,7 @@ texpreamble("\usepackage{bm}"); size(300,0); -currentprojection=perspective(10,-5,5.44); +currentprojection=perspective(10,-5,5.44); real theta=30, width=3, shortradius=2, bord=2, refsize=1, vecsize=2; real height=0.3, anglar=1.75, totup=3; diff --git a/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy b/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy index 39177abdba3..9e7811d9601 100644 --- a/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy +++ b/Master/texmf-dist/doc/asymptote/examples/contextfonts.asy @@ -1,6 +1,6 @@ settings.tex="context"; // Work around ConTeXT bug for font sizes less than 12pt: -texpreamble("\setupbodyfont[8pt]"); +texpreamble("\setupbodyfont[8pt]"); usetypescript("iwona"); usetypescript("antykwa-torunska"); diff --git a/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy b/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy index bfd8336f1f6..af7906ecad3 100644 --- a/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy +++ b/Master/texmf-dist/doc/asymptote/examples/controlsystem.asy @@ -4,7 +4,7 @@ import flowchart; block delay=roundrectangle("$e^{-sT_t}$",(0.33,0)); block system=roundrectangle("$\frac{s+3}{s^2+0.3s+1}$",(0.6,0)); block controller=roundrectangle("$0.06\left( 1 + \frac{1}{s}\right)$", - (0.45,-0.25)); + (0.45,-0.25)); block sum1=circle("",(0.15,0),mindiameter=0.3cm); block junction1=circle("",(0.75,0),fillpen=currentpen); @@ -16,7 +16,7 @@ draw(junction1); add(new void(picture pic, transform t) { blockconnector operator --=blockconnector(pic,t); - + block(0,0)--Label("$u$",align=N)--Arrow--sum1--Arrow--delay--Arrow-- system--junction1--Label("$y$",align=N)--Arrow--block(1,0); diff --git a/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy b/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy index f6ce8de62a4..c996367d1c2 100644 --- a/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy +++ b/Master/texmf-dist/doc/asymptote/examples/cosaddition.asy @@ -4,7 +4,7 @@ import geometry; real A=130; real B=40; -pair O=(0,0); +pair O=(0,0); pair R=(1,0); pair P=dir(A); pair Q=dir(B); diff --git a/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy b/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy index ddc7e286d58..8487449c992 100644 --- a/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy +++ b/Master/texmf-dist/doc/asymptote/examples/cpkcolors.asy @@ -17,243 +17,245 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ -string[] Element={ - "Xx", // 0 - "H", // 1 - "He", // 2 - "Li", // 3 - "Be", // 4 - "B", // 5 - "C", // 6 - "N", // 7 - "O", // 8 - "F", // 9 - "Ne", // 10 - "Na", // 11 - "Mg", // 12 - "Al", // 13 - "Si", // 14 - "P", // 15 - "S", // 16 - "Cl", // 17 - "Ar", // 18 - "K", // 19 - "Ca", // 20 - "Sc", // 21 - "Ti", // 22 - "V", // 23 - "Cr", // 24 - "Mn", // 25 - "Fe", // 26 - "Co", // 27 - "Ni", // 28 - "Cu", // 29 - "Zn", // 30 - "Ga", // 31 - "Ge", // 32 - "As", // 33 - "Se", // 34 - "Br", // 35 - "Kr", // 36 - "Rb", // 37 - "Sr", // 38 - "Y", // 39 - "Zr", // 40 - "Nb", // 41 - "Mo", // 42 - "Tc", // 43 - "Ru", // 44 - "Rh", // 45 - "Pd", // 46 - "Ag", // 47 - "Cd", // 48 - "In", // 49 - "Sn", // 50 - "Sb", // 51 - "Te", // 52 - "I", // 53 - "Xe", // 54 - "Cs", // 55 - "Ba", // 56 - "La", // 57 - "Ce", // 58 - "Pr", // 59 - "Nd", // 60 - "Pm", // 61 - "Sm", // 62 - "Eu", // 63 - "Gd", // 64 - "Tb", // 65 - "Dy", // 66 - "Ho", // 67 - "Er", // 68 - "Tm", // 69 - "Yb", // 70 - "Lu", // 71 - "Hf", // 72 - "Ta", // 73 - "W", // 74 - "Re", // 75 - "Os", // 76 - "Ir", // 77 - "Pt", // 78 - "Au", // 79 - "Hg", // 80 - "Tl", // 81 - "Pb", // 82 - "Bi", // 83 - "Po", // 84 - "At", // 85 - "Rn", // 86 - "Fr", // 87 - "Ra", // 88 - "Ac", // 89 - "Th", // 90 - "Pa", // 91 - "U", // 92 - "Np", // 93 - "Pu", // 94 - "Am", // 95 - "Cm", // 96 - "Bk", // 97 - "Cf", // 98 - "Es", // 99 - "Fm", // 100 - "Md", // 101 - "No", // 102 - "Lr", // 103 - "Rf", // 104 - "Db", // 105 - "Sg", // 106 - "Bh", // 107 - "Hs", // 108 - "Mt", // 109 - /* - "Ds", // 110 - "Uuu",// 111 - "Uub",// 112 - "Uut",// 113 - "Uuq",// 114 - "Uup",// 115 - "Uuh",// 116 - "Uus",// 117 - "Uuo",// 118 - */ -}; +string[] Element= + { + "Xx", // 0 + "H", // 1 + "He", // 2 + "Li", // 3 + "Be", // 4 + "B", // 5 + "C", // 6 + "N", // 7 + "O", // 8 + "F", // 9 + "Ne", // 10 + "Na", // 11 + "Mg", // 12 + "Al", // 13 + "Si", // 14 + "P", // 15 + "S", // 16 + "Cl", // 17 + "Ar", // 18 + "K", // 19 + "Ca", // 20 + "Sc", // 21 + "Ti", // 22 + "V", // 23 + "Cr", // 24 + "Mn", // 25 + "Fe", // 26 + "Co", // 27 + "Ni", // 28 + "Cu", // 29 + "Zn", // 30 + "Ga", // 31 + "Ge", // 32 + "As", // 33 + "Se", // 34 + "Br", // 35 + "Kr", // 36 + "Rb", // 37 + "Sr", // 38 + "Y", // 39 + "Zr", // 40 + "Nb", // 41 + "Mo", // 42 + "Tc", // 43 + "Ru", // 44 + "Rh", // 45 + "Pd", // 46 + "Ag", // 47 + "Cd", // 48 + "In", // 49 + "Sn", // 50 + "Sb", // 51 + "Te", // 52 + "I", // 53 + "Xe", // 54 + "Cs", // 55 + "Ba", // 56 + "La", // 57 + "Ce", // 58 + "Pr", // 59 + "Nd", // 60 + "Pm", // 61 + "Sm", // 62 + "Eu", // 63 + "Gd", // 64 + "Tb", // 65 + "Dy", // 66 + "Ho", // 67 + "Er", // 68 + "Tm", // 69 + "Yb", // 70 + "Lu", // 71 + "Hf", // 72 + "Ta", // 73 + "W", // 74 + "Re", // 75 + "Os", // 76 + "Ir", // 77 + "Pt", // 78 + "Au", // 79 + "Hg", // 80 + "Tl", // 81 + "Pb", // 82 + "Bi", // 83 + "Po", // 84 + "At", // 85 + "Rn", // 86 + "Fr", // 87 + "Ra", // 88 + "Ac", // 89 + "Th", // 90 + "Pa", // 91 + "U", // 92 + "Np", // 93 + "Pu", // 94 + "Am", // 95 + "Cm", // 96 + "Bk", // 97 + "Cf", // 98 + "Es", // 99 + "Fm", // 100 + "Md", // 101 + "No", // 102 + "Lr", // 103 + "Rf", // 104 + "Db", // 105 + "Sg", // 106 + "Bh", // 107 + "Hs", // 108 + "Mt", // 109 + /* + "Ds", // 110 + "Uuu",// 111 + "Uub",// 112 + "Uut",// 113 + "Uuq",// 114 + "Uup",// 115 + "Uuh",// 116 + "Uus",// 117 + "Uuo",// 118 + */ + }; // Default table of CPK atom colors // (ghemical colors with a few proposed modifications). -string[] Hexcolor={ - "FF1493", // Xx 0 - "FFFFFF", // H 1 - "D9FFFF", // He 2 - "CC80FF", // Li 3 - "C2FF00", // Be 4 - "FFB5B5", // B 5 - "909090", // C 6 - changed from ghemical - "3050F8", // N 7 - changed from ghemical - "FF0D0D", // O 8 - "90E050", // F 9 - changed from ghemical - "B3E3F5", // Ne 10 - "AB5CF2", // Na 11 - "8AFF00", // Mg 12 - "BFA6A6", // Al 13 - "F0C8A0", // Si 14 - changed from ghemical - "FF8000", // P 15 - "FFFF30", // S 16 - "1FF01F", // Cl 17 - "80D1E3", // Ar 18 - "8F40D4", // K 19 - "3DFF00", // Ca 20 - "E6E6E6", // Sc 21 - "BFC2C7", // Ti 22 - "A6A6AB", // V 23 - "8A99C7", // Cr 24 - "9C7AC7", // Mn 25 - "E06633", // Fe 26 - changed from ghemical - "F090A0", // Co 27 - changed from ghemical - "50D050", // Ni 28 - changed from ghemical - "C88033", // Cu 29 - changed from ghemical - "7D80B0", // Zn 30 - "C28F8F", // Ga 31 - "668F8F", // Ge 32 - "BD80E3", // As 33 - "FFA100", // Se 34 - "A62929", // Br 35 - "5CB8D1", // Kr 36 - "702EB0", // Rb 37 - "00FF00", // Sr 38 - "94FFFF", // Y 39 - "94E0E0", // Zr 40 - "73C2C9", // Nb 41 - "54B5B5", // Mo 42 - "3B9E9E", // Tc 43 - "248F8F", // Ru 44 - "0A7D8C", // Rh 45 - "006985", // Pd 46 - "C0C0C0", // Ag 47 - changed from ghemical - "FFD98F", // Cd 48 - "A67573", // In 49 - "668080", // Sn 50 - "9E63B5", // Sb 51 - "D47A00", // Te 52 - "940094", // I 53 - "429EB0", // Xe 54 - "57178F", // Cs 55 - "00C900", // Ba 56 - "70D4FF", // La 57 - "FFFFC7", // Ce 58 - "D9FFC7", // Pr 59 - "C7FFC7", // Nd 60 - "A3FFC7", // Pm 61 - "8FFFC7", // Sm 62 - "61FFC7", // Eu 63 - "45FFC7", // Gd 64 - "30FFC7", // Tb 65 - "1FFFC7", // Dy 66 - "00FF9C", // Ho 67 - "00E675", // Er 68 - "00D452", // Tm 69 - "00BF38", // Yb 70 - "00AB24", // Lu 71 - "4DC2FF", // Hf 72 - "4DA6FF", // Ta 73 - "2194D6", // W 74 - "267DAB", // Re 75 - "266696", // Os 76 - "175487", // Ir 77 - "D0D0E0", // Pt 78 - changed from ghemical - "FFD123", // Au 79 - changed from ghemical - "B8B8D0", // Hg 80 - changed from ghemical - "A6544D", // Tl 81 - "575961", // Pb 82 - "9E4FB5", // Bi 83 - "AB5C00", // Po 84 - "754F45", // At 85 - "428296", // Rn 86 - "420066", // Fr 87 - "007D00", // Ra 88 - "70ABFA", // Ac 89 - "00BAFF", // Th 90 - "00A1FF", // Pa 91 - "008FFF", // U 92 - "0080FF", // Np 93 - "006BFF", // Pu 94 - "545CF2", // Am 95 - "785CE3", // Cm 96 - "8A4FE3", // Bk 97 - "A136D4", // Cf 98 - "B31FD4", // Es 99 - "B31FBA", // Fm 100 - "B30DA6", // Md 101 - "BD0D87", // No 102 - "C70066", // Lr 103 - "CC0059", // Rf 104 - "D1004F", // Db 105 - "D90045", // Sg 106 - "E00038", // Bh 107 - "E6002E", // Hs 108 - "EB0026" // Mt 109 -}; +string[] Hexcolor= + { + "FF1493", // Xx 0 + "FFFFFF", // H 1 + "D9FFFF", // He 2 + "CC80FF", // Li 3 + "C2FF00", // Be 4 + "FFB5B5", // B 5 + "909090", // C 6 - changed from ghemical + "3050F8", // N 7 - changed from ghemical + "FF0D0D", // O 8 + "90E050", // F 9 - changed from ghemical + "B3E3F5", // Ne 10 + "AB5CF2", // Na 11 + "8AFF00", // Mg 12 + "BFA6A6", // Al 13 + "F0C8A0", // Si 14 - changed from ghemical + "FF8000", // P 15 + "FFFF30", // S 16 + "1FF01F", // Cl 17 + "80D1E3", // Ar 18 + "8F40D4", // K 19 + "3DFF00", // Ca 20 + "E6E6E6", // Sc 21 + "BFC2C7", // Ti 22 + "A6A6AB", // V 23 + "8A99C7", // Cr 24 + "9C7AC7", // Mn 25 + "E06633", // Fe 26 - changed from ghemical + "F090A0", // Co 27 - changed from ghemical + "50D050", // Ni 28 - changed from ghemical + "C88033", // Cu 29 - changed from ghemical + "7D80B0", // Zn 30 + "C28F8F", // Ga 31 + "668F8F", // Ge 32 + "BD80E3", // As 33 + "FFA100", // Se 34 + "A62929", // Br 35 + "5CB8D1", // Kr 36 + "702EB0", // Rb 37 + "00FF00", // Sr 38 + "94FFFF", // Y 39 + "94E0E0", // Zr 40 + "73C2C9", // Nb 41 + "54B5B5", // Mo 42 + "3B9E9E", // Tc 43 + "248F8F", // Ru 44 + "0A7D8C", // Rh 45 + "006985", // Pd 46 + "C0C0C0", // Ag 47 - changed from ghemical + "FFD98F", // Cd 48 + "A67573", // In 49 + "668080", // Sn 50 + "9E63B5", // Sb 51 + "D47A00", // Te 52 + "940094", // I 53 + "429EB0", // Xe 54 + "57178F", // Cs 55 + "00C900", // Ba 56 + "70D4FF", // La 57 + "FFFFC7", // Ce 58 + "D9FFC7", // Pr 59 + "C7FFC7", // Nd 60 + "A3FFC7", // Pm 61 + "8FFFC7", // Sm 62 + "61FFC7", // Eu 63 + "45FFC7", // Gd 64 + "30FFC7", // Tb 65 + "1FFFC7", // Dy 66 + "00FF9C", // Ho 67 + "00E675", // Er 68 + "00D452", // Tm 69 + "00BF38", // Yb 70 + "00AB24", // Lu 71 + "4DC2FF", // Hf 72 + "4DA6FF", // Ta 73 + "2194D6", // W 74 + "267DAB", // Re 75 + "266696", // Os 76 + "175487", // Ir 77 + "D0D0E0", // Pt 78 - changed from ghemical + "FFD123", // Au 79 - changed from ghemical + "B8B8D0", // Hg 80 - changed from ghemical + "A6544D", // Tl 81 + "575961", // Pb 82 + "9E4FB5", // Bi 83 + "AB5C00", // Po 84 + "754F45", // At 85 + "428296", // Rn 86 + "420066", // Fr 87 + "007D00", // Ra 88 + "70ABFA", // Ac 89 + "00BAFF", // Th 90 + "00A1FF", // Pa 91 + "008FFF", // U 92 + "0080FF", // Np 93 + "006BFF", // Pu 94 + "545CF2", // Am 95 + "785CE3", // Cm 96 + "8A4FE3", // Bk 97 + "A136D4", // Cf 98 + "B31FD4", // Es 99 + "B31FBA", // Fm 100 + "B30DA6", // Md 101 + "BD0D87", // No 102 + "C70066", // Lr 103 + "CC0059", // Rf 104 + "D1004F", // Db 105 + "D90045", // Sg 106 + "E00038", // Bh 107 + "E6002E", // Hs 108 + "EB0026" // Mt 109 + }; diff --git a/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy b/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy index 5bee2342d83..bdb0566d568 100644 --- a/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy +++ b/Master/texmf-dist/doc/asymptote/examples/curvedlabel3.asy @@ -8,7 +8,7 @@ string txt1="\hbox{This is a test of \emph{curved} 3D labels in \textbf{Asymptote} (implemented with {\tt texpath}).}"; string txt2="This is a test of curved labels in Asymptote\\(implemented -without the {\tt PSTricks pstextpath} macro)."; +without the {\tt PSTricks pstextpath} macro)."; draw(surface(g),paleblue+opacity(0.5)); draw(labelpath(txt1,subpath(g,0,reltime(g,0.95)),angle=-90),orange); diff --git a/Master/texmf-dist/doc/asymptote/examples/diatom.asy b/Master/texmf-dist/doc/asymptote/examples/diatom.asy index 23673dcadf5..0d571e2c9c6 100644 --- a/Master/texmf-dist/doc/asymptote/examples/diatom.asy +++ b/Master/texmf-dist/doc/asymptote/examples/diatom.asy @@ -40,7 +40,7 @@ for(int taxon=0; taxon < n; ++taxon) { real[] P=percentage[taxon]; if(max(P) < ignorebelow) continue; final=taxon; -} +} real angle=45; real L=3cm; @@ -100,10 +100,10 @@ for(int taxon=0; taxon < n; ++taxon) { pair z1=t*z+v; pair w1=z1+Ldir; draw[i]=new void(frame f) { - path g=z0--(z0.x+(ymax-z0.y)/Tan(angle),ymax)-- - (z1.x+(ymax-z1.y)/Tan(angle),ymax)--z1; - draw(f,g); - label(f,group[i],point(g,1.5),align); + path g=z0--(z0.x+(ymax-z0.y)/Tan(angle),ymax)-- + (z1.x+(ymax-z1.y)/Tan(angle),ymax)--z1; + draw(f,g); + label(f,group[i],point(g,1.5),align); }; }); } @@ -113,7 +113,7 @@ for(int taxon=0; taxon < n; ++taxon) { if(taxon == 0) yaxis(pic,depthlabel,Left,RightTicks(0,10),above=true); if(taxon == final) yaxis(pic,Right,LeftTicks("%",0,10),above=true); - + add(shift(location,0)*pic); location += pic.userMax().x; } diff --git a/Master/texmf-dist/doc/asymptote/examples/dimension.asy b/Master/texmf-dist/doc/asymptote/examples/dimension.asy index 1244ba84e68..c22110aa5e9 100644 --- a/Master/texmf-dist/doc/asymptote/examples/dimension.asy +++ b/Master/texmf-dist/doc/asymptote/examples/dimension.asy @@ -1,7 +1,7 @@ -size(12cm,0); - +size(12cm,0); + void distance(picture pic=currentpicture, pair A, pair B, Label L="", real n=0, - pen p=currentpen) + pen p=currentpen) { real d=3mm; path g=A--B; @@ -9,15 +9,15 @@ void distance(picture pic=currentpicture, pair A, pair B, Label L="", real n=0, pic.add(new void(frame f, transform t) { picture opic; path G=T*t*g; - draw(opic,Label(L,Center,UnFill(1)),G,p,Arrows(NoFill),Bars,PenMargins); + draw(opic,Label(L,Center,UnFill(1)),G,p,Arrows(NoFill),Bars,PenMargins); add(f,opic.fit()); }); pic.addBox(min(g),max(g),T*min(p),T*max(p)); -} - -pair A=(0,0), B=(3,3); - -dot(A); -dot(B); - -distance(A,B,"$\ell$",1); +} + +pair A=(0,0), B=(3,3); + +dot(A); +dot(B); + +distance(A,B,"$\ell$",1); diff --git a/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy b/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy index d229f76b748..d6484ada99a 100644 --- a/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy +++ b/Master/texmf-dist/doc/asymptote/examples/electromagnetic.asy @@ -1,47 +1,47 @@ -import graph; +import graph; import palette; -texpreamble("\usepackage[amssymb,thinqspace,thinspace]{SIunits}"); - -size(800,200); - +texpreamble("\usepackage[amssymb,thinqspace,thinspace]{SIunits}"); + +size(800,200); + real c=3e8; real nm=1e-9; -real freq(real lambda) {return c/(lambda*nm);} -real lambda(real f) {return c/(f*nm);} - -real fmin=10; -real fmax=1e23; - -scale(Log(true),Linear(true)); -xlimits(fmin,fmax); -ylimits(0,1); - +real freq(real lambda) {return c/(lambda*nm);} +real lambda(real f) {return c/(f*nm);} + +real fmin=10; +real fmax=1e23; + +scale(Log(true),Linear(true)); +xlimits(fmin,fmax); +ylimits(0,1); + real uv=freq(400); real ir=freq(700); - + bounds visible=bounds(Scale(uv).x,Scale(ir).x); palette(visible,uv,ir+(0,2),Bottom,Rainbow(),invisible); -xaxis(Label("\hertz",1),Bottom,RightTicks,above=true); - +xaxis(Label("\hertz",1),Bottom,RightTicks,above=true); + real log10Left(real x) {return -log10(x);} real pow10Left(real x) {return pow10(-x);} scaleT LogLeft=scaleT(log10Left,pow10Left,logarithmic=true); -picture q=secondaryX(new void(picture p) { - scale(p,LogLeft,Linear); +picture q=secondaryX(new void(picture p) { + scale(p,LogLeft,Linear); xlimits(p,lambda(fmax),lambda(fmin)); - ylimits(p,0,1); - xaxis(p,Label("\nano\metre",1,0.01N),Top,LeftTicks(DefaultLogFormat,n=10)); - }); - -add(q,above=true); + ylimits(p,0,1); + xaxis(p,Label("\nano\metre",1,0.01N),Top,LeftTicks(DefaultLogFormat,n=10)); + }); + +add(q,above=true); margin margin=PenMargin(0,0); -draw("radio",Scale((10,1))--Scale((5e12,1)),S,Arrow); +draw("radio",Scale((10,1))--Scale((5e12,1)),S,Arrow); draw("infrared",Scale((1e12,1.75))--Scale(shift(0,1.75)*ir),LeftSide,Arrows,margin); draw("UV",Scale(shift(0,1.75)*uv)--Scale((1e17,1.76)),LeftSide,Arrows,margin); -draw("x-rays",Scale((1e16,1))--Scale((1e21,1)),RightSide,Arrows); -draw("$\gamma$-rays",Scale((fmax,1.75))--Scale((2e18,1.75)),Arrow); +draw("x-rays",Scale((1e16,1))--Scale((1e21,1)),RightSide,Arrows); +draw("$\gamma$-rays",Scale((fmax,1.75))--Scale((2e18,1.75)),Arrow); diff --git a/Master/texmf-dist/doc/asymptote/examples/elliptic.asy b/Master/texmf-dist/doc/asymptote/examples/elliptic.asy index 728508f0110..71fb80db6d5 100644 --- a/Master/texmf-dist/doc/asymptote/examples/elliptic.asy +++ b/Master/texmf-dist/doc/asymptote/examples/elliptic.asy @@ -74,7 +74,7 @@ size(0,200); curve c; c.a=-1; c.b=4; -pair oncurve(real x) +pair oncurve(real x) { return (x,sqrt(c.y2(x))); } @@ -111,5 +111,5 @@ dot("$2P$", PP, SW); add(output,currentpicture.fit(),(0.5cm,0),E); shipout(output); - + restore(); diff --git a/Master/texmf-dist/doc/asymptote/examples/equilchord.asy b/Master/texmf-dist/doc/asymptote/examples/equilchord.asy index b93da942d08..b7ed365d3ba 100644 --- a/Master/texmf-dist/doc/asymptote/examples/equilchord.asy +++ b/Master/texmf-dist/doc/asymptote/examples/equilchord.asy @@ -6,7 +6,7 @@ currentlight=(-1,-1,2); real t=0.5; real F(pair z) { - return (z.x^2+z.y^2 <= 1) ? sqrt(3)*(sqrt(1-z.x^2)-abs(z.y)) : 0; + return (z.x^2+z.y^2 <= 1) ? sqrt(3)*(sqrt(1-z.x^2)-abs(z.y)) : 0; } real a=1.5; diff --git a/Master/texmf-dist/doc/asymptote/examples/exp.asy b/Master/texmf-dist/doc/asymptote/examples/exp.asy index 2c4eed90d4e..3558a2759bd 100644 --- a/Master/texmf-dist/doc/asymptote/examples/exp.asy +++ b/Master/texmf-dist/doc/asymptote/examples/exp.asy @@ -4,11 +4,11 @@ size(150,0); real f(real x) {return exp(x);} pair F(real x) {return (x,f(x));} +draw(graph(f,-4,2,operator ..),red); + xaxis("$x$"); yaxis("$y$",0); -draw(graph(f,-4,2,operator ..),red); - labely(1,E); label("$e^x$",F(1),SE); diff --git a/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy b/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy index 0f9fb0212d1..e896911994c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy +++ b/Master/texmf-dist/doc/asymptote/examples/fequlogo.asy @@ -4,7 +4,7 @@ import obj; size(200,0); size3(200); -if(settings.render < 0) settings.render=8; +if(settings.render < 0) settings.render=8; texpreamble("\usepackage[T1]{fontenc}"); texpreamble("\usepackage{ccfonts,eulervm}"); @@ -34,4 +34,4 @@ add(new void(frame f, transform3 t, picture pic, projection P) { draw(f,surface(invert(box(min(f,P),max(f,P)),min3(f),P), new pen[] {orange,red,yellow,brown}+opacity(0.9))); } -); + ); diff --git a/Master/texmf-dist/doc/asymptote/examples/filesurface.asy b/Master/texmf-dist/doc/asymptote/examples/filesurface.asy index b4817a05863..2202554876f 100644 --- a/Master/texmf-dist/doc/asymptote/examples/filesurface.asy +++ b/Master/texmf-dist/doc/asymptote/examples/filesurface.asy @@ -19,7 +19,7 @@ surface s=surface(f,(0,0),(x.length-1,y.length-1),x.length-1,y.length-1); real[] level=uniform(min(f)*(1-sqrtEpsilon),max(f)*(1+sqrtEpsilon),4); s.colors(palette(s.map(new real(triple v) {return find(level >= v.z);}), - Rainbow())); + Rainbow())); draw(s,meshpen=thick(),render(merge=true)); @@ -32,11 +32,11 @@ yaxis3("$y$",Bounds,InTicks(Step=1,step=0.1)); zaxis3("$z$",Bounds,InTicks); /* -picture palette; -size3(palette,1cm); -draw(palette,unitcube,red); -frame F=palette.fit3(); -add(F,(M.x,m.y,m.z)); + picture palette; + size3(palette,1cm); + draw(palette,unitcube,red); + frame F=palette.fit3(); + add(F,(M.x,m.y,m.z)); */ currentprojection=perspective(camera=target+realmult(dir(68,225),M-m), diff --git a/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy b/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy index 311192fb7f8..0197386670f 100644 --- a/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy +++ b/Master/texmf-dist/doc/asymptote/examples/fillcontour.asy @@ -15,7 +15,7 @@ int Divs=10; defaultpen(1bp); bounds range=bounds(-1,1); - + real[] Cvals=uniform(range.min,range.max,Divs); guide[][] g=contour(f,a,b,Cvals,N,operator --); diff --git a/Master/texmf-dist/doc/asymptote/examples/fin.asy b/Master/texmf-dist/doc/asymptote/examples/fin.asy index 8fe88f3dc0e..f1b7e20182a 100644 --- a/Master/texmf-dist/doc/asymptote/examples/fin.asy +++ b/Master/texmf-dist/doc/asymptote/examples/fin.asy @@ -2,7 +2,7 @@ import three; import palette; int N = 26; -real[] C = array(N,0); +real[] C = array(N,0); real[][] A = new real[N][N]; for(int i = 0; i < N; ++i) for(int j = 0; j < N; ++j) @@ -46,23 +46,23 @@ A[i][indexof(1,2)] = 1; C[i] = Tb; // interior nodes for(int m = 2; m<13; ++m) -{ - A[i][indexof(m,2)] = -4; - A[i][indexof(m-1,2)] = A[i][indexof(m+1,2)] = 1; - A[i][indexof(m,1)] = 2; - C[i] = 0; - ++i; -} + { + A[i][indexof(m,2)] = -4; + A[i][indexof(m-1,2)] = A[i][indexof(m+1,2)] = 1; + A[i][indexof(m,1)] = 2; + C[i] = 0; + ++i; + } // convective bottom side nodes for(int m = 2; m<13; ++m) -{ - A[i][indexof(m,1)] = -(2+h*delta/k); - A[i][indexof(m-1,1)] = A[i][indexof(m+1,1)] = 0.5; - A[i][indexof(m,2)] = 1; - C[i] = -h*delta*Tinf/k; - ++i; -} + { + A[i][indexof(m,1)] = -(2+h*delta/k); + A[i][indexof(m-1,1)] = A[i][indexof(m+1,1)] = 0.5; + A[i][indexof(m,2)] = 1; + C[i] = -h*delta*Tinf/k; + ++i; + } // convective bottom right corner node A[i][indexof(13,2)] = A[i][indexof(12,1)] = 0.5; @@ -115,18 +115,18 @@ material lookupColour(int m,int n) draw(shift(0,1,0)*rightsquare,lookupColour(1,2)); for(int i = 2; i < 13; ++i) -{ - draw(shift(i-1,1,0)*square,lookupColour(i,2)); -} + { + draw(shift(i-1,1,0)*square,lookupColour(i,2)); + } draw(shift(12,1,0)*leftsquare,lookupColour(13,2)); draw(shift(0,2,0)*SEcorner,lookupColour(1,3)); draw(shift(0,0,0)*NEcorner,lookupColour(1,1)); for(int i = 2; i < 13; ++i) -{ - draw(shift(i-1,0,0)*topsquare,lookupColour(i,1)); - draw(shift(i-1,2,0)*bottomsquare,lookupColour(i,3)); -} + { + draw(shift(i-1,0,0)*topsquare,lookupColour(i,1)); + draw(shift(i-1,2,0)*bottomsquare,lookupColour(i,3)); + } draw(shift(12,2,0)*SWcorner,lookupColour(13,3)); draw(shift(12,0,0)*NWcorner,lookupColour(13,1)); diff --git a/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy b/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy index 88eae565a34..68c49440428 100644 --- a/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy +++ b/Master/texmf-dist/doc/asymptote/examples/floatingdisk.asy @@ -1,28 +1,28 @@ -import trembling; -if(settings.outformat == "") - settings.outformat="pdf"; - -size(6cm,0); - -real R=1/5; -real h=0.5; -real d=1/12; -real l=.7; - -pair pA=(-l,0); -pair pB=(l,0); +import trembling; +if(settings.outformat == "") + settings.outformat="pdf"; + +size(6cm,0); + +real R=1/5; +real h=0.5; +real d=1/12; +real l=.7; + +pair pA=(-l,0); +pair pB=(l,0); tremble tr=tremble(angle=10,frequency=0.1,random=50,fuzz=1); -path waterline=tr.deform(pA..pB); - -path disk=shift(0,-d)*scale(R)*unitcircle; -path water=waterline--(l,-h)--(-l,-h)--(-l,0)--cycle; -path container=(l,1/7)--(l,-h)--(-l,-h)--(-l,1/7); - -filldraw(disk,red,linewidth(.3)); -fill(water,mediumgrey+opacity(0.5)); -draw(waterline); - -draw(container,linewidth(1.5)); - +path waterline=tr.deform(pA..pB); + +path disk=shift(0,-d)*scale(R)*unitcircle; +path water=waterline--(l,-h)--(-l,-h)--(-l,0)--cycle; +path container=(l,1/7)--(l,-h)--(-l,-h)--(-l,1/7); + +filldraw(disk,red,linewidth(.3)); +fill(water,mediumgrey+opacity(0.5)); +draw(waterline); + +draw(container,linewidth(1.5)); + shipout(bbox(2mm)); diff --git a/Master/texmf-dist/doc/asymptote/examples/floor.asy b/Master/texmf-dist/doc/asymptote/examples/floor.asy index 02c2446abe8..ed61c0e8730 100644 --- a/Master/texmf-dist/doc/asymptote/examples/floor.asy +++ b/Master/texmf-dist/doc/asymptote/examples/floor.asy @@ -10,7 +10,7 @@ bool3 branch(real x) { static real lasty; static bool first=true; real y=floor(x); - bool samebranch=first || lasty == y; + bool samebranch=first || lasty == y; first=false; if(samebranch) lasty=x; else { @@ -21,7 +21,7 @@ bool3 branch(real x) { return samebranch ? true : default; }; -draw(graph(Floor,-5.5,5.5,500,branch)); +draw(graph(Floor,-5.5,5.5,500,branch)); axes("$x$",rotate(0)*"$\lfloor x\rfloor$",red); dot(Close); diff --git a/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy b/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy index 796e357a5ff..77c78c0e2ce 100644 --- a/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy +++ b/Master/texmf-dist/doc/asymptote/examples/flowchartdemo.asy @@ -3,8 +3,8 @@ size(0,300); import flowchart; block block1=rectangle(Label("Example",magenta), - pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue), - "$B:=1$"),(-0.5,3),palegreen,paleblue,red); + pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue), + "$B:=1$"),(-0.5,3),palegreen,paleblue,red); block block2=diamond(Label("Choice?",blue),(0,2),palegreen,red); block block3=roundrectangle("Do something",(-1,1)); block block4=bevel("Don't do something",(1,1)); diff --git a/Master/texmf-dist/doc/asymptote/examples/gamma.asy b/Master/texmf-dist/doc/asymptote/examples/gamma.asy index f92dd775abb..136ec01401f 100644 --- a/Master/texmf-dist/doc/asymptote/examples/gamma.asy +++ b/Master/texmf-dist/doc/asymptote/examples/gamma.asy @@ -12,7 +12,7 @@ bool3 branch(real x) } draw(graph(gamma,-4,4,n=2000,branch),red); - + scale(false); xlimits(-4,4); ylimits(-6,6); diff --git a/Master/texmf-dist/doc/asymptote/examples/gamma3.asy b/Master/texmf-dist/doc/asymptote/examples/gamma3.asy index e522dad4e70..6fc56065cb2 100644 --- a/Master/texmf-dist/doc/asymptote/examples/gamma3.asy +++ b/Master/texmf-dist/doc/asymptote/examples/gamma3.asy @@ -7,7 +7,7 @@ currentprojection=orthographic(1,-2,1); real X=4.5; real M=abs(gamma((X,0))); -pair Gamma(pair z) +pair Gamma(pair z) { return (z.x > 0 || z != floor(z.x)) ? gamma(z) : M; } diff --git a/Master/texmf-dist/doc/asymptote/examples/genustwo.asy b/Master/texmf-dist/doc/asymptote/examples/genustwo.asy index 0d346481d04..79e07e22684 100644 --- a/Master/texmf-dist/doc/asymptote/examples/genustwo.asy +++ b/Master/texmf-dist/doc/asymptote/examples/genustwo.asy @@ -12,9 +12,9 @@ real toruscontour(real x, real y, real z) { return (r-2)^2 + z^2 - tuberadius^2; } -// Take the union of the two tangent tori (by taking +// Take the union of the two tangent tori (by taking // the product of the functions defining them). Then -// add (or subtract) a bit of noise to smooth things +// add (or subtract) a bit of noise to smooth things // out. real f(real x, real y, real z) { real f1 = toruscontour(x - 2 - tuberadius, y, z); @@ -22,15 +22,15 @@ real f(real x, real y, real z) { return f1 * f2 - 0.1; } -// The noisy function extends a bit farther than the union of +// The noisy function extends a bit farther than the union of // the two tori, so include a bit of extra space in the box. triple max = (2*(2+tuberadius), 2+tuberadius, tuberadius) - + (0.1, 0.1, 0.1); + + (0.1, 0.1, 0.1); triple min = -max; // Draw the implicit surface. -draw(implicitsurface(f, min, max, overlapedges=true, +draw(implicitsurface(f, min, max, overlapedges=true, nx=20, nz=5), surfacepen=material(diffusepen=gray(0.6), - emissivepen=gray(0.3), - specularpen=gray(0.1))); + emissivepen=gray(0.3), + specularpen=gray(0.1))); diff --git a/Master/texmf-dist/doc/asymptote/examples/icon.asy b/Master/texmf-dist/doc/asymptote/examples/icon.asy index 1701fe0f32e..0170f2605ce 100644 --- a/Master/texmf-dist/doc/asymptote/examples/icon.asy +++ b/Master/texmf-dist/doc/asymptote/examples/icon.asy @@ -4,7 +4,7 @@ size(30,30,IgnoreAspect); real f(real t) {return t < 0 ? -1/t : -0.5/t;} -picture logo(pair s=0, pen q) +picture logo(pair s=0, pen q) { picture pic; pen p=linewidth(3)+q; @@ -17,6 +17,6 @@ picture logo(pair s=0, pen q) draw(pic,z+c+eps--z,p); yaxis(pic,p); return shift(s)*pic; -} +} add(logo(red)); diff --git a/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy b/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy index 6b5eb455cad..d61b6148c53 100644 --- a/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy +++ b/Master/texmf-dist/doc/asymptote/examples/imagecontour.asy @@ -19,7 +19,7 @@ pen tickpen=gray+0.5*linewidth(currentpen); pen[] Palette=BWRainbow(); bounds range=image(f,Automatic,a,b,N,Palette); - + // Major contours real[] Cvals=uniform(range.min,range.max,Divs); diff --git a/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy b/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy index d3bdc783757..302d69194d9 100644 --- a/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy +++ b/Master/texmf-dist/doc/asymptote/examples/imagehistogram.asy @@ -1,47 +1,47 @@ import stats; -import graph; -import palette; -import contour; - +import graph; +import palette; +import contour; + size(20cm); scale(false); pair[] data=new pair[50000]; for(int i=0; i < data.length; ++i) - data[i]=Gaussrandpair(); - -// Histogram limits and number of bins -pair datamin=(-0.15,-0.15); -pair datamax=(0.15,0.15); -int Nx=30; -int Ny=30; + data[i]=Gaussrandpair(); + +// Histogram limits and number of bins +pair datamin=(-0.15,-0.15); +pair datamax=(0.15,0.15); +int Nx=30; +int Ny=30; int[][] bins=frequency(data,datamin,datamax,Nx,Ny); - -real[] values=new real[Nx*Ny]; + +real[] values=new real[Nx*Ny]; pair[] points=new pair[Nx*Ny]; -int k=0; +int k=0; real dx=(datamax.x-datamin.x)/Nx; real dy=(datamax.y-datamin.y)/Ny; for(int i=0; i < Nx; ++i) { for(int j=0; j < Ny; ++j) { - values[k]=bins[i][j]; - points[k]=(datamin.x+(i+0.5)*dx,datamin.y+(j+0.5)*dy); - ++k; + values[k]=bins[i][j]; + points[k]=(datamin.x+(i+0.5)*dx,datamin.y+(j+0.5)*dy); + ++k; } -} - -// Create a color palette +} + +// Create a color palette pen[] InvGrayscale(int NColors=256) { - real ninv=1.0/(NColors-1.0); - return sequence(new pen(int i) {return gray(1-17*i*ninv);},NColors); -} - -// Draw the histogram, with axes -bounds range=image(points,values,Range(0,40),InvGrayscale()); + real ninv=1.0/(NColors-1.0); + return sequence(new pen(int i) {return gray(1-17*i*ninv);},NColors); +} + +// Draw the histogram, with axes +bounds range=image(points,values,Range(0,40),InvGrayscale()); draw(contour(points,values,new real[] {1,2,3,4,8,12,16,20,24,28,32,36,40}, - operator--),blue); -xaxis("$x$",BottomTop,LeftTicks,above=true); -yaxis("$y$",LeftRight,RightTicks,above=true); + operator--),blue); +xaxis("$x$",BottomTop,LeftTicks,above=true); +yaxis("$y$",LeftRight,RightTicks,above=true); diff --git a/Master/texmf-dist/doc/asymptote/examples/integraltest.asy b/Master/texmf-dist/doc/asymptote/examples/integraltest.asy index c45b1eb8f17..4bcd3737d0d 100644 --- a/Master/texmf-dist/doc/asymptote/examples/integraltest.asy +++ b/Master/texmf-dist/doc/asymptote/examples/integraltest.asy @@ -9,17 +9,17 @@ dotfactor=7; void subinterval(real a, real b) { path g=box((a,0),(b,f(b))); - filldraw(g,lightgray); + filldraw(g,lightgray); draw(box((a,f(a)),(b,0))); } int a=1, b=9; - -xaxis("$x$",0,b); -yaxis("$y$",0); - + +xaxis("$x$",0,b); +yaxis("$y$",0); + draw(graph(f,a,b,operator ..),red); - + int n=2; for(int i=a; i <= b; ++i) { diff --git a/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy b/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy index 8845c8dd2f8..19d77449abd 100644 --- a/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy +++ b/Master/texmf-dist/doc/asymptote/examples/interpolate1.asy @@ -127,9 +127,9 @@ attach(legend(),point(10S),30S); shipout("runge4"); -erase(); +erase(); -// Test 5: The situation is much better using Tchebychev points. +// Test 5: The situation is much better using Tchebychev points. unitsize(2cm); @@ -194,7 +194,7 @@ attach(legend(),point(10S),30S); shipout("runge6"); -erase(); +erase(); // Test 7: Another Tchebychev example. diff --git a/Master/texmf-dist/doc/asymptote/examples/intro.asy b/Master/texmf-dist/doc/asymptote/examples/intro.asy index 68aa7e0347f..8fe021e0ec0 100644 --- a/Master/texmf-dist/doc/asymptote/examples/intro.asy +++ b/Master/texmf-dist/doc/asymptote/examples/intro.asy @@ -32,7 +32,7 @@ titlepage(long ? "Asymptote: The Vector Graphics Language" : %and Instituto Nacional de Matem\'atica Pura e Aplicada (IMPA) \medskip\Green{Collaborators: Orest Shardt, Michail Vidiassov}", "June 30, 2010", -"http://asymptote.sf.net/intro.pdf"); +"https://asymptote.sourceforge.io/intro.pdf"); title("History"); item("1979: \TeX\ and \MF\ (Knuth)"); @@ -48,7 +48,7 @@ subitem("2010: 3D PDF enhancements (Vidiassov \& Bowman)"); title("Statistics (as of June, 2010)"); item("Runs under Linux/UNIX, Mac OS X, Microsoft Windows."); item("4000 downloads/month from primary\hfill\\ - {\tt asymptote.sourceforge.net} site alone."); + {\tt asymptote.sourceforge.io} site alone."); item("80\ 000 lines of low-level C++ code."); item("36\ 000 lines of high-level Asymptote code."); @@ -941,7 +941,7 @@ defaultpen(0.5); title("\mbox{Asymptote: 2D \& 3D Vector Graphics Language}"); asyinclude("../examples/logo3"); skip(); -center("\tt http://asymptote.sf.net"); +center("\tt https://asymptote.sourceforge.io"); center("(freely available under the LGPL license)"); // LocalWords: pdflatex mflogo viewportsize pagewidth pagemargin goysr bibtex diff --git a/Master/texmf-dist/doc/asymptote/examples/jump.asy b/Master/texmf-dist/doc/asymptote/examples/jump.asy index 7ae19be3886..d2fdb41c643 100644 --- a/Master/texmf-dist/doc/asymptote/examples/jump.asy +++ b/Master/texmf-dist/doc/asymptote/examples/jump.asy @@ -1,13 +1,13 @@ import graph; size(4inches,0); -real f1(real x) {return (1+x^2);} +real f1(real x) {return (1+x^2);} real f2(real x) {return (4-x);} xaxis("$x$",LeftTicks,Arrow); yaxis("$y$",RightTicks,Arrow); -draw("$y=1+x^2$",graph(f1,-2,1)); +draw("$y=1+x^2$",graph(f1,-2,1)); dot((1,f1(1)),UnFill); draw("$y=4-x$",graph(f2,1,5),LeftSide,red,Arrow); diff --git a/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy b/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy index cba4f98cb54..022a09a32d9 100644 --- a/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy +++ b/Master/texmf-dist/doc/asymptote/examples/label3zoom.asy @@ -3,14 +3,14 @@ import three; currentlight=Headlamp; size(469.75499pt,0); -currentprojection=perspective( -camera=(160.119024441391,136.348802919248,253.822628496226), -up=(-0.188035408976828,0.910392236102215,-0.368549401594584), -target=(25.5462739598034,1.77605243766079,-9.93996244768584), -zoom=5.59734733413271, -angle=5.14449021168139, -viewportshift=(0.813449720559684,-0.604674743165144), -autoadjust=false); +currentprojection= + perspective(camera=(160.119024441391,136.348802919248,253.822628496226), + up=(-0.188035408976828,0.910392236102215,-0.368549401594584), + target=(25.5462739598034,1.77605243766079,-9.93996244768584), + zoom=5.59734733413271, + angle=5.14449021168139, + viewportshift=(0.813449720559684,-0.604674743165144), + autoadjust=false); draw(scale3(4)*extrude("$\displaystyle\int\limits_{-\infty}^{+\infty}\!\! e^{-\alpha x^2}\!\!=\sqrt{\frac{\pi}{\alpha}}$",2Z), material(blue)); diff --git a/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy b/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy index 37477d58858..6362e8323ef 100644 --- a/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy +++ b/Master/texmf-dist/doc/asymptote/examples/leastsquares.asy @@ -22,7 +22,7 @@ real last=700; // Remove negative or zero values of rho: t=rho > 0 ? t : null; rho=rho > 0 ? rho : null; - + scale(Log(true),Linear(true)); int n=step > 0 ? ceil((last-first)/step) : 0; @@ -33,17 +33,17 @@ for(int i=0; i <= n; ++i) { real first=first+i*step; real[] logrho=(t >= first & t <= last) ? log(rho) : null; real[] logt=(t >= first & t <= last) ? -log(t) : null; - + if(logt.length < 2) break; - + // Fit to the line logt=L.m*logrho+L.b: linefit L=leastsquares(logt,logrho); - + T.push(first); xi.push(L.m); dxi.push(L.dm); -} - +} + draw(graph(T,xi),blue); errorbars(T,xi,dxi,red); diff --git a/Master/texmf-dist/doc/asymptote/examples/legend.asy b/Master/texmf-dist/doc/asymptote/examples/legend.asy index 09a31868ae4..b00cdd14e6b 100644 --- a/Master/texmf-dist/doc/asymptote/examples/legend.asy +++ b/Master/texmf-dist/doc/asymptote/examples/legend.asy @@ -1,15 +1,15 @@ -import graph; -size(8cm,6cm,IgnoreAspect); - -typedef real realfcn(real); -realfcn F(real p) { - return new real(real x) {return sin(p*x);}; -}; - +import graph; +size(8cm,6cm,IgnoreAspect); + +typedef real realfcn(real); +realfcn F(real p) { + return new real(real x) {return sin(p*x);}; +}; + for(int i=1; i < 5; ++i) draw(graph(F(i*pi),0,1),Pen(i), - "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$"); -xaxis("$x$",BottomTop,LeftTicks); -yaxis("$y$",LeftRight,RightTicks(trailingzero)); - -attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill); + "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$"); +xaxis("$x$",BottomTop,LeftTicks); +yaxis("$y$",LeftRight,RightTicks(trailingzero)); + +attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill); diff --git a/Master/texmf-dist/doc/asymptote/examples/linearregression.asy b/Master/texmf-dist/doc/asymptote/examples/linearregression.asy index a1cc6ff6bcb..7ec50d8fb0c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/linearregression.asy +++ b/Master/texmf-dist/doc/asymptote/examples/linearregression.asy @@ -28,13 +28,13 @@ while (!eof(duncan)) { real[] coeffs = leastsquares(independentvars, dependentvars, warn=false); if (coeffs.length == 0) { abort("Unable to find regression: independent variables are " - + "linearly dependent."); + + "linearly dependent."); } real f(pair xy) { return coeffs[0] * xy.x // income - + coeffs[1] * xy.y // education - + coeffs[2]; // residue + + coeffs[1] * xy.y // education + + coeffs[2]; // residue } real xmin = infinity, xmax = -infinity, ymin = infinity, ymax = -infinity; @@ -52,7 +52,7 @@ draw(surface(f, (xmin, ymin), (xmax, ymax)), for (int ii = 0; ii < independentvars.length; ++ii) { triple pt = (independentvars[ii][0], independentvars[ii][1], - dependentvars[ii]); + dependentvars[ii]); draw(shift(pt) * unitsphere, material(yellow, emissivepen=0.2*yellow)); real z = f((pt.x, pt.y)); if (pt.z > z) draw (pt -- (pt.x, pt.y, z), green); diff --git a/Master/texmf-dist/doc/asymptote/examples/linetype.asy b/Master/texmf-dist/doc/asymptote/examples/linetype.asy index dc4762c2478..477ada1e14d 100644 --- a/Master/texmf-dist/doc/asymptote/examples/linetype.asy +++ b/Master/texmf-dist/doc/asymptote/examples/linetype.asy @@ -6,7 +6,7 @@ void testline(real y) { draw((0,y-40)--(100,y-40),currentpen+dashdotted); draw((0,y-50)--(100,y-50),currentpen+longdashdotted); draw((0,y-60)--(100,y-60),currentpen+Dotted); -} +} currentpen=linewidth(0.5); testline(100); diff --git a/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy b/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy index c25a7c4b4be..36ac3f173f6 100644 --- a/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy +++ b/Master/texmf-dist/doc/asymptote/examples/lmfit1.asy @@ -4,10 +4,10 @@ import graph; size(10cm, 7cm, IgnoreAspect); real[] date = { 1790, 1800, 1810, 1820, 1830, 1840, 1850, 1860, 1870, 1880, -1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990 }; + 1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990 }; real[] population = { 3.929, 5.308, 7.240, 9.638, 12.866, 17.069, 23.192, 31.443, -38.558, 50.156, 62.948, 75.996, 91.972, 105.711, 122.775, 131.669, 150.697, -179.323, 203.185, 226.546, 248.710 }; + 38.558, 50.156, 62.948, 75.996, 91.972, 105.711, 122.775, 131.669, 150.697, + 179.323, 203.185, 226.546, 248.710 }; real t0 = 1776; diff --git a/Master/texmf-dist/doc/asymptote/examples/logo.asy b/Master/texmf-dist/doc/asymptote/examples/logo.asy index d180558ad34..3cd42079ede 100644 --- a/Master/texmf-dist/doc/asymptote/examples/logo.asy +++ b/Master/texmf-dist/doc/asymptote/examples/logo.asy @@ -1,6 +1,6 @@ size(140,80,IgnoreAspect); -picture logo(pair s=0, pen q) +picture logo(pair s=0, pen q) { picture pic; pen p=linewidth(2)+fontsize(24pt)+q; @@ -19,7 +19,7 @@ picture logo(pair s=0, pen q) draw(pic,(0,y1)--(0,y2),p); draw(pic,(a,0)--(b,0),p); return shift(s)*pic; -} +} pair z=(-0.015,0.08); for(int x=0; x < 10; ++x) diff --git a/Master/texmf-dist/doc/asymptote/examples/logo3.asy b/Master/texmf-dist/doc/asymptote/examples/logo3.asy index c7947f1c41c..363305ede5c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/logo3.asy +++ b/Master/texmf-dist/doc/asymptote/examples/logo3.asy @@ -1,11 +1,15 @@ import three; -//size(105,50,IgnoreAspect); -size(560,320,IgnoreAspect); // Fullsize +size(560,320,IgnoreAspect); size3(140,80,15); -currentprojection=perspective(-2,20,10,up=Y); -currentlight=White; -viewportmargin=(0,10); + +currentprojection= + perspective(camera=(-0.7387428806982,-50.4754947040394,10.1433958227456), + up=(0.0023,0.158056646909439,0.000753078712035578), + target=(0.275794537878997,1.26294757366264,-0.0498743055531516), + zoom=1, + angle=3.26228798100531, + autoadjust=false); real a=-0.4; real b=0.95; @@ -32,12 +36,11 @@ g.push(point(A,0)--shift(-f*hy,f*h)*A--point(A,1)--shift(f*hy,-f*h)*reverse(A)-- g.push(point(B,0)--shift(f*hy,-f*h)*B--point(B,1)--shift(-f*hy,f*h)*reverse(B)--cycle); triple H=-0.1Z; -material m=material(lightgray,shininess=1.0); +material m=material(0.5*red+0.125*purple,shininess=1.0); for(path p : g) - draw(extrude(p,H),m); + draw(extrude(p,H),m,nolight); surface s=surface(g); draw(s,red,nolight); -draw(shift(H)*s,m); - +draw(shift(H)*s,m,nolight); diff --git a/Master/texmf-dist/doc/asymptote/examples/lowupint.asy b/Master/texmf-dist/doc/asymptote/examples/lowupint.asy index 3a14cd91104..1c3a0cd9488 100644 --- a/Master/texmf-dist/doc/asymptote/examples/lowupint.asy +++ b/Master/texmf-dist/doc/asymptote/examples/lowupint.asy @@ -8,8 +8,8 @@ void rectangle(real a, real b, real c, real h(real,real)) real height=(a < c && c < b) ? f(c) : h(f(a),f(b)); pair p=(a,0), q=(b,height); path g=box(p,q); - fill(g,lightgray); - draw(g); + fill(g,lightgray); + draw(g); } void partition(real a, real b, real c, real h(real,real)) diff --git a/Master/texmf-dist/doc/asymptote/examples/markers1.asy b/Master/texmf-dist/doc/asymptote/examples/markers1.asy index a3af424616d..7db56315f91 100644 --- a/Master/texmf-dist/doc/asymptote/examples/markers1.asy +++ b/Master/texmf-dist/doc/asymptote/examples/markers1.asy @@ -64,7 +64,7 @@ label("$10$",point(p,0),3W); p=T*p; draw(p,CircleBarIntervalMarker(n=3,angle=30,barsize=8mm,radius=2mm, FillDraw(.8red),circleabove=true,dotframe, - above=false)); + above=false)); label("$11$",point(p,0),3W); //line 12 ********** diff --git a/Master/texmf-dist/doc/asymptote/examples/markregular.asy b/Master/texmf-dist/doc/asymptote/examples/markregular.asy index 716599fbcf1..ea08b952238 100644 --- a/Master/texmf-dist/doc/asymptote/examples/markregular.asy +++ b/Master/texmf-dist/doc/asymptote/examples/markregular.asy @@ -8,8 +8,8 @@ real ymin=-2,ymax=10; real f(real x) {return x^2;} marker cross=marker(scale(4)*rotate(45)*cross(4), - markuniform(new pair(real t) {return Scale((t,f(t)));}, - xmin,xmax,round(2*(xmax-xmin))),1bp+red); + markuniform(new pair(real t) {return Scale((t,f(t)));}, + xmin,xmax,round(2*(xmax-xmin))),1bp+red); draw(graph(f,xmin,xmax,n=400),linewidth(1bp),cross); @@ -17,10 +17,10 @@ ylimits(-2.5,10,Crop); xaxis(Label("$x$",position=EndPoint, align=NE),xmin=xmin,xmax=xmax, Ticks(scale(.7)*Label(align=E),NoZero,begin=false,beginlabel=false, - end=false,endlabel=false,Step=1,step=.25, - Size=1mm, size=.5mm,pTick=black,ptick=gray),Arrow); + end=false,endlabel=false,Step=1,step=.25, + Size=1mm, size=.5mm,pTick=black,ptick=gray),Arrow); yaxis(Label("$y$",position=EndPoint, align=NE),ymin=ymin,ymax=ymax, Ticks(scale(.7)*Label(),NoZero,begin=false,beginlabel=false, - end=false,endlabel=false,Step=1,step=.25,Size=1mm,size=.5mm, + end=false,endlabel=false,Step=1,step=.25,Size=1mm,size=.5mm, pTick=black,ptick=gray),Arrow); diff --git a/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy b/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy index e0fdcd0f6c7..9f331c7a130 100644 --- a/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy +++ b/Master/texmf-dist/doc/asymptote/examples/mergeExample.asy @@ -20,11 +20,11 @@ draw(p); path l = point(p[1],2)--point(p[0],4); draw(l,red); for(int i = 0; i < p.length; ++i) -{ - real[][] ts = intersections(l,p[i]); - for(real[] t:ts) - dot(point(l,t[0])); -} + { + real[][] ts = intersections(l,p[i]); + for(real[] t:ts) + dot(point(l,t[0])); + } path l2 = point(l,intersections(l,p[0])[0][0])--point(l,intersections(l,p[2])[1][0]); real to = intersections(l,p[0])[0][1]; real ti = intersections(l,p[2])[1][1]; @@ -71,7 +71,7 @@ filldraw(shift(w)*q,lightgrey); real x = min(p).x - 4.5w; string l = "abcdef"; for(int i = 0; i < 6; ++i) -{ - label("("+substr(l,i,1)+")",(x,min(p).y),3S,fontsize(10pt)); - x += w; -} + { + label("("+substr(l,i,1)+")",(x,min(p).y),3S,fontsize(10pt)); + x += w; + } diff --git a/Master/texmf-dist/doc/asymptote/examples/mosaic.asy b/Master/texmf-dist/doc/asymptote/examples/mosaic.asy index 0f19117c4b3..0a59ca56918 100644 --- a/Master/texmf-dist/doc/asymptote/examples/mosaic.asy +++ b/Master/texmf-dist/doc/asymptote/examples/mosaic.asy @@ -19,7 +19,7 @@ path c_line(path p) { // returns the path obtained by adding to p a copy rotated // around the endpoint of p by 180 degrees // works only if the initial point and the endpoint of p are different - // a c_line is symetric with respect to the center of + // a c_line is symetric with respect to the center of // the straight line between its endpoints // return p..rotate(180,point(p,length(p)))*reverse(p); @@ -41,7 +41,7 @@ path tounitcircle(path p, int n=300) { } void centershade(picture pic=currentpicture, path p, pen in, pen out, - pen drawpen=currentpen) { + pen drawpen=currentpen) { pair center=0.5(max(p)+min(p)); real radius=0.5abs(max(p)-min(p)); radialshade(pic,p,in,center,0,out,center,radius); @@ -86,7 +86,7 @@ for(int i=0; i < entry.length; ++i) { } for(int j=0; j < 7; ++j) { - tage[j]=shift((j,yc)+diff)*kasten; + tage[j]=shift((j,yc)+diff)*kasten; filldraw(tage[j],farbe(j),black+2bp); label(wochentag[j],zentrum(tage[j]),Palatino()); for(int i=0; i < 6; ++i) {bx[i][j]=shift((j,-yc*i)+diff)*kasten; @@ -94,10 +94,10 @@ for(int j=0; j < 7; ++j) { if(holiday[i][j]) {filldraw(bx[i][j],farbe(6),black+2bp);}; }; }; -filldraw(Gkasten,0.3white,black+2bp); +filldraw(Gkasten,0.3white,black+2bp); for(int j=0; j < 7; ++j) for(int i=0; i < 6 ; ++i) {label(entry[i][j],zentrum(bx[i][j]),Palatino());} -label("\Huge Februar 2006",zentrum(Gkasten),Palatino()+white); +label("\Huge Februar 2006",zentrum(Gkasten),Palatino()+white); // Zentrum=center; Februar=february add(kalender,currentpicture); erase(); @@ -139,9 +139,9 @@ for(int j=-4; j < 4; ++j) (1-i/10)*chartreuse,black+2bp); } } - -// Now we produce the bijective images inside -// a suitably scaled unitcircle + +// Now we produce the bijective images inside +// a suitably scaled unitcircle for(int k=-1; k < 2; ++k) for(int l=-1; l < 2; ++l) { transform tr=shift(k*tri+l*trii); @@ -149,11 +149,11 @@ for(int k=-1; k < 2; ++k) centershade(temppic,scale(2.5)*tounitcircle(tr*kontur[i],380), (1-i/10)*white,(1-i/10)*orange,black+2bp); } - } - -add(temppic); + } + +add(temppic); -// We clip the picture to a suitable box +// We clip the picture to a suitable box pair piccenter=0.5*(temppic.min()+temppic.max()); pair picbox=temppic.max()-temppic.min(); real picwidth=picbox.x; @@ -162,4 +162,4 @@ transform trialtrans=shift(0,-1.5)*shift(piccenter)*yscale(scalefactor)* clip(trialtrans*unitsquare); // add the calendar at a suitable position -add(kalender.fit(0.75*outputwidth),interp(point(S),point(N),1/13)); +add(kalender.fit(0.75*outputwidth),interp(point(S),point(N),1/13)); diff --git a/Master/texmf-dist/doc/asymptote/examples/mosquito.asy b/Master/texmf-dist/doc/asymptote/examples/mosquito.asy index 7e299d264d3..7b113eabb7c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/mosquito.asy +++ b/Master/texmf-dist/doc/asymptote/examples/mosquito.asy @@ -49,7 +49,7 @@ draw(minipage("\flushright{viral incubation rate ($k$)}",40pt),ei, RightSide,Arrow,PenMargin); path ise=point(infectious,E)--point(se,0.5); - + draw("$(ac)$",ise,LeftSide,dashed,Arrow,PenMargin); label(minipage("\flushleft{biting rate $\times$ transmission probability}",50pt),point(infectious,SE),dir(-60)+S); @@ -58,7 +58,7 @@ path isi=point(infectiousM,W)--point(si,2.0/3); draw("$(ab)$",isi,LeftSide,dashed,Arrow,PenMargin); draw(se,LeftSide,Arrow,PenMargin); - + real t=2.0; draw("$\beta_M$", point(susceptibleM,E){right}..tension t..{left}point(larval,E), diff --git a/Master/texmf-dist/doc/asymptote/examples/near_earth.asy b/Master/texmf-dist/doc/asymptote/examples/near_earth.asy index afdf64c6b5c..faff0120305 100644 --- a/Master/texmf-dist/doc/asymptote/examples/near_earth.asy +++ b/Master/texmf-dist/doc/asymptote/examples/near_earth.asy @@ -7,7 +7,7 @@ size(300,0); pen thickp=linewidth(0.5mm); real radius=0.8, lambda=37, aux=60; -currentprojection=perspective(4,1,2); +currentprojection=perspective(4,1,2); // Planes pen bg=gray(0.9)+opacity(0.5); @@ -21,7 +21,7 @@ draw(Label("$x$",1),O--r*X,p,Arrow3); draw(Label("$y$",1),O--r*Y,p,Arrow3); draw(Label("$z$",1),O--r*Z,p,Arrow3); label("$\rm O$",(0,0,0),W); - + // Point Q triple pQ=radius*dir(lambda,aux); draw(O--radius*dir(90,aux),dashed); diff --git a/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy b/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy index 5d9775d44dc..9bbbf282aca 100644 --- a/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy +++ b/Master/texmf-dist/doc/asymptote/examples/oneoverx.asy @@ -8,7 +8,7 @@ bool3 branch(real x) static int lastsign=0; if(x == 0) return false; int sign=sgn(x); - bool b=lastsign == 0 || sign == lastsign; + bool b=lastsign == 0 || sign == lastsign; lastsign=sign; return b ? true : default; } diff --git a/Master/texmf-dist/doc/asymptote/examples/p-orbital.asy b/Master/texmf-dist/doc/asymptote/examples/pOrbital.asy index 4638aa21a22..fc8e96e7fe0 100644 --- a/Master/texmf-dist/doc/asymptote/examples/p-orbital.asy +++ b/Master/texmf-dist/doc/asymptote/examples/pOrbital.asy @@ -3,7 +3,7 @@ import palette; size(200); currentprojection=orthographic(6,8,2); viewportmargin=(1cm,0); - + real c0=0.1; real f(real r) {return r*(1-r/6)*exp(-r/3);} @@ -27,5 +27,5 @@ s.colors(palette(s.map(abs),Gradient(palegreen,heavyblue))); render render=render(compression=Low,merge=true); draw(s,render); draw(zscale3(-1)*s); - + axes3("$x$","$y$","$z$",Arrow3); diff --git a/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy b/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy index 73a78460e04..ef8cf94b893 100644 --- a/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy +++ b/Master/texmf-dist/doc/asymptote/examples/pathintersectsurface.asy @@ -7,11 +7,12 @@ path3 g=randompath3(10); draw(g,red); -triple[][] P={ - {(0,0,0),(1,0,0),(1,0,0),(2,0,0)}, - {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)}, - {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)}, - {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)}}; +triple[][] P= + { + {(0,0,0),(1,0,0),(1,0,0),(2,0,0)}, + {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)}, + {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)}, + {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)}}; surface s=surface(patch(P)); s.append(unitplane); diff --git a/Master/texmf-dist/doc/asymptote/examples/pdb.asy b/Master/texmf-dist/doc/asymptote/examples/pdb.asy index 43b771fdd0d..68cec9e3671 100644 --- a/Master/texmf-dist/doc/asymptote/examples/pdb.asy +++ b/Master/texmf-dist/doc/asymptote/examples/pdb.asy @@ -24,7 +24,7 @@ string filename="100d.pdb1"; string prefix=stripextension(filename); file data=input(filename); -pen color(string e) +pen color(string e) { e=replace(e," ",""); int n=length(e); @@ -33,7 +33,7 @@ pen color(string e) int index=find(Element == e); if(index < 0) return currentpen; return rgb(Hexcolor[index]); -} +} // ATOM string[] name,altLoc,resName,chainID,iCode,element,charge; @@ -42,7 +42,7 @@ real[][] occupancy,tempFactor; bool newchain=true; -struct bond +struct bond { int i,j; void operator init(int i, int j) { @@ -53,7 +53,7 @@ struct bond bond[] bonds; -struct atom +struct atom { string name; triple v; @@ -87,8 +87,8 @@ while(true) { serial=(int) substr(line,6,5); a.name=substr(line,76,2); a.v=((real) substr(line,30,8), - (real) substr(line,38,8), - (real) substr(line,46,8)); + (real) substr(line,38,8), + (real) substr(line,46,8)); } if(ATOM) { if(newchain) { @@ -109,12 +109,12 @@ while(true) { int i=(int) substr(line,6,5); while(true) { string s=replace(substr(line,11+k,5)," ",""); - if(s == "") break; + if(s == "") break; k += 5; int j=(int) s; if(j <= i) continue; bonds.push(bond(i,j)); - } + } } } @@ -158,7 +158,6 @@ string options; string viewfilename=prefix+".views"; if(!error(input(viewfilename,check=false))) - options="3Dviews="+viewfilename; + options="3Dviews="+locatefile(viewfilename); -shipout(prefix,options=options); -currentpicture.erase(); +shipout(options=options); diff --git a/Master/texmf-dist/doc/asymptote/examples/pipes.asy b/Master/texmf-dist/doc/asymptote/examples/pipes.asy index 383fda80fd5..83c9ec609d4 100644 --- a/Master/texmf-dist/doc/asymptote/examples/pipes.asy +++ b/Master/texmf-dist/doc/asymptote/examples/pipes.asy @@ -4,14 +4,14 @@ import graph3; import palette; size(8cm); -currentprojection=perspective( -camera=(13.3596389245356,8.01038090435314,14.4864483364785), -up=(-0.0207054323419367,-0.00472438375047319,0.0236460907598947), -target=(-1.06042550499095,2.68154529985845,0.795007562120261)); +currentprojection= + perspective(camera=(13.3596389245356,8.01038090435314,14.4864483364785), + up=(-0.0207054323419367,-0.00472438375047319,0.0236460907598947), + target=(-1.06042550499095,2.68154529985845,0.795007562120261)); defaultpen(fontsize(6pt)); -// draw coordinates and frames +// draw coordinates and frames // axis1 is defined by z axis of TBase // axis2 is defined by z axis of TEnd void DrawFrame(transform3 TBase, transform3 TEnd, string s) @@ -25,57 +25,57 @@ void DrawFrame(transform3 TBase, transform3 TEnd, string s) real[][] A= { - {v1.x,-v2.x,-n.x}, - {v1.y,-v2.y,-n.y}, - {v1.z,-v2.z,-n.z} + {v1.x,-v2.x,-n.x}, + {v1.y,-v2.y,-n.y}, + {v1.z,-v2.z,-n.z} }; triple vb=p2-p1; real[] b={vb.x,vb.y,vb.z}; - - // Get the extention along vector v1 and v2, + + // Get the extention along vector v1 and v2, // so, we can get the common normal between two axis real[] x=solve(A,b); real s1=x[0]; real s2=x[1]; - + // get foot of a perpendicular on both axies triple foot1=p1+s1*v1; triple foot2=p2+s2*v2; - + // draw two axis triple axis_a,axis_b; axis_a=p1+s1*v1*1.5; axis_b=p1-s1*v1*1.5; draw(axis_a--axis_b); - + axis_a=p2+s2*v2*1.5; axis_b=p2-s2*v2*1.5; draw(axis_a--axis_b); - - // draw "a"(common normal) - draw(Label("$a_{"+s+"}$"),foot1--foot2,linewidth(1pt)); + + // draw "a"(common normal) + draw(Label("$a_{"+s+"}$"),foot1--foot2,linewidth(1pt)); // draw the coordinates frame triple dx,dy,dz,org; real length=0.8; - + org=foot1; dx =length*unit(foot2-foot1); // define the x axis of the frame on "a" dz =length*unit(v1); // define the z axis which is along axis1 dy =length*unit(cross(dz,dx)); - + draw(Label("$X_{"+s+"}$",1,align=-dy-dz),org--(org+dx),red+linewidth(1.5pt), Arrow3(8)); - draw(Label("$Y_{"+s+"}$",1,align=2dy-dz-dx),org--(org+dy), - green+linewidth(1.5pt), Arrow3(8)); + draw(Label("$Y_{"+s+"}$",1,align=2dy-dz-dx),org--(org+dy), + green+linewidth(1.5pt), Arrow3(8)); draw(Label("$Z_{"+s+"}$",1,align=-2dx-dy),org--(org+dz), - blue+linewidth(1.5pt), Arrow3(8)); - + blue+linewidth(1.5pt), Arrow3(8)); + dot(Label("$O_{"+s+"}$",align =-dx-dz,black),org,black); // origin - + } void DrawLink(transform3 TBase, transform3 TEnd, pen objStyle,string s) @@ -85,27 +85,27 @@ void DrawLink(transform3 TBase, transform3 TEnd, pen objStyle,string s) path3 generator=(0.5*r,0,h)--(r,0,h)--(r,0,0)--(0.5*r,0,0); revolution vase=revolution(O,generator,0,360); surface objSurface=surface(vase); - + render render=render(merge=true); // draw two cylinders draw(TBase*objSurface,objStyle,render); draw(TEnd*shift((0,0,-h+1e-5))*objSurface,objStyle,render); - + // draw the link between two cylinders triple pStart=TBase*(0.5*h*Z); triple pEnd =TEnd*(-0.5*h*Z); triple pControl1=0.25*(pEnd-pStart)+TBase*(0,0,h); triple pControl2=-0.25*(pEnd-pStart)+TEnd*(0,0,-h); path3 p=pStart..controls pControl1 and pControl2..pEnd; - draw(tube(p,scale(0.2)*unitsquare),objStyle,render); + draw(tube(p,scale(0.2)*unitsquare),objStyle,render); } // t1 and t2 define the starting frame and ending frame of the first link(i-1) transform3 t1=shift((0,0,1)); transform3 t2=shift((0,0,-1))*rotate(-20,Y)*shift((0,3,2)); // as, the two links were connected, so t2 is also the starting frame of link(i) -// t3 defines the ending frame of link(i) +// t3 defines the ending frame of link(i) transform3 t3=t2*rotate(40,Z)*shift((0,3,1.5))*rotate(-15,Y)*shift(-1.5*Z); // draw link(i-1) @@ -137,4 +137,4 @@ draw("$\theta_{i}$",arc(p0,p1a,p2),ArcArrow3(3)); // draw d_{i-1} triple org_i =t2*shift((0,0,1.5))*O; -draw(Label("$d_{i}$",0.13),p0--org_i,linewidth(1pt)); +draw(Label("$d_{i}$",0.13),p0--org_i,linewidth(1pt)); diff --git a/Master/texmf-dist/doc/asymptote/examples/poster.asy b/Master/texmf-dist/doc/asymptote/examples/poster.asy index cbcefc4bf69..b49d064d84e 100644 --- a/Master/texmf-dist/doc/asymptote/examples/poster.asy +++ b/Master/texmf-dist/doc/asymptote/examples/poster.asy @@ -16,7 +16,7 @@ label(background,"$x\sin\frac{1}{x}$",F(0.92/pi),3SE,grey+fontsize(14pt)); frame f=background.fit(); box(f,RadialShade(yellow,0.6*yellow+red),above=false); background.erase(); -add(background,f); +add(background,f); title("Young Researchers' Conference",align=3S,fontsize(48pt)); center("University of Alberta, Edmonton, April 1--2, 2006"); diff --git a/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy b/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy index 8bbe7f38c3d..a6755af2098 100644 --- a/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy +++ b/Master/texmf-dist/doc/asymptote/examples/projectrevolution.asy @@ -1,17 +1,17 @@ -import solids; -import palette; - -currentprojection=orthographic(20,0,3); - -size(400,300,IgnoreAspect); - +import solids; +import palette; + +currentprojection=orthographic(20,0,3); + +size(400,300,IgnoreAspect); + revolution r=revolution(graph(new triple(real x) { - return (x,0,sin(x)*exp(-x/2));},0,2pi,operator ..),axis=Z); -surface s=surface(r); - + return (x,0,sin(x)*exp(-x/2));},0,2pi,operator ..),axis=Z); +surface s=surface(r); + surface S=planeproject(shift(-Z)*unitsquare3)*s; S.colors(palette(s.map(zpart),Rainbow())); render render=render(compression=Low,merge=true); draw(S,render); -draw(s,lightgray,render); +draw(s,lightgray,render); diff --git a/Master/texmf-dist/doc/asymptote/examples/rainbow.asy b/Master/texmf-dist/doc/asymptote/examples/rainbow.asy index c85282a87b1..1da0e07ae7c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/rainbow.asy +++ b/Master/texmf-dist/doc/asymptote/examples/rainbow.asy @@ -4,7 +4,7 @@ pen indigo=rgb(102/255,0,238/255); void rainbow(path g) { draw(new path[] {scale(1.3)*g,scale(1.2)*g,scale(1.1)*g,g, - scale(0.9)*g,scale(0.8)*g,scale(0.7)*g}, + scale(0.9)*g,scale(0.8)*g,scale(0.7)*g}, new pen[] {red,orange,yellow,green,blue,indigo,purple}); } diff --git a/Master/texmf-dist/doc/asymptote/examples/roll.asy b/Master/texmf-dist/doc/asymptote/examples/roll.asy index 4d15ac0febe..52b34b0ca26 100644 --- a/Master/texmf-dist/doc/asymptote/examples/roll.asy +++ b/Master/texmf-dist/doc/asymptote/examples/roll.asy @@ -3,7 +3,7 @@ import graph3; size(200,0); triple f(pair t) { -return(t.x+t.y/4+sin(t.y),cos(t.y),sin(t.y)); + return(t.x+t.y/4+sin(t.y),cos(t.y),sin(t.y)); } surface s=surface(f,(0,0),(2pi,2pi),7,20,Spline); diff --git a/Master/texmf-dist/doc/asymptote/examples/roundpath.asy b/Master/texmf-dist/doc/asymptote/examples/roundpath.asy index e6d31c6bc9c..58fa17e8267 100644 --- a/Master/texmf-dist/doc/asymptote/examples/roundpath.asy +++ b/Master/texmf-dist/doc/asymptote/examples/roundpath.asy @@ -22,7 +22,7 @@ draw(shift(-30,-30)*roundedpath(B,1), red); for (int i = 1; i < 20; ++i) // only round edges draw(shift(0,-30)*roundedpath(B,i/4), rgb(0.5, i*0.049,0) + linewidth(0.5)); -for (int i = 1; i < 20; ++i) // round edged and scale +for (int i = 1; i < 20; ++i) // round edged and scale draw(shift(0,-60)*roundedpath(B,i/4,1-i/50), rgb(1, 1 - i*0.049,i*0.049) + linewidth(0.5)); for (int i = 1; i < 50; ++i) // shift (round edged und scaled shifted version) diff --git a/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy b/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy index 27b89b9c384..85143f7acec 100644 --- a/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy +++ b/Master/texmf-dist/doc/asymptote/examples/secondaryaxis.asy @@ -26,7 +26,7 @@ picture secondary=secondaryY(new void(picture pic) { draw(pic,graph(pic,t,infectious,t >= 10 & t <= 15),red); yaxis(pic,Right,red,LeftTicks(begin=false,end=false)); }); - + add(secondary); label(shift(5mm*N)*"Proportion of crows",point(NW),E); diff --git a/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy b/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy index 44f0b6e8a3f..b4ee872aa15 100644 --- a/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy +++ b/Master/texmf-dist/doc/asymptote/examples/shadestroke.asy @@ -1,5 +1,5 @@ size(100); radialshade(W..N..E--(0,0),stroke=true, - red+linewidth(30),(0,0),0.25,yellow,(0,0),1); + red+linewidth(30),(0,0),0.25,yellow,(0,0),1); diff --git a/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy b/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy index 912fa3c889b..051411699f1 100644 --- a/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy +++ b/Master/texmf-dist/doc/asymptote/examples/sinxlex.asy @@ -3,7 +3,7 @@ import geometry; size(0,100); real theta=30; -pair A=(0,0); +pair A=(0,0); pair B=dir(theta); pair C=(1,0); pair D=(1,Tan(theta)); @@ -21,4 +21,4 @@ dot("$C$",C); dot("$D$",D); dot(("$E$"),E,S); label("$1$",A--B,LeftSide); - + diff --git a/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy b/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy index 0cbd15af741..107564601fb 100644 --- a/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy +++ b/Master/texmf-dist/doc/asymptote/examples/slidedemo.asy @@ -31,7 +31,7 @@ titlepage(title="Slides with {\tt Asymptote}: A Demo", author="John C. Bowman", institution="University of Alberta", date="\today", - url="http://asymptote.sf.net"); + url="https://asymptote.sourceforge.io"); outline("Basic Commands"); item("item"); @@ -112,7 +112,7 @@ add(pic.fit(0,14cm)); title("\mbox{Asymptote: 2D \& 3D Vector Graphics Language}"); asyinclude("logo3"); -center("\tt http://asymptote.sf.net"); +center("\tt https://asymptote.sourceforge.io"); center("(freely available under the LGPL license)"); bibliography("refs"); diff --git a/Master/texmf-dist/doc/asymptote/examples/slope.asy b/Master/texmf-dist/doc/asymptote/examples/slope.asy index ae7fb45daf9..832f8c13fc7 100644 --- a/Master/texmf-dist/doc/asymptote/examples/slope.asy +++ b/Master/texmf-dist/doc/asymptote/examples/slope.asy @@ -20,8 +20,8 @@ real Y0[]=new real[] {-1,2}; real[] F(real t, real[] y) { return sequence(new real(int m) {return f(t,y[M-m-1]);},M); - // return new real[] {exp((L[1]-1)*t)*y[1], - // -exp(-(L[1]-1)*t)*y[0]}; + // return new real[] {exp((L[1]-1)*t)*y[1], + // -exp(-(L[1]-1)*t)*y[0]}; // return new real[]{-y[0]^2}; } @@ -46,23 +46,23 @@ for(int i=0; i < n-1; ++i) { // real[] exact=new real[] {exp(-b)*sin(b),exp(-L[1]*b)*cos(b)}; for(int m=0; m < M; ++m) maxnorm=max(maxnorm,abs(S.y[S.y.length-1][m]-exact[m])); - if(maxnorm != 0) { - tau.push(dt); - // error.push(dt^-(order+1)*maxnorm); - error.push(maxnorm); - } + if(maxnorm != 0) { + tau.push(dt); + // error.push(dt^-(order+1)*maxnorm); + error.push(maxnorm); + } } /* -for(int i=0; i < n-1; ++i) { + for(int i=0; i < n-1; ++i) { real dt=(b-a)*lambda^(n-i); real maxnorm=0; for(int m=0; m < M; ++m) { - solution S=integrate(Y0[m],L[m],f,a,b,dt,dynamic=false,0.000,1000,RK4_375,verbose=false); - maxnorm=max(maxnorm,abs(S.y[S.y.length-1]-exact[m])); + solution S=integrate(Y0[m],L[m],f,a,b,dt,dynamic=false,0.000,1000,RK4_375,verbose=false); + maxnorm=max(maxnorm,abs(S.y[S.y.length-1]-exact[m])); } error2.push(dt^-order*maxnorm); -} + } */ //scale(Log,Log); diff --git a/Master/texmf-dist/doc/asymptote/examples/soccerball.asy b/Master/texmf-dist/doc/asymptote/examples/soccerball.asy index 5cf0f015055..68a95edbdca 100644 --- a/Master/texmf-dist/doc/asymptote/examples/soccerball.asy +++ b/Master/texmf-dist/doc/asymptote/examples/soccerball.asy @@ -1,43 +1,45 @@ import graph3; size(400); currentlight.background=palegreen; +settings.digits=15; defaultrender=render(compression=Zero,merge=true); real c=(1+sqrt(5))/2; - + triple[] z={(c,1,0),(-c,1,0),(-c,-1,0),(c,-1,0)}; triple[] x={(0,c,1),(0,-c,1),(0,-c,-1),(0,c,-1)}; triple[] y={(1,0,c),(1,0,-c),(-1,0,-c),(-1,0,c)}; - -triple[][] Q={ - {z[0],y[1],x[3],x[0],y[0],z[3]}, - {z[1],x[0],x[3],y[2],z[2],y[3]}, - {z[2],z[1],y[2],x[2],x[1],y[3]}, - {z[3],z[0],y[0],x[1],x[2],y[1]}, - {x[0],x[3],z[1],y[3],y[0],z[0]}, - {x[1],x[2],z[2],y[3],y[0],z[3]}, - {x[2],x[1],z[3],y[1],y[2],z[2]}, - {x[3],x[0],z[0],y[1],y[2],z[1]}, - {y[0],y[3],x[1],z[3],z[0],x[0]}, - {y[1],y[2],x[2],z[3],z[0],x[3]}, - {y[2],y[1],x[3],z[1],z[2],x[2]}, - {y[3],y[0],x[0],z[1],z[2],x[1]} -}; - + +triple[][] Q= + { + {z[0],y[1],x[3],x[0],y[0],z[3]}, + {z[1],x[0],x[3],y[2],z[2],y[3]}, + {z[2],z[1],y[2],x[2],x[1],y[3]}, + {z[3],z[0],y[0],x[1],x[2],y[1]}, + {x[0],x[3],z[1],y[3],y[0],z[0]}, + {x[1],x[2],z[2],y[3],y[0],z[3]}, + {x[2],x[1],z[3],y[1],y[2],z[2]}, + {x[3],x[0],z[0],y[1],y[2],z[1]}, + {y[0],y[3],x[1],z[3],z[0],x[0]}, + {y[1],y[2],x[2],z[3],z[0],x[3]}, + {y[2],y[1],x[3],z[1],z[2],x[2]}, + {y[3],y[0],x[0],z[1],z[2],x[1]} + }; + int nArc=4; path3 p=Arc(O,Q[0][0],Q[0][1],nArc); real R=abs(point(p,reltime(p,1/3))); - + triple[][] P; for(int i=0;i < Q.length;++i){ P[i]=new triple[] ; for(int j=0;j < Q[i].length;++j){ P[i][j]=Q[i][j]/R; - } -} - + } +} + // FIXME: Use a baryicentric coordinate mesh surface sphericaltriangle(triple center, triple A, triple B, triple C, int nu=3, int nv=nu) { @@ -48,10 +50,10 @@ surface sphericaltriangle(triple center, triple A, triple B, triple C, path3 cr=Arc(O,relpoint(tri2,p.x),relpoint(tri3,p.x),nArc); return relpoint(cr,p.y); }; - + return surface(tri,(0,0),(1-sqrtEpsilon,1),nu,nv,Spline); -} - +} + for(int i=0;i < P.length;++i){ triple[] pentagon=sequence(new triple(int k) { path3 p=Arc(O,P[i][0],P[i][k+1],nArc); @@ -64,8 +66,8 @@ for(int i=0;i < P.length;++i){ for(int i=0;i < 5;++i){ surface sf=sphericaltriangle(O,pentagon[i],M,pentagon[i+1]); draw(sf,black); - } -} + } +} for(int i=0;i < P.length;++i) { for(int j=1;j <= 5;++j) { @@ -85,6 +87,6 @@ for(int i=0;i < P.length;++i) { for(int i=0;i < 6;++i) { surface sf=sphericaltriangle(O,hexagon[i],M,hexagon[i+1]); draw(sf,white); - } - } + } + } } diff --git a/Master/texmf-dist/doc/asymptote/examples/spectrum.asy b/Master/texmf-dist/doc/asymptote/examples/spectrum.asy index a5d576921cf..95c5f8a0d1b 100644 --- a/Master/texmf-dist/doc/asymptote/examples/spectrum.asy +++ b/Master/texmf-dist/doc/asymptote/examples/spectrum.asy @@ -11,7 +11,7 @@ pen nm2rgb(real wl, real gamma=0.8, bool intensity=true) { if(wl > 510 && wl <= 580) {rgb=((wl-510)/70,1,0);} if(wl > 580 && wl <= 645) {rgb=(1,(645-wl)/65,0);} if(wl > 645 && wl <= 780) {rgb=(1,0,0);} - + real Intensity=1; if(intensity) { if(wl >= 700) {Intensity=0.3+0.7*(780-wl)/80;} diff --git a/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy b/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy index ca8b8c3d584..6585f7c2036 100644 --- a/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy +++ b/Master/texmf-dist/doc/asymptote/examples/sphereskeleton.asy @@ -1,9 +1,9 @@ -size(100); -import solids; +size(100); +import solids; currentprojection=orthographic(5,4,2); -revolution sphere=sphere(1); +revolution sphere=sphere(1); draw(surface(sphere),green+opacity(0.2)); draw(sphere,m=7,blue); diff --git a/Master/texmf-dist/doc/asymptote/examples/spiral3.asy b/Master/texmf-dist/doc/asymptote/examples/spiral3.asy index 727ca3f6d3a..79a15a52c41 100644 --- a/Master/texmf-dist/doc/asymptote/examples/spiral3.asy +++ b/Master/texmf-dist/doc/asymptote/examples/spiral3.asy @@ -1,8 +1,8 @@ import graph3; import palette; - + size3(10cm); - + currentprojection=orthographic(5,4,2); viewportmargin=(2cm,0); diff --git a/Master/texmf-dist/doc/asymptote/examples/spline.asy b/Master/texmf-dist/doc/asymptote/examples/spline.asy index 9d79ef3a962..f01ba3306e6 100644 --- a/Master/texmf-dist/doc/asymptote/examples/spline.asy +++ b/Master/texmf-dist/doc/asymptote/examples/spline.asy @@ -1,15 +1,15 @@ -import graph; -import interpolate; - -size(15cm,15cm,IgnoreAspect); - -real a=1997, b=2002; -int n=5; -real[] xpt=a+sequence(n+1)*(b-a)/n; -real[] ypt={31,36,26,22,21,24}; +import graph; +import interpolate; + +size(15cm,15cm,IgnoreAspect); + +real a=1997, b=2002; +int n=5; +real[] xpt=a+sequence(n+1)*(b-a)/n; +real[] ypt={31,36,26,22,21,24}; horner h=diffdiv(xpt,ypt); fhorner L=fhorner(h); - + scale(false,true); pen p=linewidth(1); diff --git a/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy b/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy index f8578bbbcc9..1fa9325f4ce 100644 --- a/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy +++ b/Master/texmf-dist/doc/asymptote/examples/splitpatch.asy @@ -33,10 +33,10 @@ struct split if(depth > 0) write(pt.tree[i],qt.tree[j],Pi,Qj,depth); } - } + } } } - + // Output the subpatches of p from subdivision. void read(surface[] S, tree t, triple[][] p, int depth=n) { --depth; @@ -44,7 +44,7 @@ struct split triple[][][] P=Split(p); for(int i=0; i < 2; ++i) { - if(t.tree.initialized(i)) + if(t.tree.initialized(i)) read(S,t.tree[i],P[i],depth); else { S[0].push(patch(P[i])); @@ -62,19 +62,21 @@ struct split currentprojection=orthographic(0,0,1); -triple[][] A={ - {(0,0,0),(1,0,0),(1,0,0),(2,0,0)}, - {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)}, - {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)}, - {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)} -}; +triple[][] A= + { + {(0,0,0),(1,0,0),(1,0,0),(2,0,0)}, + {(0,4/3,0),(2/3,4/3,2),(4/3,4/3,2),(2,4/3,0)}, + {(0,2/3,0),(2/3,2/3,0),(4/3,2/3,0),(2,2/3,0)}, + {(0,2,0),(2/3,2,0),(4/3,2,0),(2,2,0)} + }; -triple[][] B={ - {(0.5,0,-1),(0.5,1,-1),(0.5,2,-1),(0.5,3,-1)}, - {(0.5,0,0),(0.5,1,0),(0.5,2,0),(0.5,3,0)}, - {(0.5,0,1),(0.5,1,1),(0.5,2,1),(0.5,3,1)}, - {(0.5,0,2),(0.5,1,2),(0.5,2,2),(0.5,3,2)} -}; +triple[][] B= + { + {(0.5,0,-1),(0.5,1,-1),(0.5,2,-1),(0.5,3,-1)}, + {(0.5,0,0),(0.5,1,0),(0.5,2,0),(0.5,3,0)}, + {(0.5,0,1),(0.5,1,1),(0.5,2,1),(0.5,3,1)}, + {(0.5,0,2),(0.5,1,2),(0.5,2,2),(0.5,3,2)} + }; split S=split(B,A); diff --git a/Master/texmf-dist/doc/asymptote/examples/spring.asy b/Master/texmf-dist/doc/asymptote/examples/spring.asy index cbfb256eee4..4427d3a0f8c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/spring.asy +++ b/Master/texmf-dist/doc/asymptote/examples/spring.asy @@ -2,7 +2,7 @@ pair coilpoint(real lambda, real r, real t) { return (2.0*lambda*t+r*cos(t),r*sin(t)); } - + guide coil(guide g=nullpath, real lambda, real r, real a, real b, int n) { real width=(b-a)/n; @@ -15,14 +15,14 @@ guide coil(guide g=nullpath, real lambda, real r, real a, real b, int n) void drawspring(real x, string label) { real r=8; - real t1=-pi; + real t1=-pi; real t2=10*pi; real lambda=(t2-t1+x)/(t2-t1); pair b=coilpoint(lambda,r,t1); pair c=coilpoint(lambda,r,t2); pair a=b-20; pair d=c+20; - + draw(a--b,BeginBar(2*barsize())); draw(c--d); draw(coil(lambda,r,t1,t2,100)); diff --git a/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy b/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy index 639333ec476..6cf847e9c06 100644 --- a/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy +++ b/Master/texmf-dist/doc/asymptote/examples/stereoscopic.asy @@ -1,11 +1,11 @@ import three; - + currentprojection=perspective(50*dir(70,15)); picture pic; unitsize(pic,1cm); draw(pic,xscale3(10)*unitcube,yellow,blue); - + addStereoViews(pic); diff --git a/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy b/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy index f9413091d1c..2e0a3b0f4d4 100644 --- a/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy +++ b/Master/texmf-dist/doc/asymptote/examples/strokeshade.asy @@ -1,4 +1,4 @@ size(100); guide g=(0,0)..controls(70,30) and (-40,30)..(30,0); latticeshade(g,stroke=true,linewidth(10), - new pen[][] {{red,orange,yellow},{green,blue,purple}}); + new pen[][] {{red,orange,yellow},{green,blue,purple}}); diff --git a/Master/texmf-dist/doc/asymptote/examples/teapot.asy b/Master/texmf-dist/doc/asymptote/examples/teapot.asy index bff93ace194..f3328151fde 100644 --- a/Master/texmf-dist/doc/asymptote/examples/teapot.asy +++ b/Master/texmf-dist/doc/asymptote/examples/teapot.asy @@ -5,168 +5,200 @@ size(20cm); currentprojection=perspective(250,-250,250); currentlight=Viewport; -triple[][][] Q={ +triple[][][] Q= { + { {(39.68504,0,68.0315),(37.91339,0,71.75197),(40.74803,0,71.75197),(42.51969,0,68.0315)}, {(39.68504,-22.22362,68.0315),(37.91339,-21.2315,71.75197),(40.74803,-22.8189,71.75197),(42.51969,-23.81102,68.0315)}, {(22.22362,-39.68504,68.0315),(21.2315,-37.91339,71.75197),(22.8189,-40.74803,71.75197),(23.81102,-42.51969,68.0315)}, {(0,-39.68504,68.0315),(0,-37.91339,71.75197),(0,-40.74803,71.75197),(0,-42.51969,68.0315)} - },{ + }, + { {(0,-39.68504,68.0315),(0,-37.91339,71.75197),(0,-40.74803,71.75197),(0,-42.51969,68.0315)}, {(-22.22362,-39.68504,68.0315),(-21.2315,-37.91339,71.75197),(-22.8189,-40.74803,71.75197),(-23.81102,-42.51969,68.0315)}, {(-39.68504,-22.22362,68.0315),(-37.91339,-21.2315,71.75197),(-40.74803,-22.8189,71.75197),(-42.51969,-23.81102,68.0315)}, {(-39.68504,0,68.0315),(-37.91339,0,71.75197),(-40.74803,0,71.75197),(-42.51969,0,68.0315)} - },{ + }, + { {(-39.68504,0,68.0315),(-37.91339,0,71.75197),(-40.74803,0,71.75197),(-42.51969,0,68.0315)}, {(-39.68504,22.22362,68.0315),(-37.91339,21.2315,71.75197),(-40.74803,22.8189,71.75197),(-42.51969,23.81102,68.0315)}, {(-22.22362,39.68504,68.0315),(-21.2315,37.91339,71.75197),(-22.8189,40.74803,71.75197),(-23.81102,42.51969,68.0315)}, {(0,39.68504,68.0315),(0,37.91339,71.75197),(0,40.74803,71.75197),(0,42.51969,68.0315)} - },{ + }, + { {(0,39.68504,68.0315),(0,37.91339,71.75197),(0,40.74803,71.75197),(0,42.51969,68.0315)}, {(22.22362,39.68504,68.0315),(21.2315,37.91339,71.75197),(22.8189,40.74803,71.75197),(23.81102,42.51969,68.0315)}, {(39.68504,22.22362,68.0315),(37.91339,21.2315,71.75197),(40.74803,22.8189,71.75197),(42.51969,23.81102,68.0315)}, {(39.68504,0,68.0315),(37.91339,0,71.75197),(40.74803,0,71.75197),(42.51969,0,68.0315)} - },{ + }, + { {(42.51969,0,68.0315),(49.60629,0,53.1496),(56.69291,0,38.26771),(56.69291,0,25.51181)}, {(42.51969,-23.81102,68.0315),(49.60629,-27.77952,53.1496),(56.69291,-31.74803,38.26771),(56.69291,-31.74803,25.51181)}, {(23.81102,-42.51969,68.0315),(27.77952,-49.60629,53.1496),(31.74803,-56.69291,38.26771),(31.74803,-56.69291,25.51181)}, {(0,-42.51969,68.0315),(0,-49.60629,53.1496),(0,-56.69291,38.26771),(0,-56.69291,25.51181)} - },{ + }, + { {(0,-42.51969,68.0315),(0,-49.60629,53.1496),(0,-56.69291,38.26771),(0,-56.69291,25.51181)}, {(-23.81102,-42.51969,68.0315),(-27.77952,-49.60629,53.1496),(-31.74803,-56.69291,38.26771),(-31.74803,-56.69291,25.51181)}, {(-42.51969,-23.81102,68.0315),(-49.60629,-27.77952,53.1496),(-56.69291,-31.74803,38.26771),(-56.69291,-31.74803,25.51181)}, {(-42.51969,0,68.0315),(-49.60629,0,53.1496),(-56.69291,0,38.26771),(-56.69291,0,25.51181)} - },{ + }, + { {(-42.51969,0,68.0315),(-49.60629,0,53.1496),(-56.69291,0,38.26771),(-56.69291,0,25.51181)}, {(-42.51969,23.81102,68.0315),(-49.60629,27.77952,53.1496),(-56.69291,31.74803,38.26771),(-56.69291,31.74803,25.51181)}, {(-23.81102,42.51969,68.0315),(-27.77952,49.60629,53.1496),(-31.74803,56.69291,38.26771),(-31.74803,56.69291,25.51181)}, {(0,42.51969,68.0315),(0,49.60629,53.1496),(0,56.69291,38.26771),(0,56.69291,25.51181)} - },{ + }, + { {(0,42.51969,68.0315),(0,49.60629,53.1496),(0,56.69291,38.26771),(0,56.69291,25.51181)}, {(23.81102,42.51969,68.0315),(27.77952,49.60629,53.1496),(31.74803,56.69291,38.26771),(31.74803,56.69291,25.51181)}, {(42.51969,23.81102,68.0315),(49.60629,27.77952,53.1496),(56.69291,31.74803,38.26771),(56.69291,31.74803,25.51181)}, {(42.51969,0,68.0315),(49.60629,0,53.1496),(56.69291,0,38.26771),(56.69291,0,25.51181)} - },{ + }, + { {(56.69291,0,25.51181),(56.69291,0,12.7559),(42.51969,0,6.377957),(42.51969,0,4.251961)}, {(56.69291,-31.74803,25.51181),(56.69291,-31.74803,12.7559),(42.51969,-23.81102,6.377957),(42.51969,-23.81102,4.251961)}, {(31.74803,-56.69291,25.51181),(31.74803,-56.69291,12.7559),(23.81102,-42.51969,6.377957),(23.81102,-42.51969,4.251961)}, {(0,-56.69291,25.51181),(0,-56.69291,12.7559),(0,-42.51969,6.377957),(0,-42.51969,4.251961)} - },{ + }, + { {(0,-56.69291,25.51181),(0,-56.69291,12.7559),(0,-42.51969,6.377957),(0,-42.51969,4.251961)}, {(-31.74803,-56.69291,25.51181),(-31.74803,-56.69291,12.7559),(-23.81102,-42.51969,6.377957),(-23.81102,-42.51969,4.251961)}, {(-56.69291,-31.74803,25.51181),(-56.69291,-31.74803,12.7559),(-42.51969,-23.81102,6.377957),(-42.51969,-23.81102,4.251961)}, {(-56.69291,0,25.51181),(-56.69291,0,12.7559),(-42.51969,0,6.377957),(-42.51969,0,4.251961)} - },{ + }, + { {(-56.69291,0,25.51181),(-56.69291,0,12.7559),(-42.51969,0,6.377957),(-42.51969,0,4.251961)}, {(-56.69291,31.74803,25.51181),(-56.69291,31.74803,12.7559),(-42.51969,23.81102,6.377957),(-42.51969,23.81102,4.251961)}, {(-31.74803,56.69291,25.51181),(-31.74803,56.69291,12.7559),(-23.81102,42.51969,6.377957),(-23.81102,42.51969,4.251961)}, {(0,56.69291,25.51181),(0,56.69291,12.7559),(0,42.51969,6.377957),(0,42.51969,4.251961)} - },{ + }, + { {(0,56.69291,25.51181),(0,56.69291,12.7559),(0,42.51969,6.377957),(0,42.51969,4.251961)}, {(31.74803,56.69291,25.51181),(31.74803,56.69291,12.7559),(23.81102,42.51969,6.377957),(23.81102,42.51969,4.251961)}, {(56.69291,31.74803,25.51181),(56.69291,31.74803,12.7559),(42.51969,23.81102,6.377957),(42.51969,23.81102,4.251961)}, {(56.69291,0,25.51181),(56.69291,0,12.7559),(42.51969,0,6.377957),(42.51969,0,4.251961)} - },{ + }, + { {(-45.35433,0,57.40157),(-65.19685,0,57.40157),(-76.53543,0,57.40157),(-76.53543,0,51.02362)}, {(-45.35433,-8.503932,57.40157),(-65.19685,-8.503932,57.40157),(-76.53543,-8.503932,57.40157),(-76.53543,-8.503932,51.02362)}, {(-42.51969,-8.503932,63.77952),(-70.86614,-8.503932,63.77952),(-85.03937,-8.503932,63.77952),(-85.03937,-8.503932,51.02362)}, {(-42.51969,0,63.77952),(-70.86614,0,63.77952),(-85.03937,0,63.77952),(-85.03937,0,51.02362)} - },{ + }, + { {(-42.51969,0,63.77952),(-70.86614,0,63.77952),(-85.03937,0,63.77952),(-85.03937,0,51.02362)}, {(-42.51969,8.503932,63.77952),(-70.86614,8.503932,63.77952),(-85.03937,8.503932,63.77952),(-85.03937,8.503932,51.02362)}, {(-45.35433,8.503932,57.40157),(-65.19685,8.503932,57.40157),(-76.53543,8.503932,57.40157),(-76.53543,8.503932,51.02362)}, {(-45.35433,0,57.40157),(-65.19685,0,57.40157),(-76.53543,0,57.40157),(-76.53543,0,51.02362)} - },{ + }, + { {(-76.53543,0,51.02362),(-76.53543,0,44.64566),(-70.86614,0,31.88976),(-56.69291,0,25.51181)}, {(-76.53543,-8.503932,51.02362),(-76.53543,-8.503932,44.64566),(-70.86614,-8.503932,31.88976),(-56.69291,-8.503932,25.51181)}, {(-85.03937,-8.503932,51.02362),(-85.03937,-8.503932,38.26771),(-75.11811,-8.503932,26.5748),(-53.85826,-8.503932,17.00787)}, {(-85.03937,0,51.02362),(-85.03937,0,38.26771),(-75.11811,0,26.5748),(-53.85826,0,17.00787)} - },{ + }, + { {(-85.03937,0,51.02362),(-85.03937,0,38.26771),(-75.11811,0,26.5748),(-53.85826,0,17.00787)}, {(-85.03937,8.503932,51.02362),(-85.03937,8.503932,38.26771),(-75.11811,8.503932,26.5748),(-53.85826,8.503932,17.00787)}, {(-76.53543,8.503932,51.02362),(-76.53543,8.503932,44.64566),(-70.86614,8.503932,31.88976),(-56.69291,8.503932,25.51181)}, {(-76.53543,0,51.02362),(-76.53543,0,44.64566),(-70.86614,0,31.88976),(-56.69291,0,25.51181)} - },{ + }, + { {(48.18897,0,40.3937),(73.70078,0,40.3937),(65.19685,0,59.52755),(76.53543,0,68.0315)}, {(48.18897,-18.70866,40.3937),(73.70078,-18.70866,40.3937),(65.19685,-7.086619,59.52755),(76.53543,-7.086619,68.0315)}, {(48.18897,-18.70866,17.00787),(87.87401,-18.70866,23.38582),(68.0315,-7.086619,57.40157),(93.5433,-7.086619,68.0315)}, {(48.18897,0,17.00787),(87.87401,0,23.38582),(68.0315,0,57.40157),(93.5433,0,68.0315)} - },{ + }, + { {(48.18897,0,17.00787),(87.87401,0,23.38582),(68.0315,0,57.40157),(93.5433,0,68.0315)}, {(48.18897,18.70866,17.00787),(87.87401,18.70866,23.38582),(68.0315,7.086619,57.40157),(93.5433,7.086619,68.0315)}, {(48.18897,18.70866,40.3937),(73.70078,18.70866,40.3937),(65.19685,7.086619,59.52755),(76.53543,7.086619,68.0315)}, {(48.18897,0,40.3937),(73.70078,0,40.3937),(65.19685,0,59.52755),(76.53543,0,68.0315)} - },{ + }, + { {(76.53543,0,68.0315),(79.37007,0,70.15748),(82.20472,0,70.15748),(79.37007,0,68.0315)}, {(76.53543,-7.086619,68.0315),(79.37007,-7.086619,70.15748),(82.20472,-4.251961,70.15748),(79.37007,-4.251961,68.0315)}, {(93.5433,-7.086619,68.0315),(99.92125,-7.086619,70.68897),(97.79527,-4.251961,71.22047),(90.70866,-4.251961,68.0315)}, {(93.5433,0,68.0315),(99.92125,0,70.68897),(97.79527,0,71.22047),(90.70866,0,68.0315)} - },{ + }, + { {(93.5433,0,68.0315),(99.92125,0,70.68897),(97.79527,0,71.22047),(90.70866,0,68.0315)}, {(93.5433,7.086619,68.0315),(99.92125,7.086619,70.68897),(97.79527,4.251961,71.22047),(90.70866,4.251961,68.0315)}, {(76.53543,7.086619,68.0315),(79.37007,7.086619,70.15748),(82.20472,4.251961,70.15748),(79.37007,4.251961,68.0315)}, {(76.53543,0,68.0315),(79.37007,0,70.15748),(82.20472,0,70.15748),(79.37007,0,68.0315)} - },{ + }, + { {(0,0,89.29133),(22.67716,0,89.29133),(0,0,80.7874),(5.669294,0,76.53543)}, {(0,0,89.29133),(22.67716,-12.7559,89.29133),(0,0,80.7874),(5.669294,-3.174809,76.53543)}, {(0,0,89.29133),(12.7559,-22.67716,89.29133),(0,0,80.7874),(3.174809,-5.669294,76.53543)}, {(0,0,89.29133),(0,-22.67716,89.29133),(0,0,80.7874),(0,-5.669294,76.53543)} - },{ + }, + { {(0,0,89.29133),(0,-22.67716,89.29133),(0,0,80.7874),(0,-5.669294,76.53543)}, {(0,0,89.29133),(-12.7559,-22.67716,89.29133),(0,0,80.7874),(-3.174809,-5.669294,76.53543)}, {(0,0,89.29133),(-22.67716,-12.7559,89.29133),(0,0,80.7874),(-5.669294,-3.174809,76.53543)}, {(0,0,89.29133),(-22.67716,0,89.29133),(0,0,80.7874),(-5.669294,0,76.53543)} - },{ + }, + { {(0,0,89.29133),(-22.67716,0,89.29133),(0,0,80.7874),(-5.669294,0,76.53543)}, {(0,0,89.29133),(-22.67716,12.7559,89.29133),(0,0,80.7874),(-5.669294,3.174809,76.53543)}, {(0,0,89.29133),(-12.7559,22.67716,89.29133),(0,0,80.7874),(-3.174809,5.669294,76.53543)}, {(0,0,89.29133),(0,22.67716,89.29133),(0,0,80.7874),(0,5.669294,76.53543)} - },{ + }, + { {(0,0,89.29133),(0,22.67716,89.29133),(0,0,80.7874),(0,5.669294,76.53543)}, {(0,0,89.29133),(12.7559,22.67716,89.29133),(0,0,80.7874),(3.174809,5.669294,76.53543)}, {(0,0,89.29133),(22.67716,12.7559,89.29133),(0,0,80.7874),(5.669294,3.174809,76.53543)}, {(0,0,89.29133),(22.67716,0,89.29133),(0,0,80.7874),(5.669294,0,76.53543)} - },{ + }, + { {(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)}, {(5.669294,-3.174809,76.53543),(11.33858,-6.349609,72.28346),(36.85039,-20.63622,72.28346),(36.85039,-20.63622,68.0315)}, {(3.174809,-5.669294,76.53543),(6.349609,-11.33858,72.28346),(20.63622,-36.85039,72.28346),(20.63622,-36.85039,68.0315)}, {(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)} - },{ + }, + { {(0,-5.669294,76.53543),(0,-11.33858,72.28346),(0,-36.85039,72.28346),(0,-36.85039,68.0315)}, {(-3.174809,-5.669294,76.53543),(-6.349609,-11.33858,72.28346),(-20.63622,-36.85039,72.28346),(-20.63622,-36.85039,68.0315)}, {(-5.669294,-3.174809,76.53543),(-11.33858,-6.349609,72.28346),(-36.85039,-20.63622,72.28346),(-36.85039,-20.63622,68.0315)}, {(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)}, - },{ + }, + { {(-5.669294,0,76.53543),(-11.33858,0,72.28346),(-36.85039,0,72.28346),(-36.85039,0,68.0315)}, {(-5.669294,3.174809,76.53543),(-11.33858,6.349609,72.28346),(-36.85039,20.63622,72.28346),(-36.85039,20.63622,68.0315)}, {(-3.174809,5.669294,76.53543),(-6.349609,11.33858,72.28346),(-20.63622,36.85039,72.28346),(-20.63622,36.85039,68.0315)}, {(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)} - },{ + }, + { {(0,5.669294,76.53543),(0,11.33858,72.28346),(0,36.85039,72.28346),(0,36.85039,68.0315)}, {(3.174809,5.669294,76.53543),(6.349609,11.33858,72.28346),(20.63622,36.85039,72.28346),(20.63622,36.85039,68.0315)}, {(5.669294,3.174809,76.53543),(11.33858,6.349609,72.28346),(36.85039,20.63622,72.28346),(36.85039,20.63622,68.0315)}, {(5.669294,0,76.53543),(11.33858,0,72.28346),(36.85039,0,72.28346),(36.85039,0,68.0315)}, - },{ + }, + { {(0,0,0),(40.3937,0,0),(42.51969,0,2.12598),(42.51969,0,4.251961)}, {(0,0,0),(40.3937,22.62047,0),(42.51969,23.81102,2.12598),(42.51969,23.81102,4.251961)}, {(0,0,0),(22.62047,40.3937,0),(23.81102,42.51969,2.12598),(23.81102,42.51969,4.251961)}, {(0,0,0),(0,40.3937,0),(0,42.51969,2.12598),(0,42.51969,4.251961)} - },{ + }, + { {(0,0,0),(0,40.3937,0),(0,42.51969,2.12598),(0,42.51969,4.251961)}, {(0,0,0),(-22.62047,40.3937,0),(-23.81102,42.51969,2.12598),(-23.81102,42.51969,4.251961)}, {(0,0,0),(-40.3937,22.62047,0),(-42.51969,23.81102,2.12598),(-42.51969,23.81102,4.251961)}, {(0,0,0),(-40.3937,0,0),(-42.51969,0,2.12598),(-42.51969,0,4.251961)} - },{ + }, + { {(0,0,0),(-40.3937,0,0),(-42.51969,0,2.12598),(-42.51969,0,4.251961)}, {(0,0,0),(-40.3937,-22.62047,0),(-42.51969,-23.81102,2.12598),(-42.51969,-23.81102,4.251961)}, {(0,0,0),(-22.62047,-40.3937,0),(-23.81102,-42.51969,2.12598),(-23.81102,-42.51969,4.251961)}, {(0,0,0),(0,-40.3937,0),(0,-42.51969,2.12598),(0,-42.51969,4.251961)} - },{ + }, + { {(0,0,0),(0,-40.3937,0),(0,-42.51969,2.12598),(0,-42.51969,4.251961)}, {(0,0,0),(22.62047,-40.3937,0),(23.81102,-42.51969,2.12598),(23.81102,-42.51969,4.251961)}, {(0,0,0),(40.3937,-22.62047,0),(42.51969,-23.81102,2.12598),(42.51969,-23.81102,4.251961)}, {(0,0,0),(40.3937,0,0),(42.51969,0,2.12598),(42.51969,0,4.251961)} - } -}; + } + }; draw(surface(Q),material(blue, shininess=0.85, metallic=0),render(compression=Low)); diff --git a/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy b/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy index cfcc3d0e98e..e0965028975 100644 --- a/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy +++ b/Master/texmf-dist/doc/asymptote/examples/thermodynamics.asy @@ -14,7 +14,7 @@ picture CreateKOOS(real Scale, string legend) // draw labeled coor draw(ReturnPic, ((0,-S)--(0,S)), bar = EndArrow); // y axis label(ReturnPic, "$\varepsilon$", (S,0), SW); // x axis label label(ReturnPic, "$\sigma$", (0,S), SW); // y axis label - label(ReturnPic, legend, (0.7S, -S), NW); // add label 'legend' + label(ReturnPic, legend, (0.7S, -S), NW); // add label 'legend' return ReturnPic; // return picture } @@ -32,69 +32,69 @@ picture T[]; // vector of all four diagrams real inc = 2.8; // increment-offset for combining pictures //////////////////////////////////////// 1st diagram -T[1] = CreateKOOS(S, "$T_1$"); // initialise T[1] as empty diagram with label $T_1$ -graph = A; // # pointwise definition of current path 'graph' -graph = graph -- (A.x + grad*1.6, A.y + 1.6); // # -graph = graph -- (E.x - grad*0.4, E.y - 0.4); // # +T[1] = CreateKOOS(S, "$T_1$"); // initialise T[1] as empty diagram with label $T_1$ +graph = A; // # pointwise definition of current path 'graph' +graph = graph -- (A.x + grad*1.6, A.y + 1.6); // # +graph = graph -- (E.x - grad*0.4, E.y - 0.4); // # graph = graph -- E; // # -graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy -ActPen = rgb(0,0,0.6) + linewidth(lw); // define pen for drawing in 1st diagram -draw(T[1], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[1]' (1st hysteresis branch) -draw(T[1], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch) +graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy +ActPen = rgb(0,0,0.6) + linewidth(lw); // define pen for drawing in 1st diagram +draw(T[1], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[1]' (1st hysteresis branch) +draw(T[1], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch) graph = (0,0) -- (grad*0.6, 0.6) -- ( (grad*0.6, 0.6) + (0.1, 0) ); // define branch from origin to hysteresis -graph = roundedpath(graph, radius, S); // round this path -draw(T[1], graph, ActPen); // draw this path into 'T[1]' +graph = roundedpath(graph, radius, S); // round this path +draw(T[1], graph, ActPen); // draw this path into 'T[1]' //////////////////////////////////////// 2nd diagram -T[2] = CreateKOOS(S, "$T_2$"); // initialise T[2] as empty diagram with label $T_2$ -graph = A; // # pointwise definition of current path 'graph' -graph = graph -- (A.x + grad*1.3, A.y + 1.3); // # -graph = graph -- (E.x - grad*0.7 , E.y - 0.7); // # +T[2] = CreateKOOS(S, "$T_2$"); // initialise T[2] as empty diagram with label $T_2$ +graph = A; // # pointwise definition of current path 'graph' +graph = graph -- (A.x + grad*1.3, A.y + 1.3); // # +graph = graph -- (E.x - grad*0.7 , E.y - 0.7); // # graph = graph -- E; // # - -graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy -ActPen = rgb(0.2,0,0.4) + linewidth(lw); // define pen for drawing in 2nd diagram -draw(T[2], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[2]' (1st hysteresis branch) -draw(T[2], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch) + +graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy +ActPen = rgb(0.2,0,0.4) + linewidth(lw); // define pen for drawing in 2nd diagram +draw(T[2], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[2]' (1st hysteresis branch) +draw(T[2], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch) graph = (0,0) -- (grad*0.3, 0.3) -- ( (grad*0.3, 0.3) + (0.1, 0) ); // define branch from origin to hysteresis -graph = roundedpath(graph, radius, S); // round this path -draw(T[2], graph, ActPen); // draw this path into 'T[2]' +graph = roundedpath(graph, radius, S); // round this path +draw(T[2], graph, ActPen); // draw this path into 'T[2]' //////////////////////////////////////// 3rd diagram -T[3] = CreateKOOS(S, "$T_3$"); // initialise T[3] as empty diagram with label $T_3$ -graph = A; // # pointwise definition of current path 'graph' -graph = graph -- (A.x + grad*0.7, A.y + 0.7); // # -graph = graph -- ( - grad*0.3 , - 0.3); // # -graph = graph -- (0,0); // # -graph = graph -- (grad*0.6, 0.6); // # -graph = graph -- (E.x - grad*0.4, E.y - 0.4); // # -graph = graph -- E; // # - -graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy -ActPen = rgb(0.6,0,0.2) + linewidth(lw); // define pen for drawing in 3rd diagram -draw(T[3], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[3]' (1st hysteresis branch) -draw(T[3], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch) +T[3] = CreateKOOS(S, "$T_3$"); // initialise T[3] as empty diagram with label $T_3$ +graph = A; // # pointwise definition of current path 'graph' +graph = graph -- (A.x + grad*0.7, A.y + 0.7); // # +graph = graph -- ( - grad*0.3 , - 0.3); // # +graph = graph -- (0,0); // # +graph = graph -- (grad*0.6, 0.6); // # +graph = graph -- (E.x - grad*0.4, E.y - 0.4); // # +graph = graph -- E; // # + +graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy +ActPen = rgb(0.6,0,0.2) + linewidth(lw); // define pen for drawing in 3rd diagram +draw(T[3], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[3]' (1st hysteresis branch) +draw(T[3], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (2nd hysteresis branch) //////////////////////////////////////// 4th diagram -T[4] = CreateKOOS(S, "$T_4$"); // initialise T[4] as empty diagram with label $T_4$ -graph = A; // # pointwise definition of current path 'graph' -graph = graph -- (A.x + grad*0.4, A.y + 0.4); // # -graph = graph -- ( - grad*0.6 , - 0.6); // # -graph = graph -- (0,0); // # -graph = graph -- (grad*0.9, 0.9); // # -graph = graph -- (E.x - grad*0.1, E.y - 0.1); // # -graph = graph -- E; // # - -graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy -ActPen = rgb(0.6,0,0) + linewidth(lw); // define pen for drawing in 4th diagram -draw(T[4], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[4]' (1st hysteresis branch) -draw(T[4], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (3nd hysteresis branch) +T[4] = CreateKOOS(S, "$T_4$"); // initialise T[4] as empty diagram with label $T_4$ +graph = A; // # pointwise definition of current path 'graph' +graph = graph -- (A.x + grad*0.4, A.y + 0.4); // # +graph = graph -- ( - grad*0.6 , - 0.6); // # +graph = graph -- (0,0); // # +graph = graph -- (grad*0.9, 0.9); // # +graph = graph -- (E.x - grad*0.1, E.y - 0.1); // # +graph = graph -- E; // # + +graph = roundedpath(graph, radius, S); // round edges of 'graph' using roundedpath() in roundedpath.asy +ActPen = rgb(0.6,0,0) + linewidth(lw); // define pen for drawing in 4th diagram +draw(T[4], graph, ActPen); // draw 'graph' with 'ActPen' into 'T[4]' (1st hysteresis branch) +draw(T[4], rotate(180,(0,0))*graph, ActPen); // draw rotated 'graph' (3nd hysteresis branch) // add some labels and black dots to the first two pictures @@ -126,6 +126,6 @@ ActPen = linewidth(1) + gray(0.5); // define draw(shift(( 1 - grad*0.55 + 0*inc)*S, 0.45*S)*mark, ActPen); // # draw all intersections draw(shift((-1 + grad*1.45 + 0*inc)*S, 0.45*S)*mark, ActPen); // # draw(shift(( 1 - grad*0.55 + 1*inc)*S, 0.45*S)*mark, ActPen); // # -draw(shift(( 1 - grad*0.55 + 2*inc)*S, 0.45*S)*mark, ActPen); // # -draw(shift(( grad*0.45 + 2*inc)*S, 0.45*S)*mark, ActPen); // # +draw(shift(( 1 - grad*0.55 + 2*inc)*S, 0.45*S)*mark, ActPen); // # +draw(shift(( grad*0.45 + 2*inc)*S, 0.45*S)*mark, ActPen); // # draw(shift(( grad*0.45 + 3*inc)*S, 0.45*S)*mark, ActPen); // # diff --git a/Master/texmf-dist/doc/asymptote/examples/torus.asy b/Master/texmf-dist/doc/asymptote/examples/torus.asy index d0b8673d737..c5bda1e6871 100644 --- a/Master/texmf-dist/doc/asymptote/examples/torus.asy +++ b/Master/texmf-dist/doc/asymptote/examples/torus.asy @@ -7,9 +7,9 @@ real R=3; real a=1; /* -import solids; -revolution torus=revolution(reverse(Circle(R*X,a,Y,32)),Z,90,345); -surface s=surface(torus); + import solids; + revolution torus=revolution(reverse(Circle(R*X,a,Y,32)),Z,90,345); + surface s=surface(torus); */ triple f(pair t) { diff --git a/Master/texmf-dist/doc/asymptote/examples/triads.asy b/Master/texmf-dist/doc/asymptote/examples/triads.asy index 77806b1ad4b..6cecc55fa46 100644 --- a/Master/texmf-dist/doc/asymptote/examples/triads.asy +++ b/Master/texmf-dist/doc/asymptote/examples/triads.asy @@ -12,18 +12,18 @@ pair o=(m.x,0.5(m.x+l.y)); pen d=c+darkgreen; void drawarrow(string s="", pair p, pair q, side side=RightSide, - bool upscale=false, pen c) + bool upscale=false, pen c) { path g=p{dir(-5)}..{dir(-85)}q; - if(upscale) g=reverse(g); + if(upscale) g=reverse(g); draw(s,g,side,c,Arrow(Fill,0.65)); -} +} void spectrum(pair l,pair m, pair s) { draw(p,c); - + d += 4.0; - dot("$p$",l,SW,d); + dot("$p$",l,SW,d); dot("$q$",m,SW,d); dot("$k$",s,SW,d); diff --git a/Master/texmf-dist/doc/asymptote/examples/triangle.asy b/Master/texmf-dist/doc/asymptote/examples/triangle.asy index 60388a78515..e3f9c1f5889 100644 --- a/Master/texmf-dist/doc/asymptote/examples/triangle.asy +++ b/Master/texmf-dist/doc/asymptote/examples/triangle.asy @@ -2,7 +2,7 @@ size(0,100); import geometry; triangle t=triangle(b=3,alpha=90,c=4); - + dot((0,0)); draw(t); diff --git a/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy b/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy index e4d07a49e5b..092f96a4e6c 100644 --- a/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy +++ b/Master/texmf-dist/doc/asymptote/examples/truncatedIcosahedron.asy @@ -10,20 +10,21 @@ triple[] z={(c,1,0),(-c,1,0),(-c,-1,0),(c,-1,0)}; triple[] x={(0,c,1),(0,-c,1),(0,-c,-1),(0,c,-1)}; triple[] y={(1,0,c),(1,0,-c),(-1,0,-c),(-1,0,c)}; -triple[][] Q={ - {(c,1,0),(1,0,-c),(0,c,-1),(0,c,1),(1,0,c),(c,-1,0)}, - {(-c,1,0),(0,c,1),(0,c,-1),(-1,0,-c),(-c,-1,0),(-1,0,c)}, - {(-c,-1,0),(-c,1,0),(-1,0,-c),(0,-c,-1),(0,-c,1),(-1,0,c)}, - {(c,-1,0),(c,1,0),(1,0,c),(0,-c,1),(0,-c,-1),(1,0,-c)}, - {(0,c,1),(0,c,-1),(-c,1,0),(-1,0,c),(1,0,c),(c,1,0)}, - {(0,-c,1),(0,-c,-1),(-c,-1,0),(-1,0,c),(1,0,c),(c,-1,0)}, - {(0,-c,-1),(0,-c,1),(c,-1,0),(1,0,-c),(-1,0,-c),(-c,-1,0)}, - {(0,c,-1),(0,c,1),(c,1,0),(1,0,-c),(-1,0,-c),(-c,1,0)}, - {(1,0,c),(-1,0,c),(0,-c,1),(c,-1,0),(c,1,0),(0,c,1)}, - {(1,0,-c),(-1,0,-c),(0,-c,-1),(c,-1,0),(c,1,0),(0,c,-1)}, - {(-1,0,-c),(1,0,-c),(0,c,-1),(-c,1,0),(-c,-1,0),(0,-c,-1)}, - {(-1,0,c),(1,0,c),(0,c,1),(-c,1,0),(-c,-1,0),(0,-c,1)} -}; +triple[][] Q= + { + {(c,1,0),(1,0,-c),(0,c,-1),(0,c,1),(1,0,c),(c,-1,0)}, + {(-c,1,0),(0,c,1),(0,c,-1),(-1,0,-c),(-c,-1,0),(-1,0,c)}, + {(-c,-1,0),(-c,1,0),(-1,0,-c),(0,-c,-1),(0,-c,1),(-1,0,c)}, + {(c,-1,0),(c,1,0),(1,0,c),(0,-c,1),(0,-c,-1),(1,0,-c)}, + {(0,c,1),(0,c,-1),(-c,1,0),(-1,0,c),(1,0,c),(c,1,0)}, + {(0,-c,1),(0,-c,-1),(-c,-1,0),(-1,0,c),(1,0,c),(c,-1,0)}, + {(0,-c,-1),(0,-c,1),(c,-1,0),(1,0,-c),(-1,0,-c),(-c,-1,0)}, + {(0,c,-1),(0,c,1),(c,1,0),(1,0,-c),(-1,0,-c),(-c,1,0)}, + {(1,0,c),(-1,0,c),(0,-c,1),(c,-1,0),(c,1,0),(0,c,1)}, + {(1,0,-c),(-1,0,-c),(0,-c,-1),(c,-1,0),(c,1,0),(0,c,-1)}, + {(-1,0,-c),(1,0,-c),(0,c,-1),(-c,1,0),(-c,-1,0),(0,-c,-1)}, + {(-1,0,c),(1,0,c),(0,c,1),(-c,1,0),(-c,-1,0),(0,-c,1)} + }; real R=abs(interp(Q[0][0],Q[0][1],1/3)); diff --git a/Master/texmf-dist/doc/asymptote/examples/tvgen.asy b/Master/texmf-dist/doc/asymptote/examples/tvgen.asy index c7898fe7129..0ea7ce3eb6d 100644 --- a/Master/texmf-dist/doc/asymptote/examples/tvgen.asy +++ b/Master/texmf-dist/doc/asymptote/examples/tvgen.asy @@ -17,40 +17,40 @@ * Boston, MA 02110-1301, USA. * * tvgen-1.2/tvgen.asy http://picaros.org/ftp/soft/tvgen-1.2.tgz - * This asy script generates pm5544-like television test cards. The image - * parameters were derived from a 1990 recording. The basic parameters - * conform to itu-r bt.470, bt.601, and bt.709. There is no unique image - * since local variants exist and parameters have varied over time. + * This asy script generates pm5544-like television test cards. The image + * parameters were derived from a 1990 recording. The basic parameters + * conform to itu-r bt.470, bt.601, and bt.709. There is no unique image + * since local variants exist and parameters have varied over time. */ //papertype="a4"; import plain; int verbose=settings.verbose/*+2*/; /* uncomment for debug info */ /* tv dot coordinates --> PS points */ -pair tvps(real col, real row, real xd, real yd, int Nv) { - real psx, psy; - psx=col*xd; psy=(Nv-row)*yd; - return (psx,psy); +pair tvps(real col, real row, real xd, real yd, int Nv) { + real psx, psy; + psx=col*xd; psy=(Nv-row)*yd; + return (psx,psy); } path tvrect(int lc, int tr, int rc, int br, real xd, real yd, int Nv) { - real lx, ty, rx, by; - pair[] z; - - lx=lc*xd; ty=(Nv-tr)*yd; - rx=rc*xd; by=(Nv-br)*yd; + real lx, ty, rx, by; + pair[] z; + + lx=lc*xd; ty=(Nv-tr)*yd; + rx=rc*xd; by=(Nv-br)*yd; /* bl br tr tl */ z[0]=(lx, by); - z[1]=(rx, by); - z[2]=(rx, ty); - z[3]=(lx, ty); - - return z[0]--z[1]--z[2]--z[3]--cycle; + z[1]=(rx, by); + z[2]=(rx, ty); + z[3]=(lx, ty); + + return z[0]--z[1]--z[2]--z[3]--cycle; } /********************* horizontal castellations ********************/ /* Draw a horizontal red line in the top left and the bottom right * castellation. These testlines disappear if the monitor is not set - * in a dot-exact mode. An example is image crop due to overscan. + * in a dot-exact mode. An example is image crop due to overscan. * * For 625 line systems any analog-compatible processing removes * these red testlines since the first halfline of the odd field and @@ -58,8 +58,8 @@ path tvrect(int lc, int tr, int rc, int br, real xd, real yd, int Nv) { * visible line frame often results via a final copy paste operation. */ void castelhor(int colortv, int[] rccoll, int[] rccolr, int cmaxi, int Nh, - int topdist, int botdist, - pen pdef, real xd, real yd, int Nv) { + int topdist, int botdist, + pen pdef, real xd, real yd, int Nv) { pen pblack, pwhite, pred; int i; @@ -113,26 +113,26 @@ void castelhor(int colortv, int[] rccoll, int[] rccolr, int cmaxi, int Nh, zzc = tvrect(lc,botdist, rc,br, xd,yd,Nv); fill(zzc, p=pcast); } - + return; } /********************* vertical castellations ********************/ -/* The bottom right red rectangle tests for a non causal color FIR - * filter in the receiver. The last 2..4 dots then typically appear - * colorless, green, or cyan. +/* The bottom right red rectangle tests for a non causal color FIR + * filter in the receiver. The last 2..4 dots then typically appear + * colorless, green, or cyan. * - * This stems from the fact that the chroma subcarrier is of lower - * bandwidth than luma and thus continues after the last active sample. - * These trailing (y,u,v) samples result from an abrupt signal to zero - * transition and depend on the transmit and receive filters. Samples - * from VHS, system B/G/D/K, system I, or a DVD player output are - * different. Nevertheless, a sharpening filter uses this data and so - * adds false color to the last dots. + * This stems from the fact that the chroma subcarrier is of lower + * bandwidth than luma and thus continues after the last active sample. + * These trailing (y,u,v) samples result from an abrupt signal to zero + * transition and depend on the transmit and receive filters. Samples + * from VHS, system B/G/D/K, system I, or a DVD player output are + * different. Nevertheless, a sharpening filter uses this data and so + * adds false color to the last dots. */ void castelver(int colortv, int leftdist, int rightdist, int Nh, - int[] rcrowb, int[] rcrowt, int rmaxi, - pen pdef, real xd, real yd, int Nv) { + int[] rcrowb, int[] rcrowt, int rmaxi, + pen pdef, real xd, real yd, int Nv) { pen pblack, pwhite; int i; @@ -144,7 +144,7 @@ void castelver(int colortv, int leftdist, int rightdist, int Nh, pen pcastl, pcastr; int tr, br; path zzc; - + if (inext%2 == 0) { pcastl = pwhite; } else { @@ -157,17 +157,17 @@ void castelver(int colortv, int leftdist, int rightdist, int Nh, } tr=rcrowb[i]; - br=rcrowt[i+1]; + br=rcrowt[i+1]; zzc=tvrect( 0,tr, leftdist,br, xd,yd,Nv); fill(zzc, p=pcastl); - zzc=tvrect(rightdist,tr, Nh,br, xd,yd,Nv); + zzc=tvrect(rightdist,tr, Nh,br, xd,yd,Nv); fill(zzc, p=pcastr); } return; } /********************* image aspect ratio markers ********************/ void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, - pen pdef, real xd, real yd, int Nv) { + pen pdef, real xd, real yd, int Nv) { int[] ridefN={ 4, 16 }; int[] ridefD={ 3, 9 }; int i; @@ -187,11 +187,11 @@ void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, if (2*offa<Nh) { int hy, tr, br; path zz; - - hy=floor(Nsy/3); - tr=Nvc-hy; - br=Nvc+hy; - + + hy=floor(Nsy/3); + tr=Nvc-hy; + br=Nvc+hy; + zz=tvrect(Nhc+offb, tr, Nhc+offa, br, xd,yd,Nv); //dot(zz); fill(zz, p=pdef); @@ -206,7 +206,7 @@ void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, /************* crosshatch: line pairing, center interlace test *************/ /* There are 2 coordinate systems in use: * 1. integer number based for the gridlines - * + * * coff, Nhc, rccoll[], rccolc[], rccolr[] : vertical gridlines, * rcrowc, Nvc : horizontal gridlines, * @@ -215,15 +215,15 @@ void rimarkers(real rimage, int Nh, int Nhc, int os, int Nvc, int Nsy, * ccenter={ cx=Nh/2, cy=Nv/2} : the true image center, * rcoff rcright rcleft : offset to ccenter and points on the circle. * - * Both centers coincide if Nh and Nv are even. + * Both centers coincide if Nh and Nv are even. */ void centerline(int colortv, - int[] rccoll, int[] rccolc, int[] rccolr, int divsx, - int Nhc, int os, - int[] rcrowt, int[] rcrowc, int[] rcrowb, int divsy, - int Nvc, - pair ccenter, real[] rcoff, pair[] rcright, pair[] rcleft, - pen pdef, real xd, real yd, int Nv) { + int[] rccoll, int[] rccolc, int[] rccolr, int divsx, + int Nhc, int os, + int[] rcrowt, int[] rcrowc, int[] rcrowb, int divsy, + int Nvc, + pair ccenter, real[] rcoff, pair[] rcright, pair[] rcleft, + pen pdef, real xd, real yd, int Nv) { pen pblack, pwhite; int cmaxi, maxoff, mincol, maxcol; int rows, tr, br; @@ -239,7 +239,7 @@ void centerline(int colortv, /* black, vertical gridlines redrawn below */ pair[] z; int col; - + z[0]=rcright[divsy]; col = rccolc[divsx+1]; @@ -249,21 +249,21 @@ void centerline(int colortv, z[3]=tvps(col,rcrowc[divsy-1], xd,yd,Nv); z[4]=tvps(col,rcrowc[divsy], xd,yd,Nv); - z[5]=rcleft[divsy]; + z[5]=rcleft[divsy]; z[6]=rcleft[divsy+1]; - + z[7]=tvps(col,rcrowc[divsy+1], xd,yd,Nv); z[8]=tvps(col,rcrowc[divsy+2], xd,yd,Nv); col = rccolc[divsx+1]; z[9]=tvps(col,rcrowc[divsy+2], xd,yd,Nv); z[10]=tvps(col,rcrowc[divsy+1], xd,yd,Nv); - z[11]=rcright[divsy+1]; + z[11]=rcright[divsy+1]; fill(z[1]--z[2]--z[3]--z[4] //--z[5]--z[6] - --arc(ccenter, z[5], z[6]) - --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0] - --arc(ccenter,z[11], z[0]) - --cycle, p=pblack); + --arc(ccenter, z[5], z[6]) + --z[7]--z[8]--z[9]--z[10] //--z[11]--z[0] + --arc(ccenter,z[11], z[0]) + --cycle, p=pblack); } else { /* 3 rows of black squares inside the gratings */ int i, imax = divsy+1; @@ -277,28 +277,28 @@ void centerline(int colortv, lmaxoff = min(floor(rcoff[i]), floor(rcoff[inext])); lmincol = Nhc-lmaxoff; lmaxcol = Nhc+lmaxoff; - + /* square top and bottom */ tr = rcrowb[i]; br = rcrowt[inext]; for (j=0; j<cmaxi; ++j) { /* column j */ - int jnext = j+1; - - if (lmincol<=rccolc[j] && rccolc[jnext]<=lmaxcol) { - /* square is inside circle */ - int lc, rc; - path zzsq; - - lc = rccolr[j]; - rc = rccoll[jnext]; - zzsq = tvrect(lc, tr, rc, br, xd,yd,Nv); - fill(zzsq, p=pblack); /* draw black squares */ - } + int jnext = j+1; + + if (lmincol<=rccolc[j] && rccolc[jnext]<=lmaxcol) { + /* square is inside circle */ + int lc, rc; + path zzsq; + + lc = rccolr[j]; + rc = rccoll[jnext]; + zzsq = tvrect(lc, tr, rc, br, xd,yd,Nv); + fill(zzsq, p=pblack); /* draw black squares */ + } } /* for col j */ } /* for row i */ } - + /* center cross: vertical and horizontal centerline */ maxoff = floor(rcoff[divsy]); /* XXX rcoff is relative to ccenter */ mincol = Nhc-maxoff; @@ -327,24 +327,24 @@ void centerline(int colortv, int i; for (i=0; i<=cmaxi; ++i) { int coll, colr; - + coll=rccoll[i]; colr=rccolr[i]; if (mincol<=coll && colr<=maxcol) { - path zzv; - zzv=tvrect(coll, tr, colr, br, xd,yd,Nv); - fill(zzv, p=pwhite); + path zzv; + zzv=tvrect(coll, tr, colr, br, xd,yd,Nv); + fill(zzv, p=pwhite); } } } return; } - + /************************ topbw **************************************/ -void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow, - pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, - pen pdef, real xd, real yd, int Nv) { +void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow, + pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, + pen pdef, real xd, real yd, int Nv) { pen pblack=pdef+gray(0.0), pwhite=pdef+gray(1.0); pair[] ze; path zext, zref, zint; @@ -371,7 +371,7 @@ void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow, --ze[3]--ze[4]--ze[5]--ze[6]--ze[7]--ze[8]--ze[9]--cycle; off=ceil((coff[1]+coff[2])/2); - zint=tvrect(Nhc-off,urow, Nhc+off,trow, xd,yd,Nv); + zint=tvrect(Nhc-off,urow, Nhc+off,trow, xd,yd,Nv); /* paths are completely resolved; no free endpoint conditions */ fill(zext^^reverse(zint), p=pwhite); @@ -384,7 +384,7 @@ void topbw(int[] coff, int Nhc, int os, int urow, int trow, int brow, } /************************ testtone **************************************/ -/* x on circle -> return y>=0 +/* x on circle -> return y>=0 * in: * x x-coordinate relative to origin * crad circle radius in y units, true size=crad*yd @@ -418,9 +418,9 @@ real testcircy(real y, real crad, real xd, real yd) { } /* brow>trow && xb>xt */ -void testtone(real Tt, int trow, int brow, - real ccol, real crow, real crad, - pen pdef, real xd, real yd, int Nv) { +void testtone(real Tt, int trow, int brow, + real ccol, real crow, real crad, + pen pdef, real xd, real yd, int Nv) { int blocks, i; real yt, xt, yb, xb, Ttt=Tt/2; pair ccenter; @@ -488,7 +488,7 @@ void testtone(real Tt, int trow, int brow, z[2]=tvps(ccol+tl,brow, xd,yd,Nv); z[3]=tvps(ccol+tr,brow, xd,yd,Nv); zz=z[0]--z[1]--z[2]--z[3]--cycle; - } + } if (tl<tr) { if (i%2 == 0) { @@ -502,9 +502,9 @@ void testtone(real Tt, int trow, int brow, } /************************ color bars *************************************/ -void colorbars(int[] coff, int Nhc, int trow, int crow, int brow, - pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, - pen pdef, real xd, real yd, int Nv) { +void colorbars(int[] coff, int Nhc, int trow, int crow, int brow, + pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, + pen pdef, real xd, real yd, int Nv) { real cI=0.75; real[] cR={ cI, 0, 0, cI, cI, 0 }; real[] cG={ cI, cI, cI, 0, 0, 0 }; @@ -517,11 +517,11 @@ void colorbars(int[] coff, int Nhc, int trow, int crow, int brow, int off; int ii=2*i, il=cmax-i, ir=i+cmax+1; path zzl, zzr; - + off=ceil((coff[1+ii]+coff[2+ii])/2); if (i!=0 && i<cmax) { - zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv); - zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv); + zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv); + zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv); } else { if(i==0) { int col, pcol; @@ -586,7 +586,7 @@ real addphase(real theta, real freq, real step) { int coverflow; cycles=freq*step; - coverflow=floor(abs(cycles)); + coverflow=floor(abs(cycles)); if (coverflow>1) { thetaret=0; } else { @@ -595,10 +595,10 @@ real addphase(real theta, real freq, real step) { cycles-=coverflow*sgn(cycles); thetaret=theta+cycles*dpi; /* cycles=(-1 .. 1) */ - if (thetaret>pi) { - thetaret-=dpi; - } else if (thetaret<-pi) { - thetaret-=dpi; + if (thetaret>pi) { + thetaret-=dpi; + } else if (thetaret<-pi) { + thetaret-=dpi; } } @@ -606,9 +606,9 @@ real addphase(real theta, real freq, real step) { return thetaret; } -void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, - pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, - pen pdef, real xd, real yd, int Nv) { +void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, + pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, + pen pdef, real xd, real yd, int Nv) { int[] divc; real[] divfl, divfr; int i, divs, coffmax, off, divnext; @@ -649,7 +649,7 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, tr=trow; } - if (off == divc[divnext]) { + if (off == divc[divnext]) { /* switch frequency: cycles=0.5*fcur+0.5*fnext */ thl=addphase(thl, fl, -0.5); thr=addphase(thr, fr, 0.5); @@ -672,10 +672,10 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, //write(off, thr, ampr); col=Nhc-off-1; - zz=tvrect(col,tr, col+1,brow, xd,yd,Nv); + zz=tvrect(col,tr, col+1,brow, xd,yd,Nv); fill(zz, p=pdef+gray(ampl)); col=Nhc+off; - zz=tvrect(col,tr, col+1,brow, xd,yd,Nv); + zz=tvrect(col,tr, col+1,brow, xd,yd,Nv); fill(zz, p=pdef+gray(ampr)); } @@ -690,9 +690,9 @@ void testfreqs(real[] ftones, int[] coff, int Nhc, int trow,int crow,int brow, } /************************ gray bars **************************************/ -void graybars(int[] coff, int Nhc, int trow, int brow, - pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, - pen pdef, real xd, real yd, int Nv) { +void graybars(int[] coff, int Nhc, int trow, int brow, + pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, + pen pdef, real xd, real yd, int Nv) { int[] gs={0, 20, 40, 60, 80, 100}; int cmax=2, poff, i; @@ -701,11 +701,11 @@ void graybars(int[] coff, int Nhc, int trow, int brow, int off; int ii=2*i, il=cmax-i, ir=i+cmax+1; path zzl, zzr; - + off=ceil((coff[1+ii]+coff[2+ii])/2); if (i<cmax) { - zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv); - zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv); + zzl=tvrect(Nhc-off,trow, Nhc-poff,brow, xd,yd,Nv); + zzr=tvrect(Nhc+poff,trow, Nhc+off,brow, xd,yd,Nv); } else { int pcol; pair zlt, zlb, zrt, zrb; @@ -729,15 +729,15 @@ void graybars(int[] coff, int Nhc, int trow, int brow, } /************************ bottom bw **************************************/ -void bottombw(int off, int Nhc, int trow, int brow, - pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, - pen pdef, real xd, real yd, int Nv) { +void bottombw(int off, int Nhc, int trow, int brow, + pair ccenter, pair rclt, pair rclb, pair rcrt, pair rcrb, + pen pdef, real xd, real yd, int Nv) { int rows; pair zt, zb; path zz; rows=brow-trow; - zz=tvrect(Nhc-off,trow, Nhc+off,brow, xd,yd,Nv); + zz=tvrect(Nhc-off,trow, Nhc+off,brow, xd,yd,Nv); fill(zz, p=pdef+gray(0.0)); zt=tvps(Nhc-off,trow, xd,yd,Nv); @@ -751,9 +751,9 @@ void bottombw(int off, int Nhc, int trow, int brow, } /************************ bottom circle **************************************/ -void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad, - pair ccenter, pair rclt, pair rcrt, - pen pdef, real xd, real yd, int Nv) { +void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad, + pair ccenter, pair rclt, pair rcrt, + pen pdef, real xd, real yd, int Nv) { real cI=0.75; real xl, yl, xr, yr, phil, phir; pair ccleft, ccright; @@ -767,7 +767,7 @@ void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad, xr=Nhc+off-cx; phir=acos(xr*xd/yd/crad); - yr=crad*sin(phir); + yr=crad*sin(phir); ccright=tvps(cx+xr,cy+yr, xd,yd,Nv); //dot(ccright); dot(ccleft); @@ -793,7 +793,7 @@ void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad, /****************************** PAL ears ***********************************/ /* values pro mille - * left y R G B + * left y R G B * 550 306 674 550 * 500 363 500 859 * 500 637 500 141 @@ -804,12 +804,12 @@ void bottomcirc(int off, int Nhc, int trow, real cx, real cy, real crad, * * in: dright= -1 left ear, +1 right ear */ -void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, - int[] rcrowt, int[] rcrowb, int Nvc, int divsy, int dright, - pen pdef, real xd, real yd, int Nv) { - /* the amplitude of (u,v) as seen on a vectorscope, +void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, + int[] rcrowt, int[] rcrowb, int Nvc, int divsy, int dright, + pen pdef, real xd, real yd, int Nv) { + /* the amplitude of (u,v) as seen on a vectorscope, * max 0.296 Vn for 100% saturation in W and V ears. - * cvbs: 0.7*( y +/- |u+jv| ) = -0.24 .. 0.93 V + * cvbs: 0.7*( y +/- |u+jv| ) = -0.24 .. 0.93 V * maxima: ebu 75/0 bars 0.70, bbc 100/25 0.88, 100/0 bars 0.93 * burst: 0.150 Vcvbs, 21.4 IRE or 0.214 V normalized. * luma: modulated for monochrome compatibility, 1990 version. @@ -890,10 +890,10 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, ph= (u!=0 || v!=0) ? atan2(v,u) : 0.0; if (v>=0) { if (ph<0) - ph=ph+pi; + ph=ph+pi; } else { if (ph>0) - ph=ph-pi; + ph=ph-pi; } if (A>0) { u=u/A*cI; @@ -918,14 +918,14 @@ void palears(int[] coff, int[] coffa, int[] coffb, int Nhc, /****************************** NTSC bars ***********************************/ /* amplitude equals color burst smpte (pm: -V +U) - * y campl sat R G B + * y campl sat R G B * left 0.5 0.21 70% -I? * right 0.5 0.17 60% +Q? */ -void ntscbars(int[] rccoll, int[] rccolr, int divsx, - int[] rcrowt, int[] rcrowb, int divsy, int dright, - pen pdef, real xd, real yd, int Nv) { - /* The amplitude of (i,q) as seen on a vectorscope, +void ntscbars(int[] rccoll, int[] rccolr, int divsx, + int[] rcrowt, int[] rcrowb, int divsy, int dright, + pen pdef, real xd, real yd, int Nv) { + /* The amplitude of (i,q) as seen on a vectorscope, * max 0.292 Vn for 100% saturation in I==0 ears. * burst: 0.143 Vcvbs, 20 IRE or 0.200 V normalized. * pedestal: (yp,up,vp)=(p,0,0)+(1-p)*(y,u,v), p=0.075. @@ -943,7 +943,7 @@ void ntscbars(int[] rccoll, int[] rccolr, int divsx, real[] cil={ 0, 0, 0, -1, 1 }; real[] cql={ -1, 1, 0, 0, 0 }; int[] indl={ -7, -8, 0, 8, 7 }; - + real cy, ci, cq; int rmaxi, dri, ind, ibase, lcol, rcol, i; @@ -979,17 +979,17 @@ void ntscbars(int[] rccoll, int[] rccolr, int divsx, B=By+cy; if (verbose > 1) write(ind, cy*1000, round(ci*1000), round(cq*1000), - round(R*1000), round(G*1000), round(B*1000)); + round(R*1000), round(G*1000), round(B*1000)); for (i=0; i<rmaxi; ++i) { path zz; int brow, trow, inext=i+1; - + if (i>0) { trow=rcrowb[i]; } else { trow=floor((rcrowb[i]+rcrowt[inext])/2); - } + } if (inext<rmaxi) { brow=rcrowt[inext]; @@ -1000,7 +1000,7 @@ void ntscbars(int[] rccoll, int[] rccolr, int divsx, zz=tvrect(lcol,trow, rcol,brow, xd,yd,Nv); fill(zz, p=pdef+rgb(R,G,B)); } - + return; } @@ -1019,21 +1019,21 @@ int bsys=2, colortv=1, os=1; * 0 4/3 704 guaranteed analog broadcast itu-r bt.470 * 1 4/3 720 new broadcast, most TV station logos and animations * 2 15/11 720 total aperture analog 4/3, 1.37 film DVDs - * 3 20/11 720 total aperture analog 16/9, 1.85 film DVDs - * 4 4/3 768 bsys=0, square dot analog broadcast + * 3 20/11 720 total aperture analog 16/9, 1.85 film DVDs + * 4 4/3 768 bsys=0, square dot analog broadcast * 5 4/3 768 bsys=1, square dot cable TV info channel - * 6 131/96 786 bsys=2, total square dot broadcast camera + * 6 131/96 786 bsys=2, total square dot broadcast camera * 7 16/9 720 new broadcast 16/9, SD from HD-1440 or itu-r bt.709 * 8 4/3 704 525 analog broadcast itu-r bt.470 711x485 * 9 4/3 720 525 new broadcast * 10 15/11 720 525 total aperture analog broadcast * 11 16/9 1920 1250, 1080 square dot at 12.5 frames/second * 12 4/3 1600 1250, 1200 square dot at 12.5 frames/second - * + * * colortv: * 0 monochrome crosshatch, * 1 pal ears, - * 2 ntsc bars, + * 2 ntsc bars, * 3 neither ears nor bars. * * os: horizontal oversampling, typical values for 13.5MHz: @@ -1068,9 +1068,9 @@ int[] bNsh= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /* active lines for a 625 line frame - * The number of active video lines decreased around 1997. + * The number of active video lines decreased around 1997. * old: 3 run in + 575 visible + 3 run out = 581 lines - * new: 6 teletext and WSS + 575 visible + * new: 6 teletext and WSS + 575 visible * Hence the image center shifted down by 3 lines. Thus * old TV + new testcard = bottom is cut off, * new TV + old testcard = top is cut off. @@ -1083,7 +1083,7 @@ int[] bNsh= * Nv=576 lines * rd=ri*Nv/Nh=4/3*9/11=12/11 * - * Nv: 480=2^5*3*5 576=2^6*3^2 + * Nv: 480=2^5*3*5 576=2^6*3^2 * Nh: 704=2^6*11 720=2^4*3^2*5 * * horizontal line distance for pre 1997 test pattern @@ -1096,7 +1096,7 @@ int[] bNsh= * x line width 230 ns -> 3 dots * bottom 2.9us red -> 39.15 dots * - * resolution DPI from image aspect ratio + * resolution DPI from image aspect ratio * Rv=Nv/ly, ly=4in * ri=Ni/Di, Ni={ 4, 15, 16} Di={ 3, 11, 9} * lx=ri*ly @@ -1107,7 +1107,7 @@ int[] bNsh= * Ni=15 ri=15/Di => Nh=k*60 * Ni=16 ri=16/Di => Nh=k*64 * - * resolution DPI from dot aspect ratio, general algorithm, + * resolution DPI from dot aspect ratio, general algorithm, * * rd=Nd/Dd=ldx/ldy * @@ -1119,7 +1119,7 @@ int[] bNsh= * * ldx=1/(m*Dd), ldy=1/(m*Nd), Rh=m*Dd, Rv=m*Nd * - * and + * and * * lx=Nh*ldx=Nh/(m*Dd), ly=Nv*ldy=Nv/(m*Nd) * @@ -1154,8 +1154,8 @@ if (verbose > 1) { //size(xsize, ysize, Aspect); // should not have any effect Nsy=bNsy[bsys]; // grating size in lines 42,43 or 34,35 -Nshift=bNsh[bsys]; // shift image up: pre 1997 =3, 2007 =0 -fs=1e6*bfs[bsys]*os; +Nshift=bNsh[bsys]; // shift image up: pre 1997 =3, 2007 =0 +fs=1e6*bfs[bsys]*os; Na=0; // add 1,0,-1 to height of hor center squares for even Na+Nsy Ttone=fs/250e3; // period of ft=250 kHz, fs/ft=54 @@ -1185,8 +1185,8 @@ if (verbose > 1) { } rmaxi=2*divsy+1; -/* Nsyc: center square height - * line pairing test: verify distance of center to top and bot +/* Nsyc: center square height + * line pairing test: verify distance of center to top and bot * distance is odd ==> top=even/odd, cent=odd/even, bot=even/odd * * Nsyc odd: not possible @@ -1215,7 +1215,7 @@ if (Nsyc%2 != 0) { } else if (Nsyc%4 == 0) { Nyst=1; /* stagger */ } -for (i=0; i<=divsy; ++i) { +for (i=0; i<=divsy; ++i) { int iu, id, ou, od, ru, rd; iu=divsy-i; @@ -1228,7 +1228,7 @@ for (i=0; i<=divsy; ++i) { } rcrowc[iu]=Nvc-ou; rcrowc[id]=Nvc-od; - + ru=Nvc-(ou+Nyst); rd=Nvc-(od+Nyst); @@ -1253,7 +1253,7 @@ int divsx, Nhc, Nl, Nr, cmaxi; lsq=Nsy*yd; Nsx=lsq/xd; /* floating point */ -divsx=floor(((Nh-10*os)/Nsx-1)/2); +divsx=floor(((Nh-10*os)/Nsx-1)/2); Nhc=round(Nh/2); rdistx=(1+2*divsx)*Nsx; Nl=Nhc-round(rdistx/2); @@ -1264,10 +1264,10 @@ cmaxi=2*divsx+1; int[] coff, coffl, coffr; int[] rccoll, rccolc, rccolr; -for (i=0; i<=divsx; ++i) { +for (i=0; i<=divsx; ++i) { int off, offl, offr, il, ir; real cdist; - + cdist=Nsx*(1+2*i); /* horizontal distance 2 symmetrical vert lines */ off=round(cdist/2); // write(cdist, off); @@ -1277,7 +1277,7 @@ for (i=0; i<=divsx; ++i) { coff[i]=off; coffl[i]=offl; coffr[i]=offr; - + if (verbose > 1) { write(cdist, off); } @@ -1290,7 +1290,7 @@ for (i=0; i<=divsx; ++i) { rccoll[ir]=Nhc+offl; rccolc[ir]=Nhc+off; - rccolr[ir]=Nhc+offr; + rccolr[ir]=Nhc+offr; } Nl=rccolc[0]; Nr=Nh-rccolc[cmaxi]; @@ -1299,9 +1299,9 @@ if (verbose > 1) { } /**** draw gray background ****/ -{ +{ path zz; - + //zz=tvrect(0,0, Nh,Nv, xd,yd,Nv); /* keep white canvas for castellations */ zz=tvrect(rccoll[0],rcrowt[0], rccolr[cmaxi],rcrowb[rmaxi], xd,yd,Nv); @@ -1355,16 +1355,16 @@ for (i=0; i<=rmaxi; ++i) { /**** draw 2*divsx+2 vertical gridlines ****/ for (i=0; i<=cmaxi; ++i) { path zzv; - zzv=tvrect(rccoll[i],0, rccolr[i],Nv, xd,yd,Nv); - fill(zzv, p=pwhite); + zzv=tvrect(rccoll[i],0, rccolr[i],Nv, xd,yd,Nv); + fill(zzv, p=pwhite); } /**** castellations ****/ castelhor(colortv, rccoll, rccolr, cmaxi, Nh, rcrowt[0], rcrowb[rmaxi], - pdefault, xd, yd, Nv); + pdefault, xd, yd, Nv); castelver(colortv, rccoll[0], rccolr[cmaxi], Nh, rcrowb, rcrowt, rmaxi, - pdefault, xd, yd, Nv); + pdefault, xd, yd, Nv); /****** markers for 4/3 aspect ratio ******/ if (rimage>4/3) { @@ -1373,59 +1373,59 @@ if (rimage>4/3) { /****** line pairing center ******/ centerline(colortv, rccoll, rccolc, rccolr, divsx, Nhc, os, - rcrowt, rcrowc, rcrowb, divsy, Nvc, - ccenter, rcoff, rcright, rcleft, pdefault, xd, yd, Nv); + rcrowt, rcrowc, rcrowb, divsy, Nvc, + ccenter, rcoff, rcright, rcleft, pdefault, xd, yd, Nv); if (colortv>0) { /* topbw structure */ - topbw(coff, Nhc, os, rcrowc[divsy-5], rcrowc[divsy-4], rcrowc[divsy-3], - ccenter, rcleft[divsy-4], rcleft[divsy-3], rcright[divsy-4], - rcright[divsy-3], pdefault, xd, yd, Nv); + topbw(coff, Nhc, os, rcrowc[divsy-5], rcrowc[divsy-4], rcrowc[divsy-3], + ccenter, rcleft[divsy-4], rcleft[divsy-3], rcright[divsy-4], + rcright[divsy-3], pdefault, xd, yd, Nv); /* 250 kHz */ - testtone(Ttone, rcrowc[divsy-3], rcrowc[divsy-2], + testtone(Ttone, rcrowc[divsy-3], rcrowc[divsy-2], cx, cy, crad, pdefault, xd, yd, Nv); - /* color bars */ - colorbars(coff, Nhc, rcrowc[divsy-2], rcrowc[divsy-1], rcrowc[divsy], - ccenter, rcleft[divsy-2], rcleft[divsy], rcright[divsy-2], - rcright[divsy], pdefault, xd, yd, Nv); + /* color bars */ + colorbars(coff, Nhc, rcrowc[divsy-2], rcrowc[divsy-1], rcrowc[divsy], + ccenter, rcleft[divsy-2], rcleft[divsy], rcright[divsy-2], + rcright[divsy], pdefault, xd, yd, Nv); /* test frequencies */ testfreqs(ftones, coff, Nhc, rcrowc[divsy+1], rcrowc[divsy+2], - rcrowc[divsy+3], ccenter, rcleft[divsy+1], rcleft[divsy+3], - rcright[divsy+1],rcright[divsy+3], pdefault, xd, yd, Nv); + rcrowc[divsy+3], ccenter, rcleft[divsy+1], rcleft[divsy+3], + rcright[divsy+1],rcright[divsy+3], pdefault, xd, yd, Nv); /* gray bars */ graybars(coff, Nhc, rcrowc[divsy+3], rcrowc[divsy+4], ccenter, - rcleft[divsy+3], rcleft[divsy+4], - rcright[divsy+3], rcright[divsy+4], pdefault, xd,yd,Nv); + rcleft[divsy+3], rcleft[divsy+4], + rcright[divsy+3], rcright[divsy+4], pdefault, xd,yd,Nv); /* PAL ears */ if (colortv == 1) { - palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, -1, + palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, -1, pdefault, xd, yd, Nv); - palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, 1, + palears(coff,coffr,coffl, Nhc, rcrowt, rcrowb, Nvc, divsy, 1, pdefault, xd, yd, Nv); } else if (colortv == 2) { - ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -1, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -1, pdefault, xd, yd, Nv); - ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 1, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 1, pdefault, xd, yd, Nv); - ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -2, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, -2, pdefault, xd, yd, Nv); - ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 2, + ntscbars(rccoll, rccolr, divsx, rcrowt, rcrowb, divsy, 2, pdefault, xd, yd, Nv); } /* bottom wh - black - wh */ - bottombw(round((coff[2]+coff[3])/2), Nhc, rcrowc[divsy+4], rcrowc[divsy+5], - ccenter, rcleft[divsy+4], rcleft[divsy+5], - rcright[divsy+4], rcright[divsy+5], pdefault, xd, yd, Nv); + bottombw(round((coff[2]+coff[3])/2), Nhc, rcrowc[divsy+4], rcrowc[divsy+5], + ccenter, rcleft[divsy+4], rcleft[divsy+5], + rcright[divsy+4], rcright[divsy+5], pdefault, xd, yd, Nv); /* bottom yellow red circle */ - bottomcirc(coff[0], Nhc, rcrowc[divsy+5], cx, cy, crad, - ccenter, rcleft[divsy+5], rcright[divsy+5], pdefault, xd, yd, Nv); + bottomcirc(coff[0], Nhc, rcrowc[divsy+5], cx, cy, crad, + ccenter, rcleft[divsy+5], rcright[divsy+5], pdefault, xd, yd, Nv); } /********************** set id *********************/ @@ -1466,10 +1466,10 @@ if (colortv>0) { colNsy = round((rccolc[divsx+5]+rccolc[divsx+6])/2); Npos = tvps(colNsy,rowNsy, xd,yd,Nv); iNsy = format("%i", Nsy); - - if (colortv>0) { + + if (colortv>0) { pbw=pdefault+gray(1.0); - } else { + } else { pbw=pdefault+gray(0.0); } label(ires, rpos, p=pbw); diff --git a/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy b/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy index 9121ad6444d..ee25cd0bd3a 100644 --- a/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy +++ b/Master/texmf-dist/doc/asymptote/examples/twistedtubes.asy @@ -1,30 +1,30 @@ -import graph3; -import palette; - -size(300,300,keepAspect=true); - +import graph3; +import palette; + +size(300,300,keepAspect=true); + real w=0.4; -real f(triple t) {return sin(t.x);} +real f(triple t) {return sin(t.x);} triple f1(pair t) {return (cos(t.x)-2cos(w*t.y),sin(t.x)-2sin(w*t.y),t.y);} triple f2(pair t) {return (cos(t.x)+2cos(w*t.y),sin(t.x)+2sin(w*t.y),t.y);} triple f3(pair t) {return (cos(t.x)+2sin(w*t.y),sin(t.x)-2cos(w*t.y),t.y);} triple f4(pair t) {return (cos(t.x)-2sin(w*t.y),sin(t.x)+2cos(w*t.y),t.y);} -surface s1=surface(f1,(0,0),(2pi,10),8,8,Spline); -surface s2=surface(f2,(0,0),(2pi,10),8,8,Spline); -surface s3=surface(f3,(0,0),(2pi,10),8,8,Spline); -surface s4=surface(f4,(0,0),(2pi,10),8,8,Spline); +surface s1=surface(f1,(0,0),(2pi,10),8,8,Spline); +surface s2=surface(f2,(0,0),(2pi,10),8,8,Spline); +surface s3=surface(f3,(0,0),(2pi,10),8,8,Spline); +surface s4=surface(f4,(0,0),(2pi,10),8,8,Spline); pen[] Rainbow=Rainbow(); -s1.colors(palette(s1.map(f),Rainbow)); -s2.colors(palette(s2.map(f),Rainbow)); -s3.colors(palette(s3.map(f),Rainbow)); -s4.colors(palette(s4.map(f),Rainbow)); +s1.colors(palette(s1.map(f),Rainbow)); +s2.colors(palette(s2.map(f),Rainbow)); +s3.colors(palette(s3.map(f),Rainbow)); +s4.colors(palette(s4.map(f),Rainbow)); defaultrender.merge=true; -draw(s1); +draw(s1); draw(s2); draw(s3); draw(s4); diff --git a/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy b/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy index e84fdd537c3..967f1a6123d 100644 --- a/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy +++ b/Master/texmf-dist/doc/asymptote/examples/unitoctant.asy @@ -1,35 +1,24 @@ import graph3; -currentprojection=orthographic(5,4,2); +currentprojection=orthographic(5,5,8); size(0,150); -patch s=octant1x; -draw(surface(s),green+opacity(0.5)); -draw(s.external(),blue); +patch s0=octant1.s[0]; +patch s1=octant1.s[1]; +draw(surface(s0),green+opacity(0.5)); +draw(surface(s1),green+opacity(0.5)); +draw(s0.external(),blue); +draw(s1.external(),blue); -triple[][] P=s.P; +triple[][] P0=s0.P; +triple[][] P1=s1.P; for(int i=0; i < 4; ++i) - dot(P[i],red); + dot(P0[i],red+0.75mm); + +for(int i=0; i < 4; ++i) + dot(P1[i],red+0.65mm); axes3("$x$","$y$",Label("$z$",align=Z)); -triple P00=P[0][0]; -triple P10=P[1][0]; -triple P01=P[0][1]; -triple P02=P[0][2]; -triple P11=P[1][1]; -triple P12=P[1][2]; -triple Q11=XYplane(xypart(P11)); -triple Q12=XYplane(xypart(P12)); - -draw(P11--Q11,dashed); -draw(P12--Q12,dashed); -draw(O--Q12--Q11--(Q11.x,0,0)); -draw(Q12--(Q12.x,0,0)); - -label("$(1,0,0)$",P00,-2Y); -label("$(1,a,0)$",P10,-Z); -label("$(1,0,a)$",P01,-2Y); -label("$(a,0,1)$",P02,Z+X-Y); -label("$(1,a,a)$",P11,3X); -label("$(a,a^2,1)$",P12,7X+Y); + + diff --git a/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy b/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy new file mode 100644 index 00000000000..e84fdd537c3 --- /dev/null +++ b/Master/texmf-dist/doc/asymptote/examples/unitoctantx.asy @@ -0,0 +1,35 @@ +import graph3; + +currentprojection=orthographic(5,4,2); + +size(0,150); +patch s=octant1x; +draw(surface(s),green+opacity(0.5)); +draw(s.external(),blue); + +triple[][] P=s.P; + +for(int i=0; i < 4; ++i) + dot(P[i],red); + +axes3("$x$","$y$",Label("$z$",align=Z)); +triple P00=P[0][0]; +triple P10=P[1][0]; +triple P01=P[0][1]; +triple P02=P[0][2]; +triple P11=P[1][1]; +triple P12=P[1][2]; +triple Q11=XYplane(xypart(P11)); +triple Q12=XYplane(xypart(P12)); + +draw(P11--Q11,dashed); +draw(P12--Q12,dashed); +draw(O--Q12--Q11--(Q11.x,0,0)); +draw(Q12--(Q12.x,0,0)); + +label("$(1,0,0)$",P00,-2Y); +label("$(1,a,0)$",P10,-Z); +label("$(1,0,a)$",P01,-2Y); +label("$(a,0,1)$",P02,Z+X-Y); +label("$(1,a,a)$",P11,3X); +label("$(a,a^2,1)$",P12,7X+Y); diff --git a/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy b/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy index 4a35e09559b..00baab085e6 100644 --- a/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy +++ b/Master/texmf-dist/doc/asymptote/examples/vertexshading.asy @@ -14,7 +14,7 @@ draw(surface(shift(Z)*unitsquare3, new pen[] {red,green+opacity(0.5),blue,black}), prc() ? nolight : currentlight); draw(surface(shift(X)*((0,0,0)..controls (1,0,0) and (2,0,0)..(3,0,0).. - controls (2.5,sqrt(3)/2,0) and (2,sqrt(3),0).. - (1.5,3*sqrt(3)/2,0).. - controls (1,sqrt(3),0) and (0.5,sqrt(3)/2,0)..cycle), + controls (2.5,sqrt(3)/2,0) and (2,sqrt(3),0).. + (1.5,3*sqrt(3)/2,0).. + controls (1,sqrt(3),0) and (0.5,sqrt(3)/2,0)..cycle), new triple[] {(1.5,sqrt(3)/2,2)},new pen[] {red,green,blue})); diff --git a/Master/texmf-dist/doc/asymptote/examples/worldmap.asy b/Master/texmf-dist/doc/asymptote/examples/worldmap.asy index 23a80c69be6..4d03587b31e 100644 --- a/Master/texmf-dist/doc/asymptote/examples/worldmap.asy +++ b/Master/texmf-dist/doc/asymptote/examples/worldmap.asy @@ -3,7 +3,7 @@ size(20cm); // The required data file is available here: // http://www.uni-graz.at/~schwaige/asymptote/worldmap.dat // This data was originally obtained from -// http://www.ngdc.noaa.gov/mgg_coastline/mapit.jsp +// http://www.ngdc.noaa.gov/mgg_coastline/mapit.jsp real findtheta(real phi, real epsilon=realEpsilon) { // Determine for given phi the unique solution -pi/2 <= theta <= pi/2 off @@ -23,12 +23,12 @@ real findtheta(real phi, real epsilon=realEpsilon) { pair mollweide(real lambda, real phi, real lambda0=0){ // calculate the Mollweide projection centered at lambda0 for the point - // with coordinates(phi,lambda) + // with coordinates(phi,lambda) static real c1=2*sqrt(2)/pi; static real c2=sqrt(2); real theta=findtheta(phi); return(c1*(lambda-lambda0)*cos(theta), c2*sin(theta)); -} +} guide gfrompairs(pair[] data){ guide gtmp; @@ -54,7 +54,7 @@ while(true) { if(spstr[0] == "#") {++cnt; arrarrpair[cnt]=new pair[] ; newseg=true;} if(spstr[0] != "#" && newseg) { string[] spstr1=split(str,'\t'); // separator is TAB not SPACE - pair tmp=((real) spstr1[1],(real) spstr1[0]); + pair tmp=((real) spstr1[1],(real) spstr1[0]); arrarrpair[cnt].push(tmp); } } @@ -78,7 +78,7 @@ pair[] constlat(real phi, int np=100) { for(int j=1; j <= 5; ++j) draw(gfrompairs(constlong(-180+j/6*360)),white); draw(gfrompairs(constlong(-180)),1.5bp+white); draw(gfrompairs(constlong(180)),1.5bp+white); -for(int j=0; j <= 12; ++j) draw(gfrompairs(constlat(-90+j/6*180)),white); +for(int j=0; j <= 12; ++j) draw(gfrompairs(constlat(-90+j/6*180)),white); //draw(gfrompairs(constlong(10)),dotted); close(in); diff --git a/Master/texmf-dist/doc/asymptote/examples/xstitch.asy b/Master/texmf-dist/doc/asymptote/examples/xstitch.asy index 5f332881733..b2300ee9ea4 100644 --- a/Master/texmf-dist/doc/asymptote/examples/xstitch.asy +++ b/Master/texmf-dist/doc/asymptote/examples/xstitch.asy @@ -42,22 +42,22 @@ write(histogram); pen linepen(int i, int max) { - real w=i == -1 || i == max+1 ? 2.0 : - i % 10 == 0 || i == max ? 1.0 : - i % 5 == 0 ? 0.8 : + real w=i == -1 || i == max+1 ? 2.0 : + i % 10 == 0 || i == max ? 1.0 : + i % 5 == 0 ? 0.8 : 0.25; return linewidth(w); } pen xpen(int i) { - return linepen(i,width)+(i == width/2 ? red : - i == 75 || i == width-75 ? dashed : + return linepen(i,width)+(i == width/2 ? red : + i == 75 || i == width-75 ? dashed : black); } pen ypen(int i) { - return linepen(i,height)+(i == height/2 ? red : - i == 75 || i == height-75 ? dashed : + return linepen(i,height)+(i == height/2 ? red : + i == 75 || i == height-75 ? dashed : black); } diff --git a/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy b/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy index 6d645a49664..eac387247ed 100644 --- a/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy +++ b/Master/texmf-dist/doc/asymptote/examples/xxsq01x-1.asy @@ -28,8 +28,8 @@ xaxis3(Label("$x$",1),Arrow3); yaxis3(Label("$y$",1),Arrow3); dot(Label("$(1,1)$"),(1,1,0)); dot(Label("$(-1,1)$"),(-1,1,0),W); -arrow("$y=x^{2}$",F3(0.7),X,1cm,red); -arrow("$y=x$",(0.3,0.3,0),X,1.5cm,red); +arrow("$y=x^{2}$",F3(0.7),X,1cm,red); +arrow("$y=x$",(0.3,0.3,0),X,1.5cm,red); draw(circle((-1,1,0),2,Y),dashed); draw((-1,1,0)--(1,1,0),dashed); draw(shift(-X)*arc(0.02Y,0.3,90,0,0,0,CW),Arrow3); diff --git a/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy b/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy index 770f4fc22cf..9424a1b47dc 100644 --- a/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy +++ b/Master/texmf-dist/doc/asymptote/examples/xxsq01y.asy @@ -25,8 +25,8 @@ xaxis3(Label("$x$",1),Arrow3); yaxis3(Label("$y$",1),ymax=1.25,dashed,Arrow3); dot("$(1,1)$",(1,1,0),X); -arrow("$y=x^{2}$",F3(0.7),X,0.75cm,red); -arrow("$y=x$",(0.8,0.8,0),Y,1cm,red); +arrow("$y=x^{2}$",F3(0.7),X,0.75cm,red); +arrow("$y=x$",(0.8,0.8,0),Y,1cm,red); real r=0.4; draw((r,f(r),0)--(r,r,0),red); diff --git a/Master/texmf-dist/doc/asymptote/examples/yingyang.asy b/Master/texmf-dist/doc/asymptote/examples/yingyang.asy index 68b0d0eea74..10a08ec98d8 100644 --- a/Master/texmf-dist/doc/asymptote/examples/yingyang.asy +++ b/Master/texmf-dist/doc/asymptote/examples/yingyang.asy @@ -1,5 +1,5 @@ size(0,25cm); -guide center=(0,1){W}..tension 0.8..(0,0){(1,-.5)}..tension 0.8..{W}(0,-1); +guide center=(0,1){W}..tension 0.8..(0,0){(1,-.5)}..tension 0.8..{W}(0,-1); draw((0,1)..(-1,0)..(0,-1)); filldraw(center{E}..{N}(1,0)..{W}cycle); diff --git a/Master/texmf-dist/doc/info/asy-faq.info b/Master/texmf-dist/doc/info/asy-faq.info index 94a02e1e38a..dc69d1917e7 100644 --- a/Master/texmf-dist/doc/info/asy-faq.info +++ b/Master/texmf-dist/doc/info/asy-faq.info @@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) ASYMPTOTE FREQUENTLY ASKED QUESTIONS - 25 Mar 2020 + 2021-02-19 This is the list of Frequently Asked Questions about Asymptote (asy). @@ -223,7 +223,7 @@ Question 1.2. How do I obtain Asymptote? Binary releases are available for Linux, MacOS X, and Microsoft Windows platforms, in addition to full source code, from the website -http://asymptote.sourceforge.net/. Many Linux distributions (such as +https://asymptote.sourceforge.io/. Many Linux distributions (such as RedHat and Debian) now include an Asymptote package (check your distribution's documentation for further information about this). @@ -234,7 +234,7 @@ Question 1.3. Where can I ask questions about Asymptote? If you have a question, please try to find an answer in this FAQ, in the extensive Asymptote documentation at -http://asymptote.sourceforge.net/doc/, or search the forum: +https://asymptote.sourceforge.io/doc/, or search the forum: http://sourceforge.net/forum/forum.php?forum_id=409349. @@ -316,7 +316,7 @@ File: asy-faq.info, Node: Question 2.3, Next: Question 2.4, Previous: Question 2 Question 2.3. What do I do if I get the error: Error: pdfetex (file pdftex.cfg): cannot open config file...texinfo.tex appears to be broken? -Simply put http://asymptote.sourceforge.net/asymptote.pdf in the directory +Simply put https://asymptote.sourceforge.io/asymptote.pdf in the directory doc and repeat the command make all. Or, if you don't want to build a local copy of the documentation, simply proceed with make install-asy. @@ -340,7 +340,7 @@ detailed guide on the topic. You can download it from http://dario.dse.nl/projects/asylatex/. Philippe Ivaldi has contributed an Asymptote mode for Emacs users -http://asymptote.sourceforge.net/doc/Editing-modes.html, which includes a +https://asymptote.sourceforge.io/doc/Editing-modes.html, which includes a lasy-mode that allows one to compile and view the output of one \begin{asy}...\end{asy} section at a time. @@ -541,7 +541,7 @@ File: asy-faq.info, Node: Question 4.4, Next: Question 4.5, Previous: Question 4 Question 4.4. How can I use international fonts in Asymptote labels? -See http://asymptote.sourceforge.net/doc/unicode.html. +See https://asymptote.sourceforge.io/doc/Pens.html. File: asy-faq.info, Node: Question 4.5, Next: Question 4.6, Previous: Question 4.4, Up: Section 4 @@ -586,8 +586,8 @@ Question 4.9. How can I draw some squares and circles of a fixed size and put a Fixed-size objects should be drawn on a separate picture and then added to currentpicture. Here is one way (see also -http://asymptote.sourceforge.net/gallery/subpictures.asy and -http://asymptote.sourceforge.net/gallery/mosquito.asy): +https://asymptote.sourceforge.io/gallery/subpictures.asy and +https://asymptote.sourceforge.io/gallery/mosquito.asy): real u=2cm; @@ -904,7 +904,7 @@ label. Other possible overwrite arguments are Allow (allows overlapping labels; the default), Suppress (an overlapping label will not be written at all), SuppressQuiet, and MoveQuiet. The last two achieve the same result as the non-quiet types, but will not notify you which labels are -overlapping. See: http://asymptote.sourceforge.net/doc/Pens.html. +overlapping. See: https://asymptote.sourceforge.io/doc/Pens.html. In the case of a user-specified tick array, you can change which labels get suppressed/moved by changing the order of array entries. @@ -948,7 +948,7 @@ corner. You can use this option to ensure multiple figures have the same scaling and same resulting figure size (just ensure the two coordinates given to fixedscaling() leaves room for any labels). -See also http://asymptote.sourceforge.net/doc/Frames-and-pictures.html. +See also https://asymptote.sourceforge.io/doc/Frames-and-pictures.html. File: asy-faq.info, Node: Question 6.9, Next: Question 6.10, Previous: Question 6.8, Up: Section 6 @@ -966,7 +966,7 @@ limits((0,0),(1,2),Crop); xaxis("$x$",BottomTop,LeftTicks); yaxis("$y$",LeftRight,RightTicks); -See also http://asymptote.sourceforge.net/doc/graph.html. +See also https://asymptote.sourceforge.io/doc/graph.html. File: asy-faq.info, Node: Question 6.10, Next: Question 6.11, Previous: Question 6.9, Up: Section 6 @@ -1051,7 +1051,7 @@ File: asy-faq.info, Node: Question 6.13, Next: Question 6.14, Previous: Question Question 6.13. How can I make the y axis display base-2 logarithmic values? -See the example http://asymptote.sourceforge.net/gallery/2D +See the example https://asymptote.sourceforge.io/gallery/2D graphs/log2graph.asy. @@ -1061,7 +1061,7 @@ Question 6.14. How can I align the x axes of two graphs on the same figure? An easy way to do this, if the axes to be aligned have the same scaling and size, is illustrated in the example -http://asymptote.sourceforge.net/gallery/2D graphs/alignedaxis.asy. +https://asymptote.sourceforge.io/gallery/2D graphs/alignedaxis.asy. Here is a more general solution to the problem of aligning two arbitrary axes. One fits the second picture to a frame based on the horizontal @@ -1125,7 +1125,7 @@ File: asy-faq.info, Node: Question 6.15, Next: Question 6.16, Previous: Question Question 6.15. How can I change the direction of the y-axis, such that negatives values are on the upper y-axis? Here is a simple example (see also the example -http://asymptote.sourceforge.net/gallery/2D graphs/diatom.asy or the +https://asymptote.sourceforge.io/gallery/2D graphs/diatom.asy or the discussion of Linear(-1) in the documentation): import graph; @@ -1159,7 +1159,7 @@ Yes, use the parametric form y=t x=(t-2)^2+1 -See the example http://asymptote.sourceforge.net/gallery/2D +See the example https://asymptote.sourceforge.io/gallery/2D graphs/parametricgraph.asy. @@ -1382,7 +1382,7 @@ Question 7.8. Is there a debugger for asy? Yes, Asymptote includes a line-based debugger: -http://asymptote.sourceforge.net/doc/Debugger.html +https://asymptote.sourceforge.io/doc/Debugger.html File: asy-faq.info, Node: Question 7.9, Next: Question 8.1, Previous: Question 7.8, Up: Section 7 @@ -1441,7 +1441,7 @@ pictures and distinguishes between true-size objects and objects that should scale with the picture size. The resulting linear programming problem is solved via the Simplex method. -See the http://asymptote.sourceforge.net/gallery/dimension.asy example for +See the https://asymptote.sourceforge.io/gallery/dimension.asy example for an example of how deferred drawing is used to accomodate both user and true-size (PostScript) coordinates. @@ -1495,7 +1495,7 @@ PQ and pq. We find using routines like extension more explicit and less confusing to new users. But we could be persuaded to add something similar if someone can justify the need. In the meantime, one can always use the explicit built-in linear solver solve (see -http://asymptote.sourceforge.net/doc/solve.html), which uses LU +https://asymptote.sourceforge.io/doc/solve.html), which uses LU decomposition. @@ -1578,7 +1578,7 @@ void clip(picture pic=currentpicture, real width, real height) clip(100,100); See also the discussion of tilings in the documentation: -http://asymptote.sourceforge.net/doc/Pens.html. +https://asymptote.sourceforge.io/doc/Pens.html. File: asy-faq.info, Node: Section 9, Previous: Section 8, Up: Top @@ -1612,7 +1612,7 @@ import settings; interactiveView=false; batchView=false; in their config.asy file. See -http://asymptote.sourceforge.net/doc/Options.html. +https://asymptote.sourceforge.io/doc/Options.html. File: asy-faq.info, Node: Question 9.2, Next: Question 9.3, Previous: Question 9.1, Up: Section 9 @@ -1631,8 +1631,8 @@ Convert them to eps format and use the graphic(string) function just like a Label: label(graphic("file"),(0,0)); -See the example http://asymptote.sourceforge.net/gallery/orthocenter.asy -and http://asymptote.sourceforge.net/doc/label.html. +See the example https://asymptote.sourceforge.io/gallery/orthocenter.asy +and https://asymptote.sourceforge.io/doc/label.html. File: asy-faq.info, Node: Question 9.4, Next: Question 9.5, Previous: Question 9.3, Up: Section 9 diff --git a/Master/texmf-dist/doc/info/asymptote.info b/Master/texmf-dist/doc/info/asymptote.info index a1ca6774244..042d9085414 100644 --- a/Master/texmf-dist/doc/info/asymptote.info +++ b/Master/texmf-dist/doc/info/asymptote.info @@ -1,11 +1,11 @@ This is asymptote.info, produced by makeinfo version 6.6 from asymptote.texi. -This file documents 'Asymptote', version 2.65. +This file documents 'Asymptote', version 2.69. <https://asymptote.sourceforge.io> - Copyright (C) 2004-19 Andy Hammerlindl, John Bowman, and Tom Prince. + Copyright (C) 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Lesser General Public License @@ -22,11 +22,11 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir) Asymptote ********* -This file documents 'Asymptote', version 2.65. +This file documents 'Asymptote', version 2.69. <https://asymptote.sourceforge.io> - Copyright (C) 2004-19 Andy Hammerlindl, John Bowman, and Tom Prince. + Copyright (C) 2004-20 Andy Hammerlindl, John Bowman, and Tom Prince. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Lesser General Public License @@ -126,6 +126,7 @@ Base modules * stats:: Statistics routines and histograms * patterns:: Custom fill and draw patterns * markers:: Custom path marker routines +* map:: Map keys to values * tree:: Dynamic binary search tree * binarytree:: Binary tree drawing module * drawtree:: Tree drawing module @@ -136,8 +137,6 @@ Base modules * embed:: Embedding movies, sounds, and 3D objects * slide:: Making presentations with 'Asymptote' * MetaPost:: 'MetaPost' compatibility routines -* unicode:: Accept 'unicode' (UTF-8) characters -* latin1:: Accept 'ISO 8859-1' characters * babel:: Interface to 'LaTeX' 'babel' package * labelpath:: Drawing curved labels * labelpath3:: Drawing curved labels in 3D @@ -175,8 +174,12 @@ provides a mathematical coordinate-based framework for technical drawing. Labels and equations are typeset with 'LaTeX', for overall document consistency, yielding the same high-quality level of typesetting that 'LaTeX' provides for scientific text. By default it -produces 'PostScript' output, but it can also generate any format that -the 'ImageMagick' package can produce. +produces 'PostScript' output, but it can also generate 'PDF', 'SVG', +'WebGL', 'PRC', and any format that the 'ImageMagick' package can +produce. You can even try it out in your Web browser without installing +it, using the 'Asymptote Web Application': + + <http://asymptote.ualberta.ca> A major advantage of 'Asymptote' over other graphics packages is that it is a high-level programming language, as opposed to just a graphics @@ -292,8 +295,8 @@ The 'texhash' command, which installs LaTeX style files, is optional. The executable file will be '/usr/local/bin/asy') and example code will be installed by default in '/usr/local/share/doc/asymptote/examples'. -Fedora users can easily install the most recent version of 'Asymptote' -with the command +Fedora users can easily install a recent version of 'Asymptote' with the +command dnf --enablerepo=rawhide install asymptote To install the latest version of 'Asymptote' on a Debian-based @@ -332,7 +335,7 @@ self-extracting 'Asymptote' executable 'asymptote-x.xx-setup.exe', where A working TeX implementation (we recommend <https://www.tug.org/texlive> or <http://www.miktex.org>) will be required to typeset labels. You will also need to install 'GPL -Ghostscript' version 9.14 or later from +Ghostscript' version 9.52 or later from <http://downloads.ghostscript.com/public>. To view 'PostScript' output, you can install the program 'gsview' @@ -365,7 +368,7 @@ file is updated. The default 'UNIX' 'PostScript' viewer 'gv' supports this (via a 'SIGHUP' signal). Version 'gv-3.6.3' or later (from <https://ftp.gnu.org/gnu/gv/>) is required for interactive mode to work properly. Users of 'ggv' will need to enable 'Watch file' under -'Edit/Postscript Viewer Preferences'. Users of 'gsview' will need to +'Edit/PostScript Viewer Preferences'. Users of 'gsview' will need to enable 'Options/Auto Redisplay' (however, under 'MSDOS' it is still necessary to click on the 'gsview' window; under 'UNIX' one must manually redisplay by pressing the 'r' key). @@ -397,7 +400,9 @@ The configuration variable 'htmlviewer' specifies the browser to use to display 3D 'WebGL' output. The default setting is 'google-chrome' under 'UNIX' and 'cmd' under 'Microsoft Windows'. Note that 'Internet Explorer' does not support 'WebGL'; 'Microsoft Windows' users should set -their default html browser to 'chrome' or 'microsoft-edge'. +their default html browser to 'chrome' or 'microsoft-edge'. By default, +2D and 3D 'HTML' images expand to the enclosing canvas; this can be +disabled by setting the configuation variable 'absolute' to 'true'. On 'UNIX' systems, to support automatic document reloading of 'PDF' files in 'Adobe Reader', we recommend copying the file 'reload.js' from @@ -462,8 +467,8 @@ File: asymptote.info, Node: Search paths, Next: Compiling from UNIX source, P 2.5 Search paths ================ -In looking for 'Asymptote' system files, 'asy' will search the following -paths, in the order listed: +In looking for 'Asymptote' files, 'asy' will search the following paths, +in the order listed: 1. The current directory; 2. A list of one or more directories specified by the configuration variable 'dir' or environment variable 'ASYMPTOTE_DIR' (separated @@ -475,6 +480,9 @@ paths, in the order listed: 4. The 'Asymptote' system directory (by default, '/usr/local/share/asymptote' under 'UNIX' and 'C:\Program Files\Asymptote' under 'MSDOS'). + 5. The 'Asymptote' examples directory (by default, + '/usr/local/share/doc/asymptote/examples' under 'UNIX' and + 'C:\Program Files\Asymptote\examples' under 'MSDOS'). File: asymptote.info, Node: Compiling from UNIX source, Next: Editing modes, Prev: Search paths, Up: Installation @@ -498,18 +506,16 @@ used; if it is old we recommend first putting in the 'Asymptote' source directory. On 'UNIX' platforms (other than 'MacOS X'), we recommend using -version '3.0.0' of the 'freeglut' library. To compile 'freeglut', +version '3.2.1' of the 'freeglut' library. To compile 'freeglut', download - <https://prdownloads.sourceforge.net/freeglut/freeglut-3.0.0.tar.gz> + <https://prdownloads.sourceforge.net/freeglut/freeglut-3.2.1.tar.gz> and type (as the root user): -gunzip freeglut-3.0.0.tar.gz -tar -xf freeglut-3.0.0.tar -cd freeglut-3.0.0 -./configure --prefix=/usr -cmake . +gunzip freeglut-3.2.1.tar.gz +tar -xf freeglut-3.2.1.tar +cd freeglut-3.2.1 +cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS=-fcommon . make make install -cd .. Then compile 'Asymptote' with the commands ./configure @@ -528,9 +534,10 @@ done as the root user. To install without root privileges, change the ./configure --prefix=$HOME/asymptote One can disable use of the Boehm garbage collector by configuring with './configure --disable-gc'. For a list of other configuration -options, say './configure --help'. For example, one can tell configure -to look for header files and libraries in nonstandard locations: -./configure CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib +options, say './configure --help'. For example, under 'MacOS X', one +can tell configure to use the 'clang' compilers and look for header +files and libraries in nonstandard locations: +./configure CC=clang CXX=clang++ CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib If you are compiling 'Asymptote' with 'gcc', you will need a relatively recent version (e.g. 3.4.4 or later). For full interactive @@ -618,7 +625,10 @@ cd asymptote make all make install -To compile without optimization, use the command 'make CFLAGS=-g'. +To compile without optimization, use the command 'make CFLAGS=-g'. On +'Ubuntu' systems, you may need to first install the required +dependencies: +apt-get build-dep asymptote File: asymptote.info, Node: Uninstall, Prev: Git, Up: Installation @@ -652,7 +662,7 @@ A concise introduction to 'Asymptote' is given here. For a more thorough introduction, see the excellent 'Asymptote' tutorial written by Charles Staats: - <https://math.uchicago.edu/~cstaats/Charles_Staats_III/Notes_and_papers_files/asymptote_tutorial.pdf> + <https://asymptote.sourceforge.io/asymptote_tutorial.pdf> Another 'Asymptote' tutorial is available as a wiki, with images rendered by an online Asymptote engine: @@ -798,7 +808,7 @@ the initial node, as in this approximation (accurate to within 0.06%) of a unit circle: path unitcircle=E..N..W..S..cycle; -An 'Asymptote' path, being connected, is equivalent to a 'Postscript +An 'Asymptote' path, being connected, is equivalent to a 'PostScript subpath'. The '^^' binary operator, which requests that the pen be moved (without drawing or affecting endpoint curvatures) from the final point of the left-hand path to the initial point of the right-hand path, @@ -820,8 +830,8 @@ of the paths: filldraw(unitcircle^^reverse(g),yellow,black); The '^^' operator is used by the 'box(triple, triple)' function in -the module 'three.asy' to construct the edges of a cube 'unitbox' -without retracing steps (*note three::): +the module 'three' to construct the edges of a cube 'unitbox' without +retracing steps (*note three::): import three; currentprojection=orthographic(5,4,2,center=true); @@ -873,6 +883,9 @@ layer appearing on top. Within each layer, labels, images, and verbatim 'tex' commands are always drawn after the 'PostScript' objects in that layer. + A page break can be generated with the command +void newpage(picture pic=currentpicture); + While some of these drawing commands take many options, they all have sensible default values (for example, the picture argument defaults to currentpicture). @@ -930,18 +943,19 @@ equivalently 'ArcArrow'), 'MidArcArrow', and 'ArcArrows'. 'labelmargin(p)' to avoid overlap with other drawn objects. Typical values of 'margin' are 'NoMargin', 'BeginMargin', 'EndMargin' (or equivalently 'Margin'), and 'Margins' (which leaves a margin at both -ends of the path). One may use 'Margin(real begin, real end)' to +ends of the path). One may use 'Margin(real begin, real end=begin)' to specify the size of the beginning and ending margin, respectively, in multiples of the units 'labelmargin(p)' used for aligning labels. Alternatively, 'BeginPenMargin', 'EndPenMargin' (or equivalently -'PenMargin'), 'PenMargins', 'PenMargin(real begin, real end)' specify a -margin in units of the pen line width, taking account of the pen line -width when drawing the path or arrow. For example, use 'DotMargin', an -abbreviation for 'PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw from -the usual beginning point just up to the boundary of an end dot of width +'PenMargin'), 'PenMargins', 'PenMargin(real begin, real end=begin)' +specify a margin in units of the pen line width, taking account of the +pen line width when drawing the path or arrow. For example, use +'DotMargin', an abbreviation for +'PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw from the usual +beginning point just up to the boundary of an end dot of width 'dotfactor*linewidth(p)'. The qualifiers 'BeginDotMargin', 'EndDotMargin', and 'DotMargins' work similarly. The qualifier -'TrueMargin(real begin, real end)' allows one to specify a margin +'TrueMargin(real begin, real end=begin)' allows one to specify a margin directly in 'PostScript' units, independent of the pen line width. The use of arrows, bars, and margins is illustrated by the examples @@ -1051,7 +1065,8 @@ void axialshade(picture pic=currentpicture, path g, bool stroke=false, pen pena, pair a, bool extenda=true, pen penb, pair b, bool extendb=true); The boolean parameters 'extenda' and 'extendb' indicate whether the -shading should extend beyond the axis endpoints 'a' and 'b'. +shading should extend beyond the axis endpoints 'a' and 'b'. An example +of axial shading is provided in the example file 'axialshade.asy'. Radial gradient shading varying smoothly from 'pena' on the circle with center 'a' and radius 'ra' to 'penb' on the circle with center 'b' @@ -1079,10 +1094,10 @@ Illustrations of Gouraud shading are provided in the example file here: <https://www.adobe.com/content/dam/acom/en/devnet/postscript/pdfs/TN5600.SmoothShading.pdf> - Tensor product shading using fill rule 'fillrule' on patches bounded -by the n cyclic paths of length 4 in path array 'b', using the vertex -colors specified in the n \times 4 pen array 'p' and internal control -points in the n \times 4 array 'z', is implemented with + Tensor product shading using clipping path 'g', fill rule 'fillrule' +on patches bounded by the n cyclic paths of length 4 in path array 'b', +using the vertex colors specified in the n \times 4 pen array 'p' and +internal control points in the n \times 4 array 'z', is implemented with void tensorshade(picture pic=currentpicture, path[] g, bool stroke=false, pen fillrule=currentpen, pen[][] p, path[] b=g, pair[][] z=new pair[][]); @@ -1129,8 +1144,10 @@ void clip(picture pic=currentpicture, path g, stroke=false, the path 'g', using fill rule 'fillrule' (*note fillrule::). If 'stroke=true', the clipped portion is the same as the region that would be drawn with 'draw(pic,g,zerowinding)'; in this case the path 'g' need -not be cyclic. For an illustration of picture clipping, see the first -example in *note LaTeX usage::. +not be cyclic. While clipping has no notion of depth (it transcends +layers and even pages), one can localize clipping to a temporary +picture, which can then be added to 'pic'. For an illustration of +picture clipping, see the first example in *note LaTeX usage::. File: asymptote.info, Node: label, Prev: clip, Up: Drawing commands @@ -1260,12 +1277,12 @@ asy(nativeformat(),"logo"); fill(unitcircle^^(scale(2/11.7)*unitcircle), evenodd+rgb(124/255,205/255,124/255)); label(scale(1.1)*minipage( -"\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\ + "\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\ \smallskip \small The Vector Graphics Language}\\ \smallskip \textsc{Andy Hammerlindl, John Bowman, and Tom Prince} -http://asymptote.sourceforge.net\\ +https://asymptote.sourceforge.io\\ ",8cm),(0,0.6)); label(graphic("logo","height=7cm"),(0,-0.22)); clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd); @@ -1484,12 +1501,12 @@ user-defined types): returns the conjugate of 'z'; 'real length(pair z)' - returns the complex modulus '|z|' of its argument 'z'. For + returns the complex modulus |'z'| of its argument 'z'. For example, pair z=(3,4); length(z); returns the result 5. A synonym for 'length(pair)' is - 'abs(pair)'; + 'abs(pair)'. The function 'abs2(pair z)' returns |'z'|^2; 'real angle(pair z, bool warn=true)' returns the angle of 'z' in radians in the interval @@ -1563,8 +1580,9 @@ user-defined types): Here are the built-in functions for triples: 'real length(triple v)' - returns the length '|v|' of the vector 'v'. A synonym for - 'length(triple)' is 'abs(triple)'; + returns the length |'v'| of its argument 'v'. A synonym for + 'length(triple)' is 'abs(triple)'. The function 'abs2(triple + v)' returns |'v'|^2; 'real polar(triple v, bool warn=true)' returns the colatitude of 'v' measured from the z axis in @@ -2419,7 +2437,7 @@ with one or more color components equal to 1. 'defaultpen(pen)', causes the label alignment routines to use the full label bounding box for alignment. In contrast, 'basealign' requests that the TeX baseline be respected. The base align - setting of a pen is returned by 'int basealigin(pen p=currentpen)'. + setting of a pen is returned by 'int basealign(pen p=currentpen)'. * The font size is specified in TeX points (1 pt = 1/72.27 inches) with the function 'pen fontsize(real size, real @@ -2435,14 +2453,12 @@ with one or more color components equal to 1. fontsize(pen p=currentpen)' and 'real lineskip(pen p=currentpen)', respectively. - * A pen using a specific 'LaTeX' 'NFSS' font is returned by calling - the function 'pen font(string encoding, string family, string - series, string shape)'. The default setting, - 'font("OT1","cmr","m","n")', corresponds to 12pt Computer Modern - Roman; this may be changed with 'defaultpen(pen)'. The font - setting of a pen is returned by 'string font(pen p=currentpen)'. - Support for standardized international characters is provided by - the 'unicode' package (*note unicode::). + * A pen using a specific LaTeX NFSS font is returned by calling the + function 'pen font(string encoding, string family, string series, + string shape)'. The default setting, 'font("OT1","cmr","m","n")', + corresponds to 12pt Computer Modern Roman; this may be changed with + 'defaultpen(pen)'. The font setting of a pen is returned by + 'string font(pen p=currentpen)'. Alternatively, one may select a fixed-size TeX font (on which 'fontsize' has no effect) like '"cmr12"' (12pt Computer Modern @@ -2466,6 +2482,25 @@ with one or more color components equal to 1. pen Symbol(string series="m", string shape="n"); pen ZapfDingbats(string series="m", string shape="n"); + * Starting with the 2018/04/01 release, LaTeX takes UTF-8 as the new + default input encoding. However, you can still set different input + encoding (so as the font, font encoding or even language context). + Here is an example for 'cp1251' and Russian language in Cyrillic + script (font encoding 'T2A'): + texpreamble("\usepackage[math]{anttor}"); + texpreamble("\usepackage[T2A]{fontenc}"); + texpreamble("\usepackage[cp1251]{inputenc}"); + texpreamble("\usepackage[russian]{babel}"); + Support for Chinese, Japanese, and Korean fonts is provided by the + CJK package: + <https://ctan.org/pkg/cjk> + The following commands enable the CJK song family (within a label, + you can also temporarily switch to another family, say kai, by + prepending '"\CJKfamily{kai}"' to the label string): + texpreamble("\usepackage{CJK} + \AtBeginDocument{\begin{CJK*}{GBK}{song}} + \AtEndDocument{\clearpage\end{CJK*}}"); + * The transparency of a pen can be changed with the command: pen opacity(real opacity=1, string blend="Compatible"); The opacity can be varied from '0' (fully transparent) to the @@ -2652,7 +2687,8 @@ power with the '^' operator. The implicit initializer for transforms is 'identity()'. The routines 'shift(transform t)' and 'shiftless(transform t)' return the transforms '(t.x,t.y,0,0,0,0)' and '(0,0,t.xx,t.xy,t.yx,t.yy)' -respectively. +respectively. The function 'bool isometry(transform t)' can be used to +test if 't' is an isometry (preserves distance). File: asymptote.info, Node: Frames and pictures, Next: Files, Prev: Transforms, Up: Programming @@ -2991,7 +3027,7 @@ File: asymptote.info, Node: Files, Next: Variable initializers, Prev: Frames value) files and portable XDR (External Data Representation) binary files. - An input file must first be opened with + An input file can be opened with input(string name="", bool check=true, string comment="#", string mode=""); reading is then done by assignment: file fin=input("test.txt"); @@ -3004,12 +3040,14 @@ character of the string 'comment' specifies a comment character. If this character is encountered in a data file, the remainder of the line is ignored. When reading strings, a comment character followed immediately by another comment character is treated as a single literal -comment character. +comment character. If 'Asymptote' is compiled with support for +'libcurl', 'name' can be a URL. - One can change the current working directory for read operations to -the contents of the string 's' with the function 'string cd(string s)', -which returns the new working directory. If 'string s' is empty, the -path is reset to the value it had at program startup. + Unless the '-noglobalread' command-line option is specified, one can +change the current working directory for read operations to the contents +of the string 's' with the function 'string cd(string s)', which returns +the new working directory. If 'string s' is empty, the path is reset to +the value it had at program startup. When reading pairs, the enclosing parenthesis are optional. Strings are also read by assignment, by reading characters up to but not @@ -3025,9 +3063,11 @@ existing data will be preserved, the position will be set to the end-of-file, and both reading and writing operations will be enabled. For security reasons, writing to files in directories other than the current directory is allowed only if the '-globalwrite' (or '-nosafe') -command-line option is specified. The function 'string mktemp(string -s)' may be used to create and return the name of a unique temporary file -in the current directory based on the string 's'. +command-line option is specified. Reading from files in other +directories is allowed unless the '-noglobalread' command-line option is +specified. The function 'string mktemp(string s)' may be used to create +and return the name of a unique temporary file in the current directory +based on the string 's'. There are two special files: 'stdin', which reads from the keyboard, and 'stdout', which writes to the terminal. The implicit initializer @@ -3063,12 +3103,12 @@ Microsystem's XDR (External Data Representation) portable binary format (available on all 'UNIX' platforms). Alternatively, a file may also be opened with 'mode="binary"' to read or write double precision reals and single precision integers in the native (nonportable) machine binary -format. The virtual member functions 'file singlereal(bool b=true)' and -'file singleint(bool b=true)' be used to change the precision of real -and integer I/O operations, respectively, for an XDR or binary file 'f'. -Similarly, the function 'file signedint(bool b=true)' can be used to -modify the signedness of integer reads and writes for an XDR or binary -file 'f'. +format, or to read the entire file into a string. The virtual member +functions 'file singlereal(bool b=true)' and 'file singleint(bool +b=true)' be used to change the precision of real and integer I/O +operations, respectively, for an XDR or binary file 'f'. Similarly, the +function 'file signedint(bool b=true)' can be used to modify the +signedness of integer reads and writes for an XDR or binary file 'f'. The virtual members 'name', 'mode', 'singlereal', 'singleint', and 'signedint' may be used to query the respective parameters for a given @@ -3386,10 +3426,11 @@ be the (non-'void') type of the variable. The function 'cputime()' returns a structure 'cputime' with cumulative CPU times broken down into the fields 'parent.user', -'parent.system', 'child.user', and 'child.system'. For convenience, the -incremental fields 'change.user' and 'change.system' indicate the change -in the corresponding total parent and child CPU times since the last -call to 'cputime()'. The function +'parent.system', 'child.user', and 'child.system', along with the +cumulative wall clock time in 'parent.clock', all measured in seconds. +For convenience, the incremental fields 'change.user', 'change.system', +and 'change.clock' indicate the change in the corresponding fields since +the last call to 'cputime()'. The function void write(file file=stdout, string s="", cputime c, string format=cputimeformat, suffix suffix=none); displays the incremental user cputime followed by "u", the incremental @@ -4079,18 +4120,18 @@ of type 'T[]'. 'new T[] {list}' returns a new array of type 'T[]' initialized with 'list' (a comma - delimited list of elements). + delimited list of elements); 'new T[n]' returns a new array of 'n' elements of type 'T[]'. These 'n' array elements are not initialized unless they are arrays themselves (in - which case they are each initialized to empty arrays). + which case they are each initialized to empty arrays); 'T[] array(int n, T value, int depth=intMax)' returns an array consisting of 'n' copies of 'value'. If 'value' is itself an array, a deep copy of 'value' is made for each entry. If 'depth' is specified, this deep copying only recurses to the - specified number of levels. + specified number of levels; 'int[] sequence(int n)' if 'n >= 1' returns the array '{0,1,...,n-1}' (otherwise returns a @@ -4108,7 +4149,12 @@ of type 'T[]'. 'T[] map(T f(T), T[] a)' returns the array obtained by applying the function 'f' to each element of the array 'a'. This is equivalent to 'sequence(new - T(int i) {return f(a[i]);},a.length)'. + T(int i) {return f(a[i]);},a.length)'; + +'T2[] map(T2 f(T1), T1[] a)' + constructed by calling 'mapArray("T1","T2")', returns the array + obtained by applying the function 'f' to each element of the array + 'a'; 'int[] reverse(int n)' if 'n >= 1' returns the array '{n-1,n-2,...,0}' (otherwise returns @@ -4117,7 +4163,7 @@ of type 'T[]'. 'int[] complement(int[] a, int n)' returns the complement of the integer array 'a' in '{0,1,2,...,n-1}', so that 'b[complement(a,b.length)]' yields the - complement of 'b[a]'. + complement of 'b[a]'; 'real[] uniform(real a, real b, int n)' if 'n >= 1' returns a uniform partition of '[a,b]' into 'n' @@ -4129,13 +4175,13 @@ of type 'T[]'. the end of the array for the '-n'th value; 'int[] findall(bool[] a)' - returns the indices of all 'true' values in the boolean array 'a'. + returns the indices of all 'true' values in the boolean array 'a'; 'int search(T[] a, T key)' For built-in ordered types 'T', searches a sorted array 'a' of 'n' elements for k, returning the index 'i' if 'a[i] <= key < a[i+1]', '-1' if 'key' is less than all elements of 'a', or 'n-1' if 'key' - is greater than or equal to the last element of 'a'. + is greater than or equal to the last element of 'a'; 'int search(T[] a, T key, bool less(T i, T j))' searches an array 'a' sorted in ascending order such that element @@ -4175,44 +4221,44 @@ of type 'T[]'. 'i' precedes element 'j' if 'less(i,j)' is true, subject to (if 'stable' is 'true') the stability constraint that the original order of elements 'i' and 'j' is preserved if 'less(i,j)' and - 'less(j,i)' are both 'false'. + 'less(j,i)' are both 'false'; 'T[][] transpose(T[][] a)' - returns the transpose of 'a'. + returns the transpose of 'a'; 'T[][][] transpose(T[][][] a, int[] perm)' returns the 3D transpose of 'a' obtained by applying the permutation 'perm' of 'new int[]{0,1,2}' to the indices of each - entry. + entry; 'T sum(T[] a)' - For arithmetic types 'T', returns the sum of 'a'. In the case + for arithmetic types 'T', returns the sum of 'a'. In the case where 'T' is 'bool', the number of true elements in 'a' is - returned. + returned; 'T min(T[] a)' 'T min(T[][] a)' 'T min(T[][][] a)' - For built-in ordered types 'T', returns the minimum element of 'a'. + for built-in ordered types 'T', returns the minimum element of 'a'; 'T max(T[] a)' 'T max(T[][] a)' 'T max(T[][][] a)' - For built-in ordered types 'T', returns the maximum element of 'a'. + for built-in ordered types 'T', returns the maximum element of 'a'; 'T[] min(T[] a, T[] b)' - For built-in ordered types 'T', and arrays 'a' and 'b' of the same + for built-in ordered types 'T', and arrays 'a' and 'b' of the same length, returns an array composed of the minimum of the - corresponding elements of 'a' and 'b'. + corresponding elements of 'a' and 'b'; 'T[] max(T[] a, T[] b)' - For built-in ordered types 'T', and arrays 'a' and 'b' of the same + for built-in ordered types 'T', and arrays 'a' and 'b' of the same length, returns an array composed of the maximum of the - corresponding elements of 'a' and 'b'. + corresponding elements of 'a' and 'b'; 'pair[] pairs(real[] x, real[] y);' - For arrays 'x' and 'y' of the same length, returns the pair array - 'sequence(new pair(int i) {return (x[i],y[i]);},x.length)'. + for arrays 'x' and 'y' of the same length, returns the pair array + 'sequence(new pair(int i) {return (x[i],y[i]);},x.length)'; 'pair[] fft(pair[] a, int sign=1)' returns the unnormalized Fast Fourier Transform of 'a' (if the @@ -4230,18 +4276,18 @@ of type 'T[]'. 'pair[][] fft(pair[][] a, int sign=1)' returns the unnormalized two-dimensional Fourier transform of 'a' - using the given 'sign'. + using the given 'sign'; 'pair[][][] fft(pair[][][] a, int sign=1)' returns the unnormalized three-dimensional Fourier transform of 'a' - using the given 'sign'. + using the given 'sign'; 'real dot(real[] a, real[] b)' - returns the dot product of the vectors 'a' and 'b'. + returns the dot product of the vectors 'a' and 'b'; 'pair dot(pair[] a, pair[] b)' returns the complex dot product 'sum(a*conj(b))' of the vectors 'a' - and 'b'. + and 'b'; 'real[] tridiagonal(real[] a, real[] b, real[] c, real[] f);' Solve the periodic tridiagonal problem L'x'='f' and return the @@ -4254,7 +4300,7 @@ of type 'T[]'. [ c[n-1] a[n-1] b[n-1] ] For Dirichlet boundary conditions (denoted here by 'u[-1]' and 'u[n]'), replace 'f[0]' by 'f[0]-a[0]u[-1]' and - 'f[n-1]-c[n-1]u[n]'; then set 'a[0]=c[n-1]=0'. + 'f[n-1]-c[n-1]u[n]'; then set 'a[0]=c[n-1]=0'; 'real[] solve(real[][] a, real[] b, bool warn=true)' Solve the linear equation 'a'x='b' by LU decomposition and return @@ -4270,31 +4316,31 @@ of type 'T[]'. write(a*x); If 'a' is a singular matrix and 'warn' is 'false', return an empty array. If the matrix 'a' is tridiagonal, the routine 'tridiagonal' - provides a more efficient algorithm (*note tridiagonal::). + provides a more efficient algorithm (*note tridiagonal::); 'real[][] solve(real[][] a, real[][] b, bool warn=true)' Solve the linear equation 'a'x='b' and return the solution x, where 'a' is an n \times n matrix and 'b' is an n \times m matrix. If 'a' is a singular matrix and 'warn' is 'false', return an empty - matrix. + matrix; 'real[][] identity(int n);' - returns the n \times n identity matrix. + returns the n \times n identity matrix; 'real[][] diagonal(... real[] a)' - returns the diagonal matrix with diagonal entries given by a. + returns the diagonal matrix with diagonal entries given by a; 'real[][] inverse(real[][] a)' - returns the inverse of a square matrix 'a'. + returns the inverse of a square matrix 'a'; 'real[] quadraticroots(real a, real b, real c);' This numerically robust solver returns the real roots of the quadratic equation ax^2+bx+c=0, in ascending order. Multiple roots - are listed separately. + are listed separately; 'pair[] quadraticroots(explicit pair a, explicit pair b, explicit pair c);' This numerically robust solver returns the complex roots of the - quadratic equation ax^2+bx+c=0. + quadratic equation ax^2+bx+c=0; 'real[] cubicroots(real a, real b, real c, real d);' This numerically robust solver returns the real roots of the cubic @@ -4619,6 +4665,11 @@ quotation marks: 'import "/usr/local/share/asymptote/graph.asy" as graph;' + If 'Asymptote' is compiled with support for 'libcurl', the file name +can even be a URL: 'import +"https://raw.githubusercontent.com/vectorgraphics/asymptote/HEAD/doc/axis3.asy" +as axis3;' + It is an error if modules import themselves (or each other in a cycle). The module name to be imported must be known at compile time. @@ -4651,6 +4702,9 @@ code s=quote { }; eval(s,true); // Outputs 1 + One application of 'eval' is the creation of parametrized Asymptote +code, such as a map from one type to another (*note map::). + To include the contents of an existing file 'graph' verbatim (as if the contents of the file were inserted at that point), use one of the forms: @@ -4735,7 +4789,7 @@ void f(); for(int i=0; i < 10; ++i) { int x=i; if(x==5) { - f=new void () { write(x); } + f=new void() {write(x);}; } } f(); @@ -4751,7 +4805,7 @@ void f() { } } both 'x' and 'y' will be allocated in the same place, which is also -where 'f' is also allocated. +where 'f' is allocated. Statements may also be declared static, in which case they are run at the place where the enclosing function or structure is defined. @@ -4782,7 +4836,7 @@ File: asymptote.info, Node: LaTeX usage, Next: Base modules, Prev: Programmin *************** 'Asymptote' comes with a convenient 'LaTeX' style file 'asymptote.sty' -(v1.35 or later required) that makes 'LaTeX' 'Asymptote'-aware. +(v1.36 or later required) that makes 'LaTeX' 'Asymptote'-aware. Entering 'Asymptote' code directly into the 'LaTeX' source file, at the point where it is needed, keeps figures organized and avoids the need to invent new file names for each figure. Simply add the line @@ -4985,6 +5039,7 @@ File: asymptote.info, Node: Base modules, Next: Options, Prev: LaTeX usage, * stats:: Statistics routines and histograms * patterns:: Custom fill and draw patterns * markers:: Custom path marker routines +* map:: Map keys to values * tree:: Dynamic binary search tree * binarytree:: Binary tree drawing module * drawtree:: Tree drawing module @@ -4995,8 +5050,6 @@ File: asymptote.info, Node: Base modules, Next: Options, Prev: LaTeX usage, * embed:: Embedding movies, sounds, and 3D objects * slide:: Making presentations with 'Asymptote' * MetaPost:: 'MetaPost' compatibility routines -* unicode:: Accept 'unicode' (UTF-8) characters -* latin1:: Accept 'ISO 8859-1' characters * babel:: Interface to 'LaTeX' 'babel' package * labelpath:: Drawing curved labels * labelpath3:: Drawing curved labels in 3D @@ -5040,9 +5093,9 @@ File: asymptote.info, Node: simplex, Next: math, Prev: plain, Up: Base modul 8.2 'simplex' ============= -This package solves the two-variable linear programming problem using -the simplex method. It is used by the module 'plain' for automatic -sizing of pictures. +This module solves the two-variable linear programming problem using the +simplex method. It is used by the module 'plain' for automatic sizing +of pictures. File: asymptote.info, Node: math, Next: interpolate, Prev: simplex, Up: Base modules @@ -5050,7 +5103,7 @@ File: asymptote.info, Node: math, Next: interpolate, Prev: simplex, Up: Base 8.3 'math' ========== -This package extends 'Asymptote''s mathematical capabilities with useful +This module extends 'Asymptote''s mathematical capabilities with useful functions such as 'void drawline(picture pic=currentpicture, pair P, pair Q, pen p=currentpen);' @@ -5152,7 +5205,7 @@ File: asymptote.info, Node: stats, Next: patterns, Prev: trembling, Up: Base 8.7 'stats' =========== -This package implements a Gaussian random number generator and a +This module implements a Gaussian random number generator and a collection of statistics routines, including 'histogram' and 'leastsquares'. @@ -5162,8 +5215,8 @@ File: asymptote.info, Node: patterns, Next: markers, Prev: stats, Up: Base m 8.8 'patterns' ============== -This package implements 'Postscript' tiling patterns and includes -several convenient pattern generation routines. +This module implements 'PostScript' tiling patterns and includes several +convenient pattern generation routines. File: asymptote.info, Node: markers, Next: tree, Prev: patterns, Up: Base modules @@ -5171,8 +5224,8 @@ File: asymptote.info, Node: markers, Next: tree, Prev: patterns, Up: Base mo 8.9 'markers' ============= -This package implements specialized routines for marking paths and -angles. The principal mark routine provided by this package is +This module implements specialized routines for marking paths and +angles. The principal mark routine provided by this module is markroutine markinterval(int n=1, frame f, bool rotated=false); which centers 'n' copies of frame 'f' within uniformly space intervals in arclength along the path, optionally rotated by the angle of the @@ -5200,7 +5253,7 @@ and 'TildeIntervalMarker' from the above frames. The example [./markers1] - This package also provides a routine for marking an angle AOB: + This module also provides a routine for marking an angle AOB: void markangle(picture pic=currentpicture, Label L="", int n=1, real radius=0, real space=0, pair A, pair O, pair B, arrowbar arrow=None, @@ -5212,17 +5265,38 @@ as illustrated in the example 'markers2.asy'. [./markers2] +File: asymptote.info, Node: map, Next: tree, Prev: markers, Up: Base modules + +8.10 'map' +========== + +This module creates a struct parameterized by the types specified in +strings 'key' and 'value', mapping keys to values with a specified +default: +import map; + +mapTemplate(name="map",key="string",value="int",default="-1"); + +map M; + +M.add("z",2); +M.add("a",3); +M.add("d",4); +write(M.lookup("a")); +write(M.lookup("y")); + + File: asymptote.info, Node: tree, Next: binarytree, Prev: markers, Up: Base modules -8.10 'tree' +8.11 'tree' =========== -This package implements an example of a dynamic binary search tree. +This module implements an example of a dynamic binary search tree. File: asymptote.info, Node: binarytree, Next: drawtree, Prev: tree, Up: Base modules -8.11 'binarytree' +8.12 'binarytree' ================= This module can be used to draw an arbitrary binary tree and includes an @@ -5247,7 +5321,7 @@ add(pic2.fit(),(0,0),10S); File: asymptote.info, Node: drawtree, Next: syzygy, Prev: binarytree, Up: Base modules -8.12 'drawtree' +8.13 'drawtree' =============== This is a simple tree drawing module used by the example 'treetest.asy'. @@ -5255,7 +5329,7 @@ This is a simple tree drawing module used by the example 'treetest.asy'. File: asymptote.info, Node: syzygy, Next: feynman, Prev: drawtree, Up: Base modules -8.13 'syzygy' +8.14 'syzygy' ============= This module automates the drawing of braids, relations, and syzygies, @@ -5265,27 +5339,27 @@ along with the corresponding equations, as illustrated in the example File: asymptote.info, Node: feynman, Next: roundedpath, Prev: syzygy, Up: Base modules -8.14 'feynman' +8.15 'feynman' ============== -This package, contributed by Martin Wiebusch, is useful for drawing +This module, contributed by Martin Wiebusch, is useful for drawing Feynman diagrams, as illustrated by the examples 'eetomumu.asy' and 'fermi.asy'. File: asymptote.info, Node: roundedpath, Next: animation, Prev: feynman, Up: Base modules -8.15 'roundedpath' +8.16 'roundedpath' ================== -This package, contributed by Stefan Knorr, is useful for rounding the +This module, contributed by Stefan Knorr, is useful for rounding the sharp corners of paths, as illustrated in the example file 'roundpath.asy'. File: asymptote.info, Node: animation, Next: embed, Prev: roundedpath, Up: Base modules -8.16 'animation' +8.17 'animation' ================ This module allows one to generate animations, as illustrated by the @@ -5296,7 +5370,7 @@ MPEG movie. The related 'animate' module, derived from the 'animation' module, generates higher-quality portable clickable PDF movies, with optional -controls. This requires installing the package +controls. This requires installing the module <http://mirror.ctan.org/macros/latex/contrib/animate/animate.sty> (version 2007/11/30 or later) in a new directory 'animate' in the local 'LaTeX' directory (for example, in @@ -5317,7 +5391,7 @@ described here: File: asymptote.info, Node: embed, Next: slide, Prev: animation, Up: Base modules -8.17 'embed' +8.18 'embed' ============ This module provides an interface to the 'LaTeX' package (included with @@ -5342,21 +5416,21 @@ animate::). File: asymptote.info, Node: slide, Next: MetaPost, Prev: embed, Up: Base modules -8.18 'slide' +8.19 'slide' ============ -This package provides a simple yet high-quality facility for making +This module provides a simple yet high-quality facility for making presentation slides, including portable embedded PDF animations (see the file 'slidemovies.asy'). A simple example is provided in 'slidedemo.asy'. -File: asymptote.info, Node: MetaPost, Next: unicode, Prev: slide, Up: Base modules +File: asymptote.info, Node: MetaPost, Next: babel, Prev: slide, Up: Base modules -8.19 'MetaPost' +8.20 'MetaPost' =============== -This package provides some useful routines to help 'MetaPost' users +This module provides some useful routines to help 'MetaPost' users migrate old 'MetaPost' code to 'Asymptote'. Further contributions here are welcome. @@ -5369,42 +5443,9 @@ occurrences of 'whatever', one can use the built-in explicit linear equation solver 'solve' instead. -File: asymptote.info, Node: unicode, Next: latin1, Prev: MetaPost, Up: Base modules - -8.20 'unicode' -============== - -Import this package at the beginning of the file to instruct 'LaTeX' to -accept 'unicode' (UTF-8) standardized international characters. To use -Cyrillic fonts, you will need to change the font encoding: -import unicode; -texpreamble("\usepackage{mathtext}\usepackage[russian]{babel}"); -defaultpen(font("T2A","cmr","m","n")); -Support for Chinese, Japanese, and Korean fonts is provided by the CJK -package: - <http://mirror.ctan.org/languages/chinese/CJK/> -The following commands enable the CJK song family (within a label, you -can also temporarily switch to another family, say kai, by prepending -'"\CJKfamily{kai}"' to the label string): -texpreamble("\usepackage{CJK} -\AtBeginDocument{\begin{CJK*}{GBK}{song}} -\AtEndDocument{\clearpage\end{CJK*}}"); +File: asymptote.info, Node: babel, Next: labelpath, Prev: MetaPost, Up: Base modules - -File: asymptote.info, Node: latin1, Next: babel, Prev: unicode, Up: Base modules - -8.21 'latin1' -============= - -If you don't have 'LaTeX' support for 'unicode' installed, you can -enable support for Western European languages (ISO 8859-1) by importing -the module 'latin1'. This module can be used as a template for -providing support for other ISO 8859 alphabets. - - -File: asymptote.info, Node: babel, Next: labelpath, Prev: latin1, Up: Base modules - -8.22 'babel' +8.21 'babel' ============ This module implements the 'LaTeX' 'babel' package in 'Asymptote'. For @@ -5415,7 +5456,7 @@ babel("german"); File: asymptote.info, Node: labelpath, Next: labelpath3, Prev: babel, Up: Base modules -8.23 'labelpath' +8.22 'labelpath' ================ This module uses the 'PSTricks' 'pstextpath' macro to fit labels along a @@ -5427,13 +5468,13 @@ Here 'justify' is one of 'LeftJustified', 'Centered', or 'RightJustified'. The x component of a shift transform applied to the Label is interpreted as a shift along the curve, whereas the y component is interpreted as a shift away from the curve. All other Label -transforms are ignored. This package requires the 'latex' tex engine -and inherits the limitations of the 'PSTricks' '\pstextpath' macro. +transforms are ignored. This module requires the 'latex' tex engine and +inherits the limitations of the 'PSTricks' '\pstextpath' macro. File: asymptote.info, Node: labelpath3, Next: annotate, Prev: labelpath, Up: Base modules -8.24 'labelpath3' +8.23 'labelpath3' ================= This module, contributed by Jens Schwaiger, implements a 3D version of @@ -5443,7 +5484,7 @@ provided in 'curvedlabel3.asy'. File: asymptote.info, Node: annotate, Next: CAD, Prev: labelpath3, Up: Base modules -8.25 'annotate' +8.24 'annotate' =============== This module supports PDF annotations for viewing with 'Adobe Reader', @@ -5457,21 +5498,20 @@ and 'tex' TeX engines. File: asymptote.info, Node: CAD, Next: graph, Prev: annotate, Up: Base modules -8.26 'CAD' +8.25 'CAD' ========== -This package, contributed by Mark Henning, provides basic pen -definitions and measurement functions for simple 2D CAD drawings -according to DIN 15. It is documented separately, in the file -'CAD.pdf'. +This module, contributed by Mark Henning, provides basic pen definitions +and measurement functions for simple 2D CAD drawings according to DIN +15. It is documented separately, in the file 'CAD.pdf'. File: asymptote.info, Node: graph, Next: palette, Prev: CAD, Up: Base modules -8.27 'graph' +8.26 'graph' ============ -This package implements two-dimensional linear and logarithmic graphs, +This module implements two-dimensional linear and logarithmic graphs, including automatic scale and tick selection (with the ability to override manually). A graph is a 'guide' (that can be drawn with the draw command, with an optional legend) constructed with one of the @@ -5833,11 +5873,11 @@ following routines: real f(real x) {return exp(x);} pair F(real x) {return (x,f(x));} + draw(graph(f,-4,2,operator ..),red); + xaxis("$x$"); yaxis("$y$",0); - draw(graph(f,-4,2,operator ..),red); - labely(1,E); label("$e^x$",F(1),SE); @@ -5890,21 +5930,21 @@ following routines: attach(legend(),truepoint(E),20E,UnFill); A legend can have multiple entries per line: - import graph; - size(8cm,6cm,IgnoreAspect); - - typedef real realfcn(real); - realfcn F(real p) { - return new real(real x) {return sin(p*x);}; - }; - + import graph; + size(8cm,6cm,IgnoreAspect); + + typedef real realfcn(real); + realfcn F(real p) { + return new real(real x) {return sin(p*x);}; + }; + for(int i=1; i < 5; ++i) draw(graph(F(i*pi),0,1),Pen(i), - "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$"); - xaxis("$x$",BottomTop,LeftTicks); - yaxis("$y$",LeftRight,RightTicks(trailingzero)); - - attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill); + "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$"); + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks(trailingzero)); + + attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill); [./legend] @@ -6363,7 +6403,7 @@ following routines: draw(pic,graph(pic,t,infectious,t >= 10 & t <= 15),red); yaxis(pic,Right,red,LeftTicks(begin=false,end=false)); }); - + add(secondary); label(shift(5mm*N)*"Proportion of crows",point(NW),E); @@ -6419,7 +6459,7 @@ following routines: // Remove negative or zero values of rho: t=rho > 0 ? t : null; rho=rho > 0 ? rho : null; - + scale(Log(true),Linear(true)); int n=step > 0 ? ceil((last-first)/step) : 0; @@ -6430,17 +6470,17 @@ following routines: real first=first+i*step; real[] logrho=(t >= first & t <= last) ? log(rho) : null; real[] logt=(t >= first & t <= last) ? -log(t) : null; - + if(logt.length < 2) break; - + // Fit to the line logt=L.m*logrho+L.b: linefit L=leastsquares(logt,logrho); - + T.push(first); xi.push(L.m); dxi.push(L.dm); - } - + } + draw(graph(T,xi),blue); errorbars(T,xi,dxi,red); @@ -6540,7 +6580,7 @@ following routines: File: asymptote.info, Node: palette, Next: three, Prev: graph, Up: Base modules -8.28 'palette' +8.27 'palette' ============== 'Asymptote' can also generate color density images and palettes. The @@ -6750,7 +6790,7 @@ pen[][] palette(real[][] f, pen[] palette); File: asymptote.info, Node: three, Next: obj, Prev: palette, Up: Base modules -8.29 'three' +8.28 'three' ============ This module fully extends the notion of guides and paths in 'Asymptote' @@ -6827,7 +6867,7 @@ and 'three_light.asy': struct light { real[][] diffuse; real[][] specular; - pen background=nullpen; // Background color of the 3D canvas. + pen background=nullpen; // Background color of the canvas. real specularfactor; triple[] position; // Only directional lights are currently implemented. } @@ -6844,9 +6884,11 @@ light Headlamp=light(gray(0.8),specular=gray(0.7), currentlight=Headlamp; light nolight; - The 'background' pen can be use to set the 3D 'OpenGL' background -colour (the default is white). In the case of 3D 'WebGL' images one can -request a completely transparent background with + The 'currentlight.background' (or 'background' member of the +specified 'light') can be used to set the background colour for 2D (or +3D) images. The default background is white for 'HTML' images and +transparent for all other formats. One can request a completely +transparent background for 3D 'WebGL' images with 'currentlight.background=black+opacity(0.0);' Sample Bezier surfaces are contained in the example files @@ -6923,10 +6965,11 @@ There are five choices for viewing 3D 'Asymptote' output: the command-line option '-V' and the default settings 'outformat=""' and 'render=-1'). On 'UNIX' systems with graphics support for multisampling, the sample width can be controlled with - the setting 'multisample'. An initial screen position can be - specified with the pair setting 'position', where negative values - are interpreted as relative to the corresponding maximum screen - dimension. The default settings + the setting 'multisample'. The ratio of physical to logical screen + pixels can be specified with the setting 'devicepixelratio'. An + initial screen position can be specified with the pair setting + 'position', where negative values are interpreted as relative to + the corresponding maximum screen dimension. The default settings import settings; leftbutton=new string[] {"rotate","zoom","shift","pan"}; middlebutton=new string[] {""}; @@ -7387,9 +7430,8 @@ position 'v' using pen 'p'. three-dimensional nonrendered 'PostScript') is available with the setting 'render=0'. This currently only works for piecewise planar surfaces, such as those produced by the parametric 'surface' routines in -the 'graph3' module. Surfaces produced by the 'solids' package will -also be properly rendered if the parameter 'nslices' is sufficiently -large. +the 'graph3' module. Surfaces produced by the 'solids' module will also +be properly rendered if the parameter 'nslices' is sufficiently large. In the module 'bsp', hidden surface removal of planar pictures is implemented using a binary space partition and picture clipping. A @@ -7432,7 +7474,7 @@ add(faces); File: asymptote.info, Node: obj, Next: graph3, Prev: three, Up: Base modules -8.30 'obj' +8.29 'obj' ========== This module allows one to construct surfaces from simple obj files, as @@ -7441,7 +7483,7 @@ illustrated in the example files 'galleon.asy' and 'triceratops.asy'. File: asymptote.info, Node: graph3, Next: grid3, Prev: obj, Up: Base modules -8.31 'graph3' +8.30 'graph3' ============= This module implements three-dimensional versions of the functions in @@ -7607,7 +7649,7 @@ picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, File: asymptote.info, Node: grid3, Next: solids, Prev: graph3, Up: Base modules -8.32 'grid3' +8.31 'grid3' ============ This module, contributed by Philippe Ivaldi, can be used for drawing 3D @@ -7636,10 +7678,10 @@ zaxis3(Label("$z$",position=EndPoint,align=(-1,0.5)),Bounds(Min,Min), File: asymptote.info, Node: solids, Next: tube, Prev: grid3, Up: Base modules -8.33 'solids' +8.32 'solids' ============= -This solid geometry package defines a structure 'revolution' that can be +This solid geometry module defines a structure 'revolution' that can be used to fill and draw surfaces of revolution. The following example uses it to display the outline of a circular cylinder of radius 1 with axis 'O--1.5unit(Y+Z)' with perspective projection: @@ -7671,10 +7713,10 @@ struct skeleton { File: asymptote.info, Node: tube, Next: flowchart, Prev: solids, Up: Base modules -8.34 'tube' +8.33 'tube' =========== -This package extends the 'tube' surfaces constructed in +This module extends the 'tube' surfaces constructed in 'three_arrows.asy' to arbitrary cross sections, colors, and spine transformations. The routine surface tube(path3 g, coloredpath section, @@ -7722,10 +7764,10 @@ Further examples can be found at File: asymptote.info, Node: flowchart, Next: contour, Prev: tube, Up: Base modules -8.35 'flowchart' +8.34 'flowchart' ================ -This package provides routines for drawing flowcharts. The primary +This module provides routines for drawing flowcharts. The primary structure is a 'block', which represents a single block on the flowchart. The following eight functions return a position on the appropriate edge of the block, given picture transform 't': @@ -7810,8 +7852,8 @@ size(0,300); import flowchart; block block1=rectangle(Label("Example",magenta), - pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue), - "$B:=1$"),(-0.5,3),palegreen,paleblue,red); + pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue), + "$B:=1$"),(-0.5,3),palegreen,paleblue,red); block block2=diamond(Label("Choice?",blue),(0,2),palegreen,red); block block3=roundrectangle("Do something",(-1,1)); block block4=bevel("Don't do something",(1,1)); @@ -7838,12 +7880,12 @@ add(new void(picture pic, transform t) { File: asymptote.info, Node: contour, Next: contour3, Prev: flowchart, Up: Base modules -8.36 'contour' +8.35 'contour' ============== -This package draws contour lines. To construct contours corresponding -to the values in a real array 'c' for a function 'f' on 'box(a,b)', use -the routine +This module draws contour lines. To construct contours corresponding to +the values in a real array 'c' for a function 'f' on 'box(a,b)', use the +routine guide[][] contour(real f(real, real), pair a, pair b, real[] c, int nx=ngraph, int ny=nx, interpolate join=operator --, int subsample=1); @@ -7934,7 +7976,7 @@ pen tickpen=gray+0.5*linewidth(currentpen); pen[] Palette=BWRainbow(); bounds range=image(f,Automatic,a,b,N,Palette); - + // Major contours real[] Cvals=uniform(range.min,range.max,Divs); @@ -8017,17 +8059,17 @@ Shewchuk. File: asymptote.info, Node: contour3, Next: smoothcontour3, Prev: contour, Up: Base modules -8.37 'contour3' +8.36 'contour3' =============== -This package draws surfaces described as the null space of real-valued +This module draws surfaces described as the null space of real-valued functions of (x,y,z) or 'real[][][]' matrices. Its usage is illustrated in the example file 'magnetic.asy'. File: asymptote.info, Node: smoothcontour3, Next: slopefield, Prev: contour3, Up: Base modules -8.38 'smoothcontour3' +8.37 'smoothcontour3' ===================== This module, written by Charles Staats, draws implicitly defined @@ -8063,7 +8105,7 @@ explanation of the module's usage and pitfalls, are available at File: asymptote.info, Node: slopefield, Next: ode, Prev: smoothcontour3, Up: Base modules -8.39 'slopefield' +8.38 'slopefield' ================= To draw a slope field for the differential equation dy/dx=f(x,y) (or @@ -8105,7 +8147,7 @@ draw(curve((0,0),func,(-3,-3),(3,3)),red); File: asymptote.info, Node: ode, Prev: slopefield, Up: Base modules -8.40 'ode' +8.39 'ode' ========== The 'ode' module, illustrated in the example 'odetest.asy', implements a @@ -8143,7 +8185,9 @@ Options (negate by replacing - with -no): -cmyk Convert rgb colors to cmyk [false] -c,-command string Command to autoexecute -compact Conserve memory at the expense of speed [false] +-compress Compress images in PDF output [true] -d,-debug Enable debugging messages [false] +-devicepixelratio n Ratio of physical to logical pixels [1] -digits n Default output file precision [7] -divisor n Garbage collect using purge(divisor=n) [2] -embed Embed rendered preview image [true] @@ -8152,6 +8196,7 @@ Options (negate by replacing - with -no): -fitscreen Fit rendered image to screen [true] -framedelay ms Additional frame delay [0] -framerate frames/s Animation speed [30] +-globalread Allow read from other directory [true] -globalwrite Allow write to other directory [false] -gray Convert all colors to grayscale [false] -h,-help Show summary of options; command-line only @@ -8170,12 +8215,11 @@ Options (negate by replacing - with -no): -loop Loop 3D animations [false] -m,-mask Mask fpu exceptions; command-line only -maxtile pair Maximum rendering tile size [(1024,768)] --maxviewport pair Maximum viewport size [(2048,2048)] +-maxviewport pair Maximum viewport size [(0,0)] -multiline Input code over multiple lines at the prompt [false] -multipleView View output from multiple batch-mode files [false] -multisample n Multisampling width for screen images [4] -offline Produce offline html files [false] --offscreen Use offscreen rendering [false] -O,-offset pair PostScript offset [(0,0)] -f,-outformat format Convert each output file to specified format -o,-outname name Alternative output directory/filename @@ -8196,7 +8240,7 @@ Options (negate by replacing - with -no): -shiftHoldDistance n WebGL touch screen distance limit for shift mode [20] -shiftWaitTime ms WebGL touch screen shift mode delay [200] -spinstep deg/s Spin speed [60] --svgemulation Emulate unimplemented SVG shading [false] +-svgemulation Emulate unimplemented SVG shading [true] -tabcompletion Interactive prompt auto-completion [true] -tex engine latex|pdflatex|xelatex|lualatex|tex|pdftex|luatex|context|none [latex] -thick Render thick 3D lines [true] @@ -8276,10 +8320,9 @@ using the '-f' option (or 'outformat' setting). later) from <https://dvisvgm.de>. You might need to adjust the configuration variable 'libgs' to point to the location of your 'Ghostscript' library 'libgs.so' (or to an empty string, depending on -how 'dvisvgm' was configured). The 2.8 version of 'dvisvgm' can display -SVG output (used by the 'xasy' editor) for external vector EPS and PDF -images included with the 'graphic()' function, in addition to (using the -'latex' TeX engine) PNG and JPEG embedded raster images. +how 'dvisvgm' was configured). The 2.9.1 version of 'dvisvgm' can +display SVG output (used by the 'xasy' editor) for embedded EPS, PDF, +PNG, and JPEG images included with the 'graphic()' function. 'Asymptote' can also produce any output format supported by the 'ImageMagick' 'convert' program (version 6.3.5 or later recommended; an @@ -8459,7 +8502,7 @@ pip3 install cson numpy pyqt5 PyQt5.sip Pictures are deconstructed into the SVG image format. Since 'Qt5' does not support 'SVG' clipping, you will need the 'rsvg-convert' utility, which is part of the 'librsvg2-tools' package on 'UNIX' systems -and the 'librsvg' package on 'MacOS'; under 'Microsoft Windows', it is +and the 'librsvg' package on 'MacOS X'; under 'Microsoft Windows', it is available as <https://sourceforge.net/projects/tumagcc/files/rsvg-convert-2.40.20.7z> @@ -8628,7 +8671,9 @@ Prince. Sean Healy designed the 'Asymptote' logo. Other contributors include Orest Shardt, Jesse Frohlich, Michail Vidiassov, Charles Staats, Philippe Ivaldi, Olivier Guibe', Radoslav Marinov, Jeff Samuelson, Chris Savage, Jacques Pienaar, Mark Henning, Steve Melenchuk, Martin Wiebusch, -Stefan Knorr, and Supakorn "Jamie" Rassameemasmuang. +Stefan Knorr, and Supakorn "Jamie" Rassameemasmuang. Pedram Emami +developed the 'Asymptote Web Application' at +<http://asymptote.ualberta.ca>. File: asymptote.info, Node: Index, Prev: Credits, Up: Top @@ -8678,9 +8723,9 @@ Index * ---: Bezier curves. (line 84) * -=: Self & prefix operators. (line 6) -* -c: Options. (line 194) -* -l: Options. (line 213) -* -u: Options. (line 204) +* -c: Options. (line 195) +* -l: Options. (line 214) +* -u: Options. (line 205) * -V: Configuring. (line 6) * -V <1>: Drawing in batch mode. (line 16) @@ -8693,7 +8738,7 @@ Index * 2D graphs: graph. (line 6) * 3D graphs: graph3. (line 6) * 3D grids: grid3. (line 6) -* 3D PostScript: three. (line 636) +* 3D PostScript: three. (line 639) * :: Arithmetic & logical. (line 61) * ::: Bezier curves. (line 70) @@ -8721,15 +8766,20 @@ Index (line 53) * ||: Arithmetic & logical. (line 51) -* a4: Configuring. (line 66) -* abort: Data types. (line 363) +* a4: Configuring. (line 68) +* abort: Data types. (line 364) * abs: Data types. (line 65) -* abs <1>: Mathematical functions. +* abs <1>: Data types. (line 144) +* abs <2>: Mathematical functions. (line 35) +* abs2: Data types. (line 65) +* abs2 <1>: Data types. (line 144) +* absolute: Configuring. (line 43) * accel: Paths and guides. (line 126) * accel <1>: Paths and guides. (line 132) -* accel <2>: three. (line 537) +* accel <2>: three. (line 540) * access: Import. (line 6) +* access <1>: Import. (line 45) * acknowledgments: Credits. (line 6) * acos: Mathematical functions. (line 6) @@ -8741,8 +8791,8 @@ Index (line 217) * add <1>: Frames and pictures. (line 231) -* add <2>: three. (line 309) -* addViews: three. (line 430) +* add <2>: three. (line 312) +* addViews: three. (line 433) * adjust: Pens. (line 123) * Ai: Mathematical functions. (line 48) @@ -8751,57 +8801,57 @@ Index * Ai_deriv: Mathematical functions. (line 48) * alias: Structures. (line 62) -* alias <1>: Arrays. (line 174) +* alias <1>: Arrays. (line 179) * Align: label. (line 12) -* aligndir: Options. (line 186) -* all: Arrays. (line 333) -* Allow: Pens. (line 346) +* aligndir: Options. (line 187) +* all: Arrays. (line 338) +* Allow: Pens. (line 363) * and: Bezier curves. (line 56) * AND: Arithmetic & logical. (line 68) * angle: Data types. (line 73) * animate: Configuring. (line 20) -* animate <1>: Files. (line 155) +* animate <1>: Files. (line 159) * animate <2>: animation. (line 12) * animation: animation. (line 6) * animation <1>: animation. (line 6) * annotate: annotate. (line 6) -* antialias: three. (line 251) -* antialias <1>: Options. (line 155) -* append: Files. (line 36) +* antialias: three. (line 254) +* antialias <1>: Options. (line 157) +* append: Files. (line 38) * append <1>: Arrays. (line 39) * arc: Paths and guides. (line 24) * Arc: Paths and guides. (line 37) -* arc <1>: three. (line 320) +* arc <1>: three. (line 323) * ArcArrow: draw. (line 26) -* ArcArrow3: three. (line 603) +* ArcArrow3: three. (line 606) * ArcArrows: draw. (line 26) -* ArcArrows3: three. (line 603) +* ArcArrows3: three. (line 606) * arclength: Paths and guides. (line 153) -* arclength <1>: three. (line 537) +* arclength <1>: three. (line 540) * arcpoint: Paths and guides. (line 163) * arctime: Paths and guides. (line 157) -* arctime <1>: three. (line 537) +* arctime <1>: three. (line 540) * arguments: Default arguments. (line 6) * arithmetic operators: Arithmetic & logical. (line 6) -* array: Data types. (line 283) +* array: Data types. (line 284) * array <1>: Arrays. (line 112) * array iteration: Programming. (line 52) * arrays: Arrays. (line 6) -* arrow: Drawing commands. (line 31) +* arrow: Drawing commands. (line 34) * Arrow: draw. (line 26) * arrow <1>: label. (line 70) * arrow keys: Drawing in interactive mode. (line 11) * arrow keys <1>: GUI usage. (line 6) -* Arrow3: three. (line 603) +* Arrow3: three. (line 606) * arrows: draw. (line 26) * Arrows: draw. (line 26) -* Arrows3: three. (line 603) +* Arrows3: three. (line 606) * as: Import. (line 67) -* ascii: Data types. (line 308) -* ascii <1>: Data types. (line 308) +* ascii: Data types. (line 309) +* ascii <1>: Data types. (line 309) * asin: Mathematical functions. (line 6) * aSin: Mathematical functions. @@ -8810,17 +8860,18 @@ Index (line 6) * Aspect: Frames and pictures. (line 59) -* assert: Data types. (line 368) +* assert: Data types. (line 369) * assignment: Programming. (line 26) -* asy: Data types. (line 358) -* asy <1>: Import. (line 101) +* asy: Data types. (line 359) +* asy <1>: Import. (line 106) * asy-mode: Editing modes. (line 6) * asy.vim: Editing modes. (line 32) -* asygl: Configuring. (line 72) +* asygl: Configuring. (line 74) * asyinclude: LaTeX usage. (line 45) +* Asymptote Web Application: Description. (line 6) * asymptote.sty: LaTeX usage. (line 6) * asymptote.xml: Editing modes. (line 48) -* ASYMPTOTE_CONFIG: Options. (line 126) +* ASYMPTOTE_CONFIG: Options. (line 128) * atan: Mathematical functions. (line 6) * aTan: Mathematical functions. @@ -8834,8 +8885,8 @@ Index (line 276) * attach <1>: LaTeX usage. (line 50) * attach <2>: graph. (line 406) -* autoadjust: three. (line 395) -* autoimport: Options. (line 122) +* autoadjust: three. (line 398) +* autoimport: Options. (line 124) * automatic scaling: graph. (line 690) * automatic scaling <1>: graph. (line 690) * axialshade: fill. (line 43) @@ -8843,57 +8894,57 @@ Index * axis <1>: graph. (line 988) * axis <2>: graph3. (line 66) * axis <3>: graph3. (line 82) -* azimuth: Data types. (line 153) +* azimuth: Data types. (line 154) * babel: babel. (line 6) * background: three. (line 76) * background <1>: three. (line 97) * background color: Frames and pictures. (line 180) -* BackView: three. (line 423) +* BackView: three. (line 426) * Bar: draw. (line 19) -* Bar3: three. (line 603) +* Bar3: three. (line 606) * Bars: draw. (line 19) -* Bars3: three. (line 603) +* Bars3: three. (line 606) * barsize: draw. (line 19) * base modules: Base modules. (line 6) * basealign: Pens. (line 181) * baseline: label. (line 90) * batch mode: Drawing in batch mode. (line 6) -* beep: Data types. (line 381) +* beep: Data types. (line 382) * BeginArcArrow: draw. (line 26) -* BeginArcArrow3: three. (line 603) +* BeginArcArrow3: three. (line 606) * BeginArrow: draw. (line 26) -* BeginArrow3: three. (line 603) +* BeginArrow3: three. (line 606) * BeginBar: draw. (line 19) -* BeginBar3: three. (line 603) +* BeginBar3: three. (line 606) * BeginDotMargin: draw. (line 42) -* BeginDotMargin3: three. (line 619) +* BeginDotMargin3: three. (line 622) * BeginMargin: draw. (line 42) -* BeginMargin3: three. (line 619) +* BeginMargin3: three. (line 622) * BeginPenMargin: draw. (line 42) -* BeginPenMargin2: three. (line 619) -* BeginPenMargin3: three. (line 619) +* BeginPenMargin2: three. (line 622) +* BeginPenMargin3: three. (line 622) * BeginPoint: label. (line 55) * Bessel: Mathematical functions. (line 48) * bevel: flowchart. (line 72) * beveljoin: Pens. (line 149) * Bezier curves: Bezier curves. (line 6) -* Bezier patch: three. (line 116) -* Bezier triangle: three. (line 116) -* bezulate: three. (line 134) +* Bezier patch: three. (line 118) +* Bezier triangle: three. (line 118) +* bezulate: three. (line 136) * Bi: Mathematical functions. (line 48) -* Billboard: three. (line 507) -* binary: Files. (line 76) -* binary format: Files. (line 76) +* Billboard: three. (line 510) +* binary: Files. (line 80) +* binary format: Files. (line 80) * binary operators: Arithmetic & logical. (line 6) * binarytree: binarytree. (line 6) * Bi_deriv: Mathematical functions. (line 48) -* black stripes: three. (line 251) +* black stripes: three. (line 254) * Blank: draw. (line 26) * block.bottom: flowchart. (line 19) * block.bottomleft: flowchart. (line 19) @@ -8912,7 +8963,7 @@ Index (line 6) * Bottom: graph. (line 132) * BottomTop: graph. (line 138) -* BottomView: three. (line 423) +* BottomView: three. (line 426) * bounding box: Frames and pictures. (line 180) * Bounds: graph3. (line 21) @@ -8920,14 +8971,14 @@ Index (line 25) * box <1>: Frames and pictures. (line 130) -* box <2>: three. (line 342) -* box <3>: three. (line 344) +* box <2>: three. (line 345) +* box <3>: three. (line 347) * bp: Drawing in batch mode. (line 23) * brace: Paths and guides. (line 51) * break: Programming. (line 48) * breakpoints: Debugger. (line 21) -* brick: Pens. (line 268) +* brick: Pens. (line 285) * broken axis: graph. (line 801) * bug reports: Help. (line 19) * buildcycle: Paths and guides. (line 270) @@ -8935,33 +8986,35 @@ Index * Button-2: GUI. (line 6) * BWRainbow: palette. (line 15) * BWRainbow2: palette. (line 18) -* C string: Data types. (line 216) +* C string: Data types. (line 217) * CAD: CAD. (line 6) * calculateTransform: Frames and pictures. (line 118) -* camera: three. (line 389) +* camera: three. (line 392) * casts: Casts. (line 6) * cbrt: Mathematical functions. (line 6) -* cd: Files. (line 25) +* cd: Files. (line 26) * ceil: Mathematical functions. (line 26) * Center: label. (line 60) -* center: three. (line 372) -* checker: Pens. (line 268) -* Chinese: unicode. (line 12) +* center: three. (line 375) +* checker: Pens. (line 285) +* Chinese: Pens. (line 244) * choose: Mathematical functions. (line 39) * Ci: Mathematical functions. (line 48) * circle: Paths and guides. (line 10) * Circle: Paths and guides. (line 18) -* circle <1>: three. (line 316) +* circle <1>: three. (line 319) * circle <2>: flowchart. (line 61) * circlebarframe: markers. (line 18) -* CJK: unicode. (line 12) +* CJK: Pens. (line 244) * clamped: graph. (line 36) -* clear: Files. (line 93) +* clang: Compiling from UNIX source. + (line 48) +* clear: Files. (line 97) * clear <1>: Debugger. (line 23) * clip: clip. (line 6) * CLZ: Arithmetic & logical. @@ -8969,34 +9022,34 @@ Index * cm: Figure size. (line 18) * cmd: Configuring. (line 35) * cmyk: Pens. (line 38) -* colatitude: Data types. (line 158) +* colatitude: Data types. (line 159) * color: Pens. (line 23) * coloredNodes: tube. (line 25) * coloredpath: tube. (line 18) * coloredSegments: tube. (line 25) * colorless: Pens. (line 57) * colors: Pens. (line 54) -* comma: Files. (line 61) -* comma-separated-value mode: Arrays. (line 365) -* command-line options: Configuring. (line 89) +* comma: Files. (line 65) +* comma-separated-value mode: Arrays. (line 370) +* command-line options: Configuring. (line 91) * command-line options <1>: Options. (line 6) * comment character: Files. (line 16) * compass directions: Labels. (line 18) * Compiling from UNIX source: Compiling from UNIX source. (line 6) -* complement: Arrays. (line 140) -* concat: Arrays. (line 170) +* complement: Arrays. (line 145) +* concat: Arrays. (line 175) * conditional: Programming. (line 26) * conditional <1>: Arithmetic & logical. (line 61) -* config: Configuring. (line 72) -* config <1>: Options. (line 126) +* config: Configuring. (line 74) +* config <1>: Options. (line 128) * configuration file: Configuring. (line 20) -* configuration file <1>: Options. (line 126) +* configuration file <1>: Options. (line 128) * configuring: Configuring. (line 6) * conj: Data types. (line 62) * constructors: Structures. (line 91) -* context: Options. (line 155) +* context: Options. (line 157) * continue: Programming. (line 48) * continue <1>: Debugger. (line 31) * contour: contour. (line 6) @@ -9004,13 +9057,13 @@ Index * controls: Bezier curves. (line 45) * controls <1>: three. (line 6) * controlSpecifier: Paths and guides. (line 396) -* convert: Configuring. (line 72) -* convert <1>: Files. (line 155) +* convert: Configuring. (line 74) +* convert <1>: Files. (line 159) * convert <2>: animation. (line 6) -* convert <3>: Options. (line 155) -* convertOptions: Options. (line 141) -* Coons shading: fill. (line 77) -* copy: Arrays. (line 167) +* convert <3>: Options. (line 157) +* convertOptions: Options. (line 143) +* Coons shading: fill. (line 78) +* copy: Arrays. (line 172) * cos: Mathematical functions. (line 6) * Cos: Mathematical functions. @@ -9021,20 +9074,20 @@ Index * crop: graph. (line 639) * cropping graphs: graph. (line 639) * cross: Data types. (line 106) -* cross <1>: Data types. (line 196) +* cross <1>: Data types. (line 197) * cross <2>: graph. (line 480) * crossframe: markers. (line 22) -* crosshatch: Pens. (line 285) -* csv: Arrays. (line 365) +* crosshatch: Pens. (line 302) +* csv: Arrays. (line 370) * CTZ: Arithmetic & logical. (line 68) -* cubicroots: Arrays. (line 322) +* cubicroots: Arrays. (line 327) * curl: Bezier curves. (line 66) * curl <1>: three. (line 6) * curlSpecifier: Paths and guides. (line 408) * currentlight: three. (line 76) * currentpen: Pens. (line 6) -* currentprojection: three. (line 420) +* currentprojection: three. (line 423) * curve: slopefield. (line 20) * custom axis types: graph. (line 141) * custom mark routine: graph. (line 577) @@ -9046,12 +9099,12 @@ Index * cyclic: Paths and guides. (line 85) * cyclic <1>: Paths and guides. (line 376) * cyclic <2>: Arrays. (line 39) -* cyclic <3>: three. (line 537) -* Cyrillic: unicode. (line 7) +* cyclic <3>: three. (line 540) +* Cyrillic: Pens. (line 237) * dashdotted: Pens. (line 102) * dashed: Pens. (line 102) * data types: Data types. (line 6) -* date: Data types. (line 320) +* date: Data types. (line 321) * Debian: UNIX binary distributions. (line 19) * debugger: Debugger. (line 6) @@ -9060,14 +9113,14 @@ Index * default arguments: Default arguments. (line 6) * defaultformat: graph. (line 175) * DefaultHead: draw. (line 26) -* DefaultHead3: three. (line 603) +* DefaultHead3: three. (line 606) * defaultpen: Pens. (line 49) * defaultpen <1>: Pens. (line 122) * defaultpen <2>: Pens. (line 127) * defaultpen <3>: Pens. (line 139) * defaultpen <4>: Pens. (line 192) -* defaultpen <5>: Pens. (line 346) -* defaultpen <6>: Pens. (line 370) +* defaultpen <5>: Pens. (line 363) +* defaultpen <6>: Pens. (line 387) * defaultrender: three. (line 46) * deferred drawing: simplex. (line 6) * degrees: Data types. (line 78) @@ -9075,54 +9128,55 @@ Index (line 17) * Degrees: Mathematical functions. (line 17) -* delete: Files. (line 150) +* delete: Files. (line 154) * delete <1>: Arrays. (line 39) * description: Description. (line 6) -* diagonal: Arrays. (line 307) +* devicepixelratio: three. (line 174) +* diagonal: Arrays. (line 312) * diamond: flowchart. (line 54) * diffuse: three. (line 76) * diffusepen: three. (line 66) -* dimension: Arrays. (line 370) +* dimension: Arrays. (line 375) * dir: Search paths. (line 9) * dir <1>: Data types. (line 90) -* dir <2>: Data types. (line 180) +* dir <2>: Data types. (line 181) * dir <3>: Paths and guides. (line 109) -* dir <4>: three. (line 537) +* dir <4>: three. (line 540) * direction specifier: Bezier curves. (line 6) -* directory: Files. (line 25) +* directory: Files. (line 26) * dirSpecifier: Paths and guides. (line 390) * dirtime: Paths and guides. (line 166) * display: Configuring. (line 20) * do: Programming. (line 48) -* DOSendl: Files. (line 61) -* DOSnewl: Files. (line 61) -* dot: draw. (line 82) +* DOSendl: Files. (line 65) +* DOSnewl: Files. (line 65) +* dot: draw. (line 83) * dot <1>: Data types. (line 103) -* dot <2>: Data types. (line 193) -* dot <3>: Arrays. (line 262) -* dot <4>: Arrays. (line 265) +* dot <2>: Data types. (line 194) +* dot <3>: Arrays. (line 267) +* dot <4>: Arrays. (line 270) * DotMargin: draw. (line 42) -* DotMargin3: three. (line 619) +* DotMargin3: three. (line 622) * DotMargins: draw. (line 42) -* DotMargins3: three. (line 619) +* DotMargins3: three. (line 622) * dotted: Pens. (line 102) -* double deferred drawing: three. (line 294) -* double precision: Files. (line 76) -* draw: Drawing commands. (line 31) +* double deferred drawing: three. (line 297) +* double precision: Files. (line 80) +* draw: Drawing commands. (line 34) * draw <1>: draw. (line 6) * Draw: draw. (line 26) -* draw <2>: draw. (line 112) +* draw <2>: draw. (line 113) * Draw <1>: Frames and pictures. (line 160) -* draw <3>: three. (line 142) +* draw <3>: three. (line 144) * drawing commands: Drawing commands. (line 6) * drawline: math. (line 9) * drawtree: drawtree. (line 6) -* dvips: Configuring. (line 72) -* dvipsOptions: Options. (line 141) -* dvisvgm: Configuring. (line 72) -* dvisvgm <1>: Options. (line 160) -* dvisvgmOptions: Options. (line 141) +* dvips: Configuring. (line 74) +* dvipsOptions: Options. (line 143) +* dvisvgm: Configuring. (line 74) +* dvisvgm <1>: Options. (line 162) +* dvisvgmOptions: Options. (line 143) * E: Labels. (line 18) * E <1>: Mathematical functions. (line 48) @@ -9137,37 +9191,37 @@ Index * else: Programming. (line 26) * emacs: Editing modes. (line 6) * embed: embed. (line 6) -* Embedded: three. (line 507) +* Embedded: three. (line 510) * emissivepen: three. (line 66) * empty: Frames and pictures. (line 7) * EndArcArrow: draw. (line 26) -* EndArcArrow3: three. (line 603) +* EndArcArrow3: three. (line 606) * EndArrow: draw. (line 26) -* EndArrow3: three. (line 603) +* EndArrow3: three. (line 606) * EndBar: draw. (line 19) -* EndBar3: three. (line 603) +* EndBar3: three. (line 606) * EndDotMargin: draw. (line 42) -* EndDotMargin3: three. (line 619) -* endl: Files. (line 61) +* EndDotMargin3: three. (line 622) +* endl: Files. (line 65) * EndMargin: draw. (line 42) -* EndMargin3: three. (line 619) +* EndMargin3: three. (line 622) * EndPenMargin: draw. (line 42) -* EndPenMargin2: three. (line 619) -* EndPenMargin3: three. (line 619) +* EndPenMargin2: three. (line 622) +* EndPenMargin3: three. (line 622) * EndPoint: label. (line 55) * envelope: Frames and pictures. (line 25) -* environment variables: Configuring. (line 93) -* eof: Files. (line 93) -* eof <1>: Arrays. (line 347) -* eol: Files. (line 93) -* eol <1>: Arrays. (line 347) +* environment variables: Configuring. (line 95) +* eof: Files. (line 97) +* eof <1>: Arrays. (line 352) +* eol: Files. (line 97) +* eol <1>: Arrays. (line 352) * EPS: label. (line 78) -* EPS <1>: Options. (line 155) +* EPS <1>: Options. (line 157) * erase: Drawing in interactive mode. (line 11) -* erase <1>: Data types. (line 256) +* erase <1>: Data types. (line 257) * erase <2>: Frames and pictures. (line 7) * erase <3>: Frames and pictures. @@ -9177,20 +9231,20 @@ Index * erfc: Mathematical functions. (line 6) * error: Files. (line 16) -* error <1>: Files. (line 93) +* error <1>: Files. (line 97) * error bars: graph. (line 531) * errorbars: graph. (line 480) -* eval: Import. (line 97) -* eval <1>: Import. (line 107) +* eval: Import. (line 102) +* eval <1>: Import. (line 112) * evenodd: Paths. (line 37) * evenodd <1>: Pens. (line 164) -* exit: Data types. (line 372) +* exit: Data types. (line 373) * exit <1>: Interactive mode. (line 54) * exit <2>: Debugger. (line 56) * exp: Mathematical functions. (line 6) * expi: Data types. (line 86) -* expi <1>: Data types. (line 176) +* expi <1>: Data types. (line 177) * explicit: Casts. (line 6) * explicit casts: Casts. (line 21) * expm1: Mathematical functions. @@ -9201,26 +9255,26 @@ Index * extension: Paths and guides. (line 246) * extension <1>: MetaPost. (line 10) * external: embed. (line 11) -* extrude: three. (line 531) +* extrude: three. (line 534) * F: Mathematical functions. (line 48) * fabs: Mathematical functions. (line 6) -* face: three. (line 644) +* face: three. (line 646) * factorial: Mathematical functions. (line 39) * Fedora: UNIX binary distributions. (line 15) * feynman: feynman. (line 6) -* fft: Arrays. (line 240) -* fft <1>: Arrays. (line 254) -* fft <2>: Arrays. (line 258) +* fft: Arrays. (line 245) +* fft <1>: Arrays. (line 259) +* fft <2>: Arrays. (line 263) * FFTW: Compiling from UNIX source. - (line 63) + (line 62) * file: Files. (line 6) * file <1>: Debugger. (line 44) * Fill: draw. (line 26) -* fill: draw. (line 117) +* fill: draw. (line 118) * fill <1>: fill. (line 6) * fill <2>: fill. (line 17) * Fill <1>: Frames and pictures. @@ -9231,83 +9285,87 @@ Index (line 136) * filloutside: fill. (line 27) * fillrule: Pens. (line 164) -* find: Data types. (line 241) -* find <1>: Arrays. (line 149) -* findall: Arrays. (line 154) +* find: Data types. (line 242) +* find <1>: Arrays. (line 154) +* findall: Arrays. (line 159) * firstcut: Paths and guides. (line 262) * fit: Frames and pictures. (line 113) -* fit3: three. (line 307) +* fit3: three. (line 310) * fixedscaling: Frames and pictures. (line 81) * floor: Mathematical functions. (line 26) * flowchart: flowchart. (line 6) -* flush: Files. (line 61) -* flush <1>: Files. (line 93) +* flush: Files. (line 65) +* flush <1>: Files. (line 97) * fmod: Mathematical functions. (line 6) * font: Pens. (line 206) -* font command: Pens. (line 206) -* fontcommand: Pens. (line 221) +* font <1>: Pens. (line 206) +* font <2>: Pens. (line 235) +* font encoding: Pens. (line 235) +* fontcommand: Pens. (line 219) * fontsize: Pens. (line 192) * for: Programming. (line 26) -* format: Data types. (line 289) -* format <1>: Options. (line 155) +* format: Data types. (line 290) +* format <1>: Options. (line 157) * forum: Help. (line 6) * frame: Frames and pictures. (line 7) * freshnel0: three. (line 66) * from: Import. (line 16) -* FrontView: three. (line 423) +* FrontView: three. (line 426) * function declarations: Functions. (line 79) -* Function shading: fill. (line 99) -* function shading: fill. (line 99) +* Function shading: fill. (line 100) +* function shading: fill. (line 100) * functions: Functions. (line 6) * functions <1>: Mathematical functions. (line 6) -* functionshade: fill. (line 99) +* functionshade: fill. (line 100) * gamma: Mathematical functions. (line 6) * Gaussrand: Mathematical functions. (line 39) * geometry: geometry. (line 6) -* getc: Files. (line 30) -* getpair: Files. (line 118) -* getreal: Files. (line 118) -* getstring: Files. (line 118) -* gettriple: Files. (line 118) +* getc: Files. (line 32) +* getpair: Files. (line 122) +* getreal: Files. (line 122) +* getstring: Files. (line 122) +* gettriple: Files. (line 122) * git: Git. (line 6) -* glOptions: three. (line 251) -* glOptions <1>: Options. (line 141) +* globalwrite: Files. (line 40) +* globalwrite <1>: Files. (line 154) +* glOptions: three. (line 254) +* glOptions <1>: Options. (line 143) * GNU Scientific Library: Mathematical functions. (line 48) -* gouraudshade: fill. (line 62) +* gouraudshade: fill. (line 63) * Gradient: palette. (line 25) * gradient shading: fill. (line 32) * graph: graph. (line 6) * graph3: graph3. (line 6) * graphic: label. (line 78) -* graphic <1>: Options. (line 160) +* graphic <1>: Options. (line 162) * graphical user interface: GUI. (line 6) * gray: Pens. (line 25) * grayscale: Pens. (line 25) * Grayscale: palette. (line 9) -* grid: Pens. (line 268) +* grid: Pens. (line 285) * grid <1>: graph. (line 746) * grid3: grid3. (line 6) * gs: Configuring. (line 20) * GSL: Compiling from UNIX source. - (line 63) + (line 62) * gsl: Mathematical functions. (line 48) -* gsOptions: Options. (line 141) +* gsOptions: Options. (line 143) * GUI: GUI. (line 6) * GUI installation: GUI installation. (line 6) * GUI usage: GUI usage. (line 6) * guide: Paths and guides. (line 314) * guide3: three. (line 6) -* hatch: Pens. (line 285) +* hatch: Pens. (line 302) * Headlamp: three. (line 76) * height: LaTeX usage. (line 50) * help: Interactive mode. (line 42) @@ -9315,42 +9373,42 @@ Index * help <2>: Debugger. (line 30) * Hermite: graph. (line 36) * Hermite(splinetype splinetype: graph. (line 36) -* hex: Data types. (line 305) +* hex: Data types. (line 306) * hex <1>: Pens. (line 64) -* hexadecimal: Data types. (line 305) +* hexadecimal: Data types. (line 306) * hexadecimal <1>: Pens. (line 62) -* hidden surface removal: three. (line 644) +* hidden surface removal: three. (line 646) * histogram: Mathematical functions. (line 39) -* history: Files. (line 143) +* history: Files. (line 147) * history <1>: Interactive mode. (line 54) * historylines: Interactive mode. (line 57) * HookHead: draw. (line 26) -* HookHead3: three. (line 603) +* HookHead3: three. (line 606) * Horizontal: flowchart. (line 77) -* HTML5: three. (line 220) +* HTML5: three. (line 223) * htmlviewer: Configuring. (line 20) * htmlviewer <1>: Configuring. (line 43) -* htmlviewerOptions: Options. (line 141) -* hyperrefOptions: Options. (line 141) +* htmlviewerOptions: Options. (line 143) +* hyperrefOptions: Options. (line 143) * hypot: Mathematical functions. (line 6) * I: Mathematical functions. (line 48) -* iconify: three. (line 251) +* iconify: three. (line 254) * identity: Transforms. (line 24) * identity <1>: Mathematical functions. (line 6) -* identity <2>: Arrays. (line 304) -* identity4: three. (line 475) +* identity <2>: Arrays. (line 309) +* identity4: three. (line 478) * if: Programming. (line 26) * IgnoreAspect: Frames and pictures. (line 63) * image: palette. (line 33) * image <1>: palette. (line 58) -* ImageMagick: Configuring. (line 72) +* ImageMagick: Configuring. (line 74) * ImageMagick <1>: animation. (line 6) -* ImageMagick <2>: Options. (line 155) +* ImageMagick <2>: Options. (line 157) * images: palette. (line 6) * implicit casts: Casts. (line 6) * implicit linear solver: MetaPost. (line 10) @@ -9359,11 +9417,11 @@ Index * import: Import. (line 45) * inches: Figure size. (line 18) * incircle: Data types. (line 120) -* include: Import. (line 126) +* include: Import. (line 134) * including images: label. (line 78) * increasing: math. (line 55) * inf: Data types. (line 35) -* inheritance: Structures. (line 181) +* inheritance: Structures. (line 182) * initialized: Arrays. (line 39) * initializers: Variable initializers. (line 6) @@ -9373,12 +9431,13 @@ Index * input <1>: Files. (line 12) * input <2>: Interactive mode. (line 45) * input <3>: Interactive mode. (line 49) -* insert: Data types. (line 252) +* input encoding: Pens. (line 235) +* insert: Data types. (line 253) * insert <1>: Arrays. (line 39) * inside: Paths and guides. (line 294) * inside <1>: Paths and guides. (line 299) * inside <2>: Paths and guides. (line 305) -* insphere: three. (line 566) +* insphere: three. (line 569) * inst: Debugger. (line 35) * installation: Installation. (line 6) * int: Data types. (line 30) @@ -9392,29 +9451,28 @@ Index (line 6) * interactive mode <1>: Interactive mode. (line 6) * interior: Paths and guides. (line 290) -* international characters: unicode. (line 6) * interp: Arithmetic & logical. (line 64) * interpolate: interpolate. (line 6) * intersect: Paths and guides. (line 195) * intersect <1>: math. (line 13) -* intersect <2>: three. (line 537) +* intersect <2>: three. (line 540) * intersectionpoint: Paths and guides. (line 238) * intersectionpoint <1>: math. (line 17) -* intersectionpoint <2>: three. (line 537) +* intersectionpoint <2>: three. (line 540) * intersectionpoints: Paths and guides. (line 242) -* intersectionpoints <1>: three. (line 537) -* intersectionpoints <2>: three. (line 550) +* intersectionpoints <1>: three. (line 540) +* intersectionpoints <2>: three. (line 553) * intersections: Paths and guides. (line 206) * intersections <1>: Paths and guides. (line 213) -* intersections <2>: three. (line 537) -* intersections <3>: three. (line 543) +* intersections <2>: three. (line 540) +* intersections <3>: three. (line 546) * InTicks: graph3. (line 35) * intMax: Data types. (line 30) * intMin: Data types. (line 30) * inverse: Transforms. (line 16) -* inverse <1>: Arrays. (line 310) -* invert: three. (line 465) +* inverse <1>: Arrays. (line 315) +* invert: three. (line 468) * invisible: Pens. (line 43) * isnan: Data types. (line 35) * i_scaled: Mathematical functions. @@ -9423,7 +9481,7 @@ Index (line 6) * J <1>: Mathematical functions. (line 48) -* Japanese: unicode. (line 12) +* Japanese: Pens. (line 244) * K: Mathematical functions. (line 48) * Kate: Editing modes. (line 48) @@ -9433,34 +9491,34 @@ Index * keepAspect <1>: Frames and pictures. (line 63) * keepAspect <2>: LaTeX usage. (line 50) -* keyboard bindings:: three. (line 198) +* keyboard bindings:: three. (line 201) * keys: Arrays. (line 39) * keyword: Named arguments. (line 37) * keyword-only: Named arguments. (line 37) * keywords: Named arguments. (line 6) -* Korean: unicode. (line 12) +* Korean: Pens. (line 244) * k_scaled: Mathematical functions. (line 48) * label: Labels. (line 6) -* Label: draw. (line 100) +* Label: draw. (line 101) * label <1>: label. (line 6) * Label <1>: label. (line 14) * Label <2>: graph. (line 330) -* label <2>: three. (line 501) +* label <2>: three. (line 504) * labelpath: labelpath. (line 6) * labelpath3: labelpath3. (line 6) * labelx: graph. (line 330) * labely: graph. (line 330) * Landscape: Frames and pictures. (line 104) +* language context: Pens. (line 235) * lastcut: Paths and guides. (line 266) * lasy-mode: Editing modes. (line 6) -* latex: Options. (line 155) -* LaTeX fonts: Pens. (line 206) +* latex: Options. (line 157) +* LaTeX NFSS fonts: Pens. (line 206) * LaTeX usage: LaTeX usage. (line 6) * latexmk: LaTeX usage. (line 30) -* latin1: latin1. (line 6) -* latitude: Data types. (line 163) +* latitude: Data types. (line 164) * latticeshade: fill. (line 32) * layer: Drawing commands. (line 16) * leastsquares: stats. (line 6) @@ -9470,39 +9528,40 @@ Index * LeftSide: label. (line 60) * LeftTicks: graph. (line 160) * LeftTicks <1>: graph. (line 233) -* LeftView: three. (line 423) -* legend: Drawing commands. (line 31) -* legend <1>: draw. (line 64) +* LeftView: three. (line 426) +* legend: Drawing commands. (line 34) +* legend <1>: draw. (line 65) * legend <2>: graph. (line 424) * Legendre: Mathematical functions. (line 48) * length: Data types. (line 65) * length <1>: Data types. (line 144) -* length <2>: Data types. (line 238) +* length <2>: Data types. (line 239) * length <3>: Paths and guides. (line 76) * length <4>: Paths and guides. (line 373) * length <5>: Arrays. (line 39) -* length <6>: three. (line 537) -* letter: Configuring. (line 66) +* length <6>: three. (line 540) +* letter: Configuring. (line 68) * lexorder: math. (line 63) * lexorder <1>: math. (line 66) -* libgs: Options. (line 160) +* libcurl: Import. (line 94) +* libgs: Options. (line 162) * libm routines: Mathematical functions. (line 6) * libsigsegv: Functions. (line 100) * libsigsegv <1>: Help. (line 27) * light: three. (line 76) * limits: graph. (line 639) -* line: Arrays. (line 347) -* line <1>: Arrays. (line 351) -* line mode: Arrays. (line 347) +* line: Arrays. (line 352) +* line <1>: Arrays. (line 356) +* line mode: Arrays. (line 352) * Linear: graph. (line 690) * linecap: Pens. (line 139) * linejoin: Pens. (line 149) * lineskip: Pens. (line 192) * linetype: Pens. (line 123) * linewidth: Pens. (line 127) -* locale: Data types. (line 315) +* locale: Data types. (line 316) * log: Mathematical functions. (line 6) * Log: graph. (line 690) @@ -9517,21 +9576,25 @@ Index (line 6) * longdashdotted: Pens. (line 102) * longdashed: Pens. (line 102) -* longitude: Data types. (line 168) +* longitude: Data types. (line 169) * loop: Programming. (line 26) -* lualatex: Options. (line 155) -* luatex: Options. (line 155) +* lualatex: Options. (line 157) +* luatex: Options. (line 157) * MacOS X binary distributions: MacOS X binary distributions. (line 6) -* makepen: Pens. (line 321) +* MacOS X configuration: Compiling from UNIX source. + (line 48) +* makepen: Pens. (line 338) * map: Arrays. (line 131) +* map <1>: Arrays. (line 136) +* map <2>: map. (line 6) * Margin: draw. (line 42) * Margin <1>: draw. (line 42) -* Margin3: three. (line 619) -* Margin3 <1>: three. (line 619) +* Margin3: three. (line 622) +* Margin3 <1>: three. (line 622) * Margins: draw. (line 42) -* margins: three. (line 300) -* Margins3: three. (line 619) +* margins: three. (line 303) +* Margins3: three. (line 622) * mark: graph. (line 480) * markangle: markers. (line 35) * marker: graph. (line 480) @@ -9546,14 +9609,14 @@ Index * max: Paths and guides. (line 279) * max <1>: Frames and pictures. (line 7) -* max <2>: Arrays. (line 221) -* max <3>: Arrays. (line 231) -* max <4>: three. (line 537) +* max <2>: Arrays. (line 226) +* max <3>: Arrays. (line 236) +* max <4>: three. (line 540) * maxbound: Data types. (line 134) -* maxbound <1>: Data types. (line 204) -* maxtile: three. (line 251) +* maxbound <1>: Data types. (line 205) +* maxtile: three. (line 254) * maxtimes: Paths and guides. (line 233) -* maxviewport: three. (line 251) +* maxviewport: three. (line 254) * metallic: three. (line 66) * MetaPost: MetaPost. (line 6) * MetaPost ... : Bezier curves. (line 70) @@ -9563,37 +9626,37 @@ Index * MetaPost whatever: MetaPost. (line 10) * Microsoft Windows: Microsoft Windows. (line 6) * MidArcArrow: draw. (line 26) -* MidArcArrow3: three. (line 603) +* MidArcArrow3: three. (line 606) * MidArrow: draw. (line 26) -* MidArrow3: three. (line 603) +* MidArrow3: three. (line 606) * MidPoint: label. (line 55) * midpoint: Paths and guides. (line 180) * min: Paths and guides. (line 275) * min <1>: Frames and pictures. (line 7) -* min <2>: Arrays. (line 216) -* min <3>: Arrays. (line 226) -* min <4>: three. (line 537) +* min <2>: Arrays. (line 221) +* min <3>: Arrays. (line 231) +* min <4>: three. (line 540) * minbound: Data types. (line 131) -* minbound <1>: Data types. (line 201) +* minbound <1>: Data types. (line 202) * minipage: label. (line 116) * mintimes: Paths and guides. (line 228) * miterjoin: Pens. (line 149) * miterlimit: Pens. (line 159) -* mktemp: Files. (line 44) +* mktemp: Files. (line 48) * mm: Figure size. (line 18) -* mobile browser: three. (line 220) -* mode: Files. (line 76) -* mode <1>: Files. (line 89) +* mobile browser: three. (line 223) +* mode: Files. (line 80) +* mode <1>: Files. (line 93) * monotonic: graph. (line 36) * mouse: GUI. (line 6) -* mouse bindings: three. (line 179) +* mouse bindings: three. (line 182) * mouse wheel: GUI usage. (line 6) -* Move: Pens. (line 358) -* MoveQuiet: Pens. (line 364) -* multisample: three. (line 172) +* Move: Pens. (line 375) +* MoveQuiet: Pens. (line 381) +* multisample: three. (line 174) * N: Labels. (line 18) -* name: Files. (line 89) +* name: Files. (line 93) * named arguments: Named arguments. (line 6) * nan: Data types. (line 35) * natural: graph. (line 36) @@ -9602,25 +9665,27 @@ Index * new <2>: Arrays. (line 103) * newframe: Frames and pictures. (line 7) -* newl: Files. (line 61) +* newl: Files. (line 65) +* newpage: Drawing commands. (line 27) * newton: Mathematical functions. (line 66) * newton <1>: Mathematical functions. (line 73) * next: Debugger. (line 41) -* NFSS: Pens. (line 206) * nobasealign: Pens. (line 181) * NoFill: draw. (line 26) * NoFill <1>: Frames and pictures. (line 154) +* noglobalread: Files. (line 26) +* noglobalread <1>: Files. (line 40) * nolight: three. (line 76) * NoMargin: draw. (line 42) -* NoMargin3: three. (line 619) +* NoMargin3: three. (line 622) * None: draw. (line 19) * None <1>: draw. (line 26) -* none: Files. (line 61) -* normal: three. (line 523) -* nosafe: Options. (line 181) +* none: Files. (line 65) +* normal: three. (line 526) +* nosafe: Options. (line 182) * NOT: Arithmetic & logical. (line 68) * notaknot: graph. (line 36) @@ -9632,26 +9697,26 @@ Index (line 140) * nullpen <2>: Frames and pictures. (line 149) -* NURBS: three. (line 399) -* O: three. (line 312) +* NURBS: three. (line 402) +* O: three. (line 315) * obj: obj. (line 6) -* oblique: three. (line 355) -* obliqueX: three. (line 362) -* obliqueY: three. (line 368) -* obliqueZ: three. (line 355) +* oblique: three. (line 358) +* obliqueX: three. (line 365) +* obliqueY: three. (line 371) +* obliqueZ: three. (line 358) * ode: ode. (line 6) * offset: Pens. (line 123) -* offset <1>: Options. (line 186) +* offset <1>: Options. (line 187) * OmitTick: graph. (line 223) * OmitTickInterval: graph. (line 223) * OmitTickIntervals: graph. (line 223) -* opacity: Pens. (line 237) +* opacity: Pens. (line 254) * opacity <1>: three. (line 66) * open: Files. (line 12) -* OpenGL: three. (line 172) +* OpenGL: three. (line 174) * operator: User-defined operators. (line 6) -* operator +(...string[] a).: Data types. (line 283) +* operator +(...string[] a).: Data types. (line 284) * operator --: graph. (line 30) * operator ..: graph. (line 33) * operator answer: Interactive mode. (line 35) @@ -9665,18 +9730,18 @@ Index * OR: Arithmetic & logical. (line 68) * orient: Data types. (line 108) -* orient <1>: three. (line 554) +* orient <1>: three. (line 557) * orientation: Frames and pictures. (line 104) -* orthographic: three. (line 372) -* outformat: three. (line 172) +* orthographic: three. (line 375) +* outformat: three. (line 174) * outprefix: Frames and pictures. (line 91) -* output: Files. (line 36) -* output <1>: Options. (line 155) +* output: Files. (line 38) +* output <1>: Options. (line 157) * OutTicks: graph3. (line 35) * overloading functions: Functions. (line 55) -* overwrite: Pens. (line 343) +* overwrite: Pens. (line 360) * P: Mathematical functions. (line 48) * pack: label. (line 100) @@ -9685,16 +9750,16 @@ Index (line 186) * pair: Figure size. (line 6) * pair <1>: Data types. (line 46) -* pairs: Arrays. (line 236) -* paperheight: Configuring. (line 66) -* papertype: Configuring. (line 66) -* paperwidth: Configuring. (line 66) +* pairs: Arrays. (line 241) +* paperheight: Configuring. (line 68) +* papertype: Configuring. (line 68) +* paperwidth: Configuring. (line 68) * parallelogram: flowchart. (line 47) * parametric surface: graph3. (line 99) * parametrized curve: graph. (line 639) * partialsum: math. (line 49) * partialsum <1>: math. (line 52) -* patch-dependent colors: three. (line 107) +* patch-dependent colors: three. (line 109) * path: Paths. (line 6) * path <1>: Paths and guides. (line 7) * path <2>: three. (line 42) @@ -9703,62 +9768,63 @@ Index * path3: three. (line 6) * path3 <1>: three. (line 42) * path[]: Paths. (line 23) -* patterns: Pens. (line 254) +* patterns: Pens. (line 271) * patterns <1>: patterns. (line 6) * PBR: three. (line 74) -* PDF: Options. (line 155) -* pdflatex: Options. (line 155) -* pdfreloadOptions: Options. (line 141) +* PDF: Options. (line 157) +* pdflatex: Options. (line 157) +* pdfreloadOptions: Options. (line 143) * pdfviewer: Configuring. (line 20) -* pdfviewerOptions: Options. (line 141) +* pdfviewerOptions: Options. (line 143) * pen: Pens. (line 6) * PenMargin: draw. (line 42) -* PenMargin2: three. (line 619) -* PenMargin3: three. (line 619) +* PenMargin2: three. (line 622) +* PenMargin3: three. (line 622) * PenMargins: draw. (line 42) -* PenMargins2: three. (line 619) -* PenMargins3: three. (line 619) +* PenMargins2: three. (line 622) +* PenMargins3: three. (line 622) * periodic: graph. (line 36) * perl: LaTeX usage. (line 30) * perpendicular: geometry. (line 6) -* perspective: three. (line 399) +* perspective: three. (line 402) * physically based rendering: three. (line 74) * picture: Frames and pictures. (line 39) * picture alignment: Frames and pictures. (line 231) * piecewisestraight: Paths and guides. (line 92) -* pixel: three. (line 626) +* pixel: three. (line 629) * Pl: Mathematical functions. (line 48) * plain: plain. (line 6) -* planar: three. (line 116) -* plane: three. (line 338) -* planeproject: three. (line 520) +* planar: three. (line 118) +* plane: three. (line 341) +* planeproject: three. (line 523) * point: Paths and guides. (line 95) * point <1>: Paths and guides. (line 379) -* point <2>: three. (line 537) -* polar: Data types. (line 148) +* point <2>: three. (line 540) +* polar: Data types. (line 149) * polargraph: graph. (line 88) * polygon: graph. (line 480) * pop: Arrays. (line 39) * Portrait: Frames and pictures. (line 104) * position: three. (line 76) +* position <1>: three. (line 174) * postcontrol: Paths and guides. (line 146) -* postcontrol <1>: three. (line 537) +* postcontrol <1>: three. (line 540) * postfix operators: Self & prefix operators. (line 19) * postscript: Frames and pictures. (line 297) -* PostScript fonts: Pens. (line 224) +* PostScript fonts: Pens. (line 222) * PostScript subpath: Paths. (line 23) * pow10: Mathematical functions. (line 6) -* prc: three. (line 269) -* precision: Files. (line 93) +* prc: three. (line 272) +* precision: Files. (line 97) * precontrol: Paths and guides. (line 139) -* precontrol <1>: three. (line 537) +* precontrol <1>: three. (line 540) * prefix operators: Self & prefix operators. (line 6) * private: Structures. (line 6) @@ -9766,23 +9832,23 @@ Index * pstoedit: PostScript to Asymptote. (line 6) * psviewer: Configuring. (line 20) -* psviewerOptions: Options. (line 141) +* psviewerOptions: Options. (line 143) * pt: Figure size. (line 18) * public: Structures. (line 6) * push: Arrays. (line 39) * Python usage: Interactive mode. (line 72) -* quadraticroots: Arrays. (line 313) -* quadraticroots <1>: Arrays. (line 318) +* quadraticroots: Arrays. (line 318) +* quadraticroots <1>: Arrays. (line 323) * quarticroots: math. (line 22) -* quick reference: Description. (line 84) +* quick reference: Description. (line 88) * quit: Drawing in interactive mode. (line 11) * quit <1>: Interactive mode. (line 54) * quit <2>: Debugger. (line 53) -* quote: Import. (line 115) +* quote: Import. (line 120) * quotient: Arithmetic & logical. (line 6) -* radialshade: fill. (line 51) +* radialshade: fill. (line 52) * RadialShade: Frames and pictures. (line 172) * RadialShadeDraw: Frames and pictures. @@ -9790,16 +9856,16 @@ Index * radians: Mathematical functions. (line 17) * radius: Paths and guides. (line 135) -* radius <1>: three. (line 537) +* radius <1>: three. (line 540) * Rainbow: palette. (line 12) * rand: Mathematical functions. (line 39) * randMax: Mathematical functions. (line 39) -* read: Arrays. (line 387) +* read: Arrays. (line 392) * reading: Files. (line 12) -* reading string arrays: Arrays. (line 357) -* readline: Files. (line 135) +* reading string arrays: Arrays. (line 362) +* readline: Files. (line 139) * real: Data types. (line 35) * realDigits: Data types. (line 35) * realEpsilon: Data types. (line 35) @@ -9808,7 +9874,7 @@ Index * realmult: Data types. (line 100) * rectangle: flowchart. (line 34) * recursion: Functions. (line 100) -* reference: Description. (line 84) +* reference: Description. (line 88) * reflect: Transforms. (line 42) * Relative: label. (line 50) * Relative <1>: label. (line 60) @@ -9816,24 +9882,24 @@ Index * reltime: Paths and guides. (line 172) * remainder: Mathematical functions. (line 6) -* rename: Files. (line 152) +* rename: Files. (line 156) * render: three. (line 46) -* render <1>: three. (line 172) -* render <2>: Options. (line 155) -* replace: Data types. (line 269) -* resetdefaultpen: Pens. (line 370) +* render <1>: three. (line 174) +* render <2>: Options. (line 157) +* replace: Data types. (line 270) +* resetdefaultpen: Pens. (line 387) * rest arguments: Rest arguments. (line 6) * restore: Frames and pictures. (line 291) * restricted: Structures. (line 6) * return: Debugger. (line 47) -* reverse: Data types. (line 265) +* reverse: Data types. (line 266) * reverse <1>: Paths and guides. (line 183) * reverse <2>: Paths and guides. (line 382) -* reverse <3>: Arrays. (line 136) -* reverse <4>: three. (line 537) -* rewind: Files. (line 93) -* rfind: Data types. (line 246) +* reverse <3>: Arrays. (line 141) +* reverse <4>: three. (line 540) +* rewind: Files. (line 97) +* rfind: Data types. (line 247) * rgb: Pens. (line 30) * rgb <1>: Pens. (line 34) * rgb <2>: Pens. (line 62) @@ -9843,9 +9909,9 @@ Index * RightSide: label. (line 60) * RightTicks: graph. (line 160) * RightTicks <1>: graph. (line 233) -* RightView: three. (line 423) +* RightView: three. (line 426) * Rotate: label. (line 36) -* rotate: three. (line 491) +* rotate: three. (line 494) * Rotate(pair z): label. (line 39) * round: Mathematical functions. (line 26) @@ -9855,42 +9921,42 @@ Index * roundrectangle: flowchart. (line 66) * RPM: UNIX binary distributions. (line 6) -* runtime imports: Import. (line 97) -* Russian: unicode. (line 7) +* runtime imports: Import. (line 102) +* Russian: Pens. (line 237) * S: Labels. (line 18) -* safe: Options. (line 181) +* safe: Options. (line 182) * save: Frames and pictures. (line 288) -* saveline: Files. (line 135) +* saveline: Files. (line 139) * Scale: label. (line 45) * scale: Pens. (line 123) * scale <1>: Transforms. (line 34) * scale <2>: Transforms. (line 36) * scale <3>: graph. (line 690) * Scale <1>: graph. (line 707) -* scale <4>: three. (line 490) -* scale3: three. (line 488) +* scale <4>: three. (line 493) +* scale3: three. (line 491) * scaled graph: graph. (line 670) * scientific graph: graph. (line 387) -* scroll: Files. (line 109) -* search: Arrays. (line 157) -* search <1>: Arrays. (line 163) +* scroll: Files. (line 113) +* search: Arrays. (line 162) +* search <1>: Arrays. (line 168) * search paths: Search paths. (line 6) * Seascape: Frames and pictures. (line 110) * secondary axis: graph. (line 833) * secondaryX: graph. (line 833) * secondaryY: graph. (line 833) -* seconds: Data types. (line 329) -* seek: Files. (line 93) -* seekeof: Files. (line 93) +* seconds: Data types. (line 330) +* seek: Files. (line 97) +* seekeof: Files. (line 97) * segment: math. (line 46) * segmentation fault: Help. (line 27) * self operators: Self & prefix operators. (line 6) * sequence: Arrays. (line 118) * settings: Configuring. (line 20) -* settings <1>: Options. (line 126) +* settings <1>: Options. (line 128) * sgn: Mathematical functions. (line 26) * shading: fill. (line 32) @@ -9898,16 +9964,16 @@ Index * shift: Transforms. (line 26) * shift <1>: Transforms. (line 28) * shift <2>: Transforms. (line 46) -* shift <3>: three. (line 480) +* shift <3>: three. (line 483) * shiftless: Transforms. (line 46) * shininess: three. (line 66) * shipout: Frames and pictures. (line 91) -* showtarget: three. (line 372) +* showtarget: three. (line 375) * Si: Mathematical functions. (line 48) -* signedint: Files. (line 76) -* signedint <1>: Files. (line 89) +* signedint: Files. (line 80) +* signedint <1>: Files. (line 93) * SimpleHead: draw. (line 26) * simplex: simplex. (line 6) * simpson: Mathematical functions. @@ -9916,16 +9982,16 @@ Index (line 6) * Sin: Mathematical functions. (line 20) -* single precision: Files. (line 76) -* singleint: Files. (line 76) -* singleint <1>: Files. (line 89) -* singlereal: Files. (line 76) -* singlereal <1>: Files. (line 89) +* single precision: Files. (line 80) +* singleint: Files. (line 80) +* singleint <1>: Files. (line 93) +* singlereal: Files. (line 80) +* singlereal <1>: Files. (line 93) * sinh: Mathematical functions. (line 6) -* SixViews: three. (line 438) -* SixViewsFR: three. (line 438) -* SixViewsUS: three. (line 438) +* SixViews: three. (line 441) +* SixViewsFR: three. (line 441) +* SixViewsUS: three. (line 441) * size: Figure size. (line 6) * size <1>: Paths and guides. (line 81) * size <2>: Paths and guides. (line 370) @@ -9933,12 +9999,12 @@ Index (line 48) * size <4>: Frames and pictures. (line 74) -* size <5>: three. (line 537) -* size <6>: Options. (line 155) -* size3: three. (line 297) +* size <5>: three. (line 540) +* size <6>: Options. (line 157) +* size3: three. (line 300) * Slant: label. (line 42) * slant: Transforms. (line 38) -* sleep: Data types. (line 375) +* sleep: Data types. (line 376) * slice: Paths and guides. (line 251) * slice <1>: Paths and guides. (line 262) * slices: Slices. (line 6) @@ -9951,17 +10017,17 @@ Index (line 48) * solid: Pens. (line 102) * solids: solids. (line 6) -* solve: Arrays. (line 282) -* solve <1>: Arrays. (line 298) -* sort: Arrays. (line 177) -* sort <1>: Arrays. (line 181) -* sort <2>: Arrays. (line 196) +* solve: Arrays. (line 287) +* solve <1>: Arrays. (line 303) +* sort: Arrays. (line 182) +* sort <1>: Arrays. (line 186) +* sort <2>: Arrays. (line 201) * specular: three. (line 76) * specularfactor: three. (line 76) * specularpen: three. (line 66) * Spline: graph. (line 33) * Spline <1>: graph3. (line 99) -* split: Data types. (line 278) +* split: Data types. (line 279) * sqrt: Mathematical functions. (line 6) * squarecap: Pens. (line 139) @@ -9972,42 +10038,42 @@ Index * stack overflow <2>: Help. (line 27) * static: Static. (line 6) * stats: stats. (line 6) -* stdin: Files. (line 48) -* stdout: Files. (line 48) +* stdin: Files. (line 52) +* stdout: Files. (line 52) * step: Debugger. (line 38) * stickframe: markers. (line 16) * stop: Debugger. (line 10) * straight: Paths and guides. (line 88) * Straight: graph. (line 30) -* straight <1>: three. (line 537) -* strftime: Data types. (line 320) -* strftime <1>: Data types. (line 345) -* string: Data types. (line 207) -* string <1>: Data types. (line 311) +* straight <1>: three. (line 540) +* strftime: Data types. (line 321) +* strftime <1>: Data types. (line 346) +* string: Data types. (line 208) +* string <1>: Data types. (line 312) * stroke: fill. (line 36) * stroke <1>: clip. (line 6) * strokepath: Paths and guides. (line 309) -* strptime: Data types. (line 329) +* strptime: Data types. (line 330) * struct: Structures. (line 6) * structures: Structures. (line 6) * subpath: Paths and guides. (line 186) -* subpath <1>: three. (line 537) +* subpath <1>: three. (line 540) * subpictures: Frames and pictures. (line 113) -* substr: Data types. (line 261) -* sum: Arrays. (line 211) +* substr: Data types. (line 262) +* sum: Arrays. (line 216) * superpath: Paths. (line 23) -* Suppress: Pens. (line 350) -* SuppressQuiet: Pens. (line 354) +* Suppress: Pens. (line 367) +* SuppressQuiet: Pens. (line 371) * surface: three. (line 46) -* surface <1>: three. (line 116) -* surface <2>: three. (line 130) +* surface <1>: three. (line 118) +* surface <2>: three. (line 132) * surface <3>: graph3. (line 99) -* SVG: Options. (line 160) -* system: Data types. (line 353) -* system <1>: Options. (line 181) +* SVG: Options. (line 162) +* system: Data types. (line 354) +* system <1>: Options. (line 182) * syzygy: syzygy. (line 6) -* tab: Files. (line 61) +* tab: Files. (line 65) * tab completion: Drawing in interactive mode. (line 11) * tan: Mathematical functions. @@ -10016,23 +10082,23 @@ Index (line 20) * tanh: Mathematical functions. (line 6) -* target: three. (line 372) -* tell: Files. (line 93) +* target: three. (line 375) +* tell: Files. (line 97) * tension: Bezier curves. (line 56) * tension <1>: three. (line 6) * tensionSpecifier: Paths and guides. (line 402) -* tensor product shading: fill. (line 77) -* tensorshade: fill. (line 77) -* tessellation: three. (line 142) +* tensor product shading: fill. (line 78) +* tensorshade: fill. (line 78) +* tessellation: three. (line 144) * tex: Frames and pictures. (line 305) -* tex <1>: Options. (line 155) -* TeX fonts: Pens. (line 215) -* TeX string: Data types. (line 207) -* texcommand: Configuring. (line 72) +* tex <1>: Options. (line 157) +* TeX fonts: Pens. (line 213) +* TeX string: Data types. (line 208) +* texcommand: Configuring. (line 74) * TeXHead: draw. (line 26) -* TeXHead3: three. (line 603) -* texpath: Configuring. (line 72) +* TeXHead3: three. (line 606) +* texpath: Configuring. (line 74) * texpath <1>: label. (line 113) * texpreamble: Frames and pictures. (line 314) @@ -10041,73 +10107,72 @@ Index * textbook graph: graph. (line 360) * tgz: UNIX binary distributions. (line 6) -* thick: three. (line 154) -* thin: three. (line 154) +* thick: three. (line 156) +* thin: three. (line 156) * this: Structures. (line 6) * three: three. (line 6) -* ThreeViews: three. (line 438) -* ThreeViewsFR: three. (line 438) -* ThreeViewsUS: three. (line 438) +* ThreeViews: three. (line 441) +* ThreeViewsFR: three. (line 441) +* ThreeViewsUS: three. (line 441) * tick: graph. (line 330) * ticks: graph. (line 160) * Ticks: graph. (line 160) * Ticks <1>: graph. (line 233) * tildeframe: markers. (line 24) -* tile: Pens. (line 268) -* tilings: Pens. (line 254) -* time: Data types. (line 320) -* time <1>: Data types. (line 345) +* tile: Pens. (line 285) +* tilings: Pens. (line 271) +* time: Data types. (line 321) +* time <1>: Data types. (line 346) * time <2>: math. (line 26) * time <3>: math. (line 30) * times: Paths and guides. (line 220) * times <1>: Paths and guides. (line 224) * Top: graph. (line 135) -* TopView: three. (line 423) +* TopView: three. (line 426) * trace: Debugger. (line 50) * trailingzero: graph. (line 175) * transform: Transforms. (line 6) -* transform <1>: three. (line 512) -* transform3: three. (line 475) -* transparency: Pens. (line 237) +* transform <1>: three. (line 515) +* transform3: three. (line 478) +* transparency: Pens. (line 254) * transparent: three. (line 97) -* transpose: Arrays. (line 203) -* transpose <1>: Arrays. (line 206) +* transpose: Arrays. (line 208) +* transpose <1>: Arrays. (line 211) * tree: tree. (line 6) * trembling: trembling. (line 6) * triangle: geometry. (line 6) -* triangles: three. (line 142) +* triangles: three. (line 144) * triangulate: contour. (line 149) -* tridiagonal: Arrays. (line 269) +* tridiagonal: Arrays. (line 274) * trigonometric integrals: Mathematical functions. (line 48) * triple: Data types. (line 137) * TrueMargin: draw. (line 42) -* TrueMargin3: three. (line 619) -* tube: three. (line 154) +* TrueMargin3: three. (line 622) +* tube: three. (line 156) * tube <1>: tube. (line 6) * tutorial: Tutorial. (line 6) * type1cm: Pens. (line 192) -* typedef: Data types. (line 384) +* typedef: Data types. (line 385) * typedef <1>: Functions. (line 46) * U3D: embed. (line 22) * undefined: Paths and guides. (line 283) * UnFill: draw. (line 26) -* unfill: fill. (line 109) +* unfill: fill. (line 110) * UnFill <1>: Frames and pictures. (line 165) * UnFill <2>: Frames and pictures. (line 168) -* unicode: unicode. (line 6) -* uniform: Arrays. (line 145) +* uniform: Arrays. (line 150) * uninstall: Uninstall. (line 6) * unique: math. (line 59) * unit: Data types. (line 83) -* unit <1>: Data types. (line 173) +* unit <1>: Data types. (line 174) * unitbox: Paths. (line 44) -* unitbox <1>: three. (line 344) +* unitbox <1>: three. (line 347) * unitcircle: Paths. (line 17) * unitcircle <1>: Paths. (line 17) -* unitcircle <2>: three. (line 312) +* unitcircle <2>: three. (line 315) * unitrand: Mathematical functions. (line 39) * unitsize: Figure size. (line 39) @@ -10117,18 +10182,19 @@ Index (line 6) * unpacking: Rest arguments. (line 39) * unravel: Import. (line 29) -* up: three. (line 372) -* update: Files. (line 36) +* up: three. (line 375) +* update: Files. (line 38) * UpsideDown: Frames and pictures. (line 104) * UpsideDown <1>: Frames and pictures. (line 110) +* URL: Import. (line 94) * usepackage: Frames and pictures. (line 321) * user coordinates: Figure size. (line 39) * user-defined operators: User-defined operators. (line 6) -* usleep: Data types. (line 378) +* usleep: Data types. (line 379) * value: math. (line 34) * value <1>: math. (line 37) * var: Variable initializers. @@ -10138,50 +10204,50 @@ Index * vectorfield: graph. (line 1004) * vectorfield <1>: graph. (line 1043) * vectorfield3: graph3. (line 157) -* vectorization: Arrays. (line 326) +* vectorization: Arrays. (line 331) * verbatim: Frames and pictures. (line 297) -* vertex-dependent colors: three. (line 107) +* vertex-dependent colors: three. (line 109) * Vertical: flowchart. (line 77) * Viewport: three. (line 76) * viewportheight: LaTeX usage. (line 50) -* viewportmargin: three. (line 300) -* viewportsize: three. (line 300) +* viewportmargin: three. (line 303) +* viewportsize: three. (line 303) * viewportwidth: LaTeX usage. (line 50) -* views: three. (line 269) +* views: three. (line 272) * vim: Editing modes. (line 32) -* virtual functions: Structures. (line 181) +* virtual functions: Structures. (line 182) * void: Data types. (line 10) * W: Labels. (line 18) -* WebGL: three. (line 220) +* WebGL: three. (line 223) * whatever: Paths and guides. (line 246) * Wheel: palette. (line 22) * wheel mouse: GUI. (line 6) * while: Programming. (line 48) * White: three. (line 76) -* white-space string delimiter mode: Arrays. (line 357) +* white-space string delimiter mode: Arrays. (line 362) * width: LaTeX usage. (line 50) * windingnumber: Paths and guides. (line 283) -* word: Arrays. (line 357) -* write: Files. (line 53) -* write <1>: Arrays. (line 396) -* X: three. (line 312) +* word: Arrays. (line 362) +* write: Files. (line 57) +* write <1>: Arrays. (line 401) +* X: three. (line 315) * xasy: GUI. (line 6) * xaxis3: graph3. (line 7) -* xdr: Files. (line 76) -* xelatex: Options. (line 155) +* xdr: Files. (line 80) +* xelatex: Options. (line 157) * XEquals: graph. (line 265) * xequals: graph. (line 278) * xlimits: graph. (line 639) * XOR: Arithmetic & logical. (line 68) * xpart: Data types. (line 94) -* xpart <1>: Data types. (line 184) +* xpart <1>: Data types. (line 185) * xscale: Transforms. (line 30) -* xscale3: three. (line 482) +* xscale3: three. (line 485) * xtick: graph. (line 330) -* XY: three. (line 497) -* XY <1>: three. (line 512) +* XY: three. (line 500) +* XY <1>: three. (line 515) * XYEquals: graph3. (line 21) * XYZero: graph3. (line 21) * XZEquals: graph3. (line 21) @@ -10191,22 +10257,22 @@ Index (line 6) * Y <1>: Mathematical functions. (line 48) -* Y <2>: three. (line 312) +* Y <2>: three. (line 315) * yaxis3: graph3. (line 7) * YEquals: graph. (line 128) * yequals: graph. (line 278) * ylimits: graph. (line 639) * ypart: Data types. (line 97) -* ypart <1>: Data types. (line 187) +* ypart <1>: Data types. (line 188) * yscale: Transforms. (line 32) -* yscale3: three. (line 484) +* yscale3: three. (line 487) * ytick: graph. (line 330) -* YX: three. (line 512) -* YZ: three. (line 512) +* YX: three. (line 515) +* YZ: three. (line 515) * YZEquals: graph3. (line 21) * YZero: graph. (line 123) * YZZero: graph3. (line 21) -* Z: three. (line 312) +* Z: three. (line 315) * zaxis3: graph3. (line 7) * zeroTransform: Transforms. (line 44) * zerowinding: Pens. (line 164) @@ -10222,160 +10288,159 @@ Index (line 48) * zeta: Mathematical functions. (line 48) -* zpart: Data types. (line 190) -* zscale3: three. (line 486) -* ZX: three. (line 512) -* ZX <1>: three. (line 512) -* ZY: three. (line 512) +* zpart: Data types. (line 191) +* zscale3: three. (line 489) +* ZX: three. (line 515) +* ZX <1>: three. (line 515) +* ZY: three. (line 515) Tag Table: Node: Top570 -Node: Description7280 -Node: Installation11190 -Node: UNIX binary distributions12236 -Node: MacOS X binary distributions13366 -Node: Microsoft Windows13921 -Node: Configuring15128 -Node: Search paths19591 -Node: Compiling from UNIX source20430 -Node: Editing modes23492 -Node: Git25914 -Node: Uninstall26314 -Node: Tutorial26660 -Node: Drawing in batch mode27551 -Node: Drawing in interactive mode28427 -Node: Figure size29459 -Node: Labels31054 -Node: Paths31882 -Ref: unitcircle32498 -Node: Drawing commands34400 -Node: draw36115 -Ref: arrows37297 -Node: fill42795 -Ref: gradient shading43841 -Node: clip48357 -Node: label48944 -Ref: Label49544 -Node: Bezier curves55376 -Node: Programming59276 -Ref: array iteration61029 -Node: Data types61196 -Ref: format71858 -Node: Paths and guides76304 -Ref: circle76558 -Ref: extension86258 -Node: Pens93068 -Ref: fillrule100759 -Ref: basealign101663 -Ref: transparency104497 -Ref: makepen108091 -Ref: overwrite108975 -Node: Transforms110189 -Node: Frames and pictures112021 -Ref: envelope113179 -Ref: size114272 -Ref: unitsize115259 -Ref: shipout116332 -Ref: filltype118683 -Ref: add122096 -Ref: add about123038 -Ref: tex126068 -Node: Files126964 -Ref: cd127951 -Ref: scroll132636 -Node: Variable initializers135554 -Node: Structures138271 -Node: Operators145773 -Node: Arithmetic & logical146087 -Node: Self & prefix operators148457 -Node: User-defined operators149251 -Node: Implicit scaling150164 -Node: Functions150727 -Ref: stack overflow153869 -Node: Default arguments154151 -Node: Named arguments154907 -Node: Rest arguments157477 -Node: Mathematical functions160599 -Node: Arrays165256 -Ref: sort172364 -Ref: tridiagonal175275 -Ref: solve176506 -Node: Slices180646 -Node: Casts184554 -Node: Import186824 -Node: Static192082 -Node: LaTeX usage194975 -Node: Base modules201470 -Node: plain204027 -Node: simplex204701 -Node: math204975 -Node: interpolate207559 -Node: geometry207838 -Node: trembling208432 -Node: stats208701 -Node: patterns208961 -Node: markers209197 -Node: tree211059 -Node: binarytree211244 -Node: drawtree211911 -Node: syzygy212112 -Node: feynman212386 -Node: roundedpath212661 -Node: animation212944 -Ref: animate213365 -Node: embed214478 -Node: slide215432 -Node: MetaPost215764 -Node: unicode216483 -Node: latin1217357 -Node: babel217726 -Node: labelpath217956 -Node: labelpath3218777 -Node: annotate219088 -Node: CAD219558 -Node: graph219869 -Ref: ticks227030 -Ref: pathmarkers240768 -Ref: marker241239 -Ref: markuniform241593 -Ref: errorbars243401 -Ref: automatic scaling247880 -Node: palette259641 -Ref: images259759 -Ref: image263933 -Ref: logimage264454 -Ref: penimage265560 -Ref: penfunctionimage265823 -Node: three266595 -Ref: PostScript3D295892 -Node: obj297631 -Node: graph3297880 -Ref: GaussianSurface303163 -Node: grid3304313 -Node: solids305098 -Node: tube306091 -Node: flowchart308322 -Node: contour312931 -Node: contour3318251 -Node: smoothcontour3318564 -Node: slopefield320285 -Node: ode321775 -Node: Options322032 -Ref: configuration file328817 -Ref: settings328817 -Ref: texengines330081 -Ref: convert330081 -Node: Interactive mode333591 -Ref: history335741 -Node: GUI337044 -Node: GUI installation337595 -Node: GUI usage338326 -Node: PostScript to Asymptote339389 -Node: Help340148 -Node: Debugger341822 -Node: Credits343578 -Node: Index344595 +Node: Description7200 +Node: Installation11286 +Node: UNIX binary distributions12332 +Node: MacOS X binary distributions13455 +Node: Microsoft Windows14010 +Node: Configuring15217 +Node: Search paths19829 +Node: Compiling from UNIX source20837 +Node: Editing modes23988 +Node: Git26410 +Node: Uninstall26917 +Node: Tutorial27263 +Node: Drawing in batch mode28110 +Node: Drawing in interactive mode28986 +Node: Figure size30018 +Node: Labels31613 +Node: Paths32441 +Ref: unitcircle33057 +Node: Drawing commands34955 +Node: draw36763 +Ref: arrows37945 +Node: fill43461 +Ref: gradient shading44507 +Node: clip49121 +Node: label49870 +Ref: Label50470 +Node: Bezier curves56328 +Node: Programming60228 +Ref: array iteration61981 +Node: Data types62148 +Ref: format72916 +Node: Paths and guides77362 +Ref: circle77616 +Ref: extension87316 +Node: Pens94126 +Ref: fillrule101817 +Ref: basealign102721 +Ref: transparency106403 +Ref: makepen109997 +Ref: overwrite110881 +Node: Transforms112095 +Node: Frames and pictures114034 +Ref: envelope115192 +Ref: size116285 +Ref: unitsize117272 +Ref: shipout118345 +Ref: filltype120696 +Ref: add124109 +Ref: add about125051 +Ref: tex128081 +Node: Files128977 +Ref: cd130034 +Ref: scroll134936 +Node: Variable initializers137854 +Node: Structures140571 +Node: Operators148149 +Node: Arithmetic & logical148463 +Node: Self & prefix operators150833 +Node: User-defined operators151627 +Node: Implicit scaling152540 +Node: Functions153103 +Ref: stack overflow156245 +Node: Default arguments156527 +Node: Named arguments157283 +Node: Rest arguments159853 +Node: Mathematical functions162975 +Node: Arrays167632 +Ref: sort174921 +Ref: tridiagonal177832 +Ref: solve179063 +Node: Slices183203 +Node: Casts187111 +Node: Import189381 +Node: Static194962 +Node: LaTeX usage197848 +Node: Base modules204343 +Node: plain206820 +Node: simplex207494 +Node: math207767 +Node: interpolate210350 +Node: geometry210629 +Node: trembling211223 +Node: stats211492 +Node: patterns211751 +Node: markers211986 +Node: map213845 +Node: tree214269 +Node: binarytree214453 +Node: drawtree215120 +Node: syzygy215321 +Node: feynman215595 +Node: roundedpath215869 +Node: animation216151 +Ref: animate216572 +Node: embed217684 +Node: slide218638 +Node: MetaPost218969 +Node: babel219685 +Node: labelpath219917 +Node: labelpath3220737 +Node: annotate221048 +Node: CAD221518 +Node: graph221828 +Ref: ticks228988 +Ref: pathmarkers242713 +Ref: marker243184 +Ref: markuniform243538 +Ref: errorbars245346 +Ref: automatic scaling249825 +Node: palette261540 +Ref: images261658 +Ref: image265832 +Ref: logimage266353 +Ref: penimage267459 +Ref: penfunctionimage267722 +Node: three268494 +Ref: PostScript3D298021 +Node: obj299759 +Node: graph3300008 +Ref: GaussianSurface305291 +Node: grid3306441 +Node: solids307226 +Node: tube308218 +Node: flowchart310448 +Node: contour315091 +Node: contour3320406 +Node: smoothcontour3320718 +Node: slopefield322439 +Node: ode323929 +Node: Options324186 +Ref: configuration file331094 +Ref: settings331094 +Ref: texengines332358 +Ref: convert332358 +Node: Interactive mode335792 +Ref: history337942 +Node: GUI339245 +Node: GUI installation339796 +Node: GUI usage340529 +Node: PostScript to Asymptote341592 +Node: Help342351 +Node: Debugger344025 +Node: Credits345781 +Node: Index346889 End Tag Table diff --git a/Master/texmf-dist/doc/man/man1/asy.1 b/Master/texmf-dist/doc/man/man1/asy.1 index bd81c767421..4ad758ce371 100644 --- a/Master/texmf-dist/doc/man/man1/asy.1 +++ b/Master/texmf-dist/doc/man/man1/asy.1 @@ -88,9 +88,15 @@ Command to autoexecute. .B \-compact Conserve memory at the expense of speed [false]. .TP +.B \-compress +Compress images in PDF output [true]. +.TP .B \-d,\-debug Enable debugging messages [false]. .TP +.B \-devicepixelratio n +Ratio of physical to logical pixels [1]. +.TP .B \-digits n Default output file precision [7]. .TP @@ -115,6 +121,9 @@ Additional frame delay [0]. .B \-framerate frames/s Animation speed [30]. .TP +.B \-globalread +Allow read from other directory [true]. +.TP .B \-globalwrite Allow write to other directory [false]. .TP @@ -170,7 +179,7 @@ Mask fpu exceptions; command-line only. Maximum rendering tile size [(1024,768)]. .TP .B \-maxviewport pair -Maximum viewport size [(2048,2048)]. +Maximum viewport size [(0,0)]. .TP .B \-multiline Input code over multiple lines at the prompt [false]. @@ -184,9 +193,6 @@ Multisampling width for screen images [4]. .B \-offline Produce offline html files [false]. .TP -.B \-offscreen -Use offscreen rendering [false]. -.TP .B \-O,\-offset pair PostScript offset [(0,0)]. .TP @@ -248,7 +254,7 @@ WebGL touch screen shift mode delay [200]. Spin speed [60]. .TP .B \-svgemulation -Emulate unimplemented SVG shading [false]. +Emulate unimplemented SVG shading [true]. .TP .B \-tabcompletion Interactive prompt auto-completion [true]. diff --git a/Master/texmf-dist/doc/man/man1/asy.man1.pdf b/Master/texmf-dist/doc/man/man1/asy.man1.pdf Binary files differindex 65d9c0983bf..182ed587aae 100644 --- a/Master/texmf-dist/doc/man/man1/asy.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/asy.man1.pdf diff --git a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf Binary files differindex eb6b372b42a..5ef4c0c4596 100644 --- a/Master/texmf-dist/doc/man/man1/xasy.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/xasy.man1.pdf diff --git a/Master/texmf-dist/tex/latex/asymptote/asymptote.sty b/Master/texmf-dist/tex/latex/asymptote/asymptote.sty index 7fc5c53aab8..17a05d68a3a 100644 --- a/Master/texmf-dist/tex/latex/asymptote/asymptote.sty +++ b/Master/texmf-dist/tex/latex/asymptote/asymptote.sty @@ -9,7 +9,7 @@ %% The ASYMPTOTE package %% %% (C) 2003 Tom Prince -%% (C) 2003-2020 John Bowman +%% (C) 2003-2021 John Bowman %% (C) 2010 Will Robertson %% %% Adapted from comment.sty @@ -17,7 +17,7 @@ %% Licence: GPL2+ %% \ProvidesPackage{asymptote} - [2020/01/12 v1.35 Asymptote style file for LaTeX] + [2021/02/06 v1.36 Asymptote style file for LaTeX] \def\Asymptote{{\tt Asymptote}} \InputIfFileExists{\jobname.pre}{}{} \newbox\ASYbox @@ -101,7 +101,6 @@ \newif\ifASYPDF \ifxetex \ASYPDFtrue - \usepackage{everypage} \else \ifpdf \ASYPDFtrue diff --git a/Master/tlpkg/asymptote/asy.exe b/Master/tlpkg/asymptote/asy.exe Binary files differindex d1db7660f6c..0b03e7e4961 100755 --- a/Master/tlpkg/asymptote/asy.exe +++ b/Master/tlpkg/asymptote/asy.exe diff --git a/Master/tlpkg/asymptote64/asy.exe b/Master/tlpkg/asymptote64/asy.exe Binary files differindex 0d4dd257a5b..667e5f07c8a 100755 --- a/Master/tlpkg/asymptote64/asy.exe +++ b/Master/tlpkg/asymptote64/asy.exe |