summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-02-03 22:44:58 +0000
committerKarl Berry <karl@freefriends.org>2019-02-03 22:44:58 +0000
commit2dcfe2f07af05124d5ebee4672d67d7eeae7af60 (patch)
tree7008760d5ea7041b1f981e9c3d1d8ef6719013ce
parent9c1b590fa92293b7bc04195a05641af25185dc64 (diff)
ketcindy (3feb19)
git-svn-id: svn://tug.org/texlive/trunk@49922 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdfbin18681 -> 19296 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdfbin31065 -> 31563 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/README4
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js1462
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js.map7
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt163
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt118
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt401
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt39
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js296
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttfbin0 -> 67996 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woffbin0 -> 37620 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2bin0 -> 31220 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttfbin0 -> 41448 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woffbin0 -> 23820 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2bin0 -> 20432 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css1
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js5
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt6419
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdybin0 -> 5478 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js45
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdfbin1821670 -> 2024034 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdfbin2679815 -> 2695015 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objE.txt9
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objJ.txt10
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command (renamed from Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out)0
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdfbin15961 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex161
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s08R/s0808ttest.cdybin3877 -> 3916 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdybin5324 -> 5285 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0902cone.cdybin5251 -> 5210 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0903saddle.cdybin5202 -> 5180 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0904mant.cdybin5255 -> 5240 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0905sphere.cdybin5257 -> 5220 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0906curveonsurf.cdybin5309 -> 5278 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0907intersectcrvsf.cdybin5331 -> 5332 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0908wiredata.cdybin5359 -> 5281 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0909conecut.cdybin5350 -> 5274 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0910multisurfaces.cdybin5320 -> 5290 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0911saddleskeleton.cdybin5266 -> 5219 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0912animesaddle.cdybin6156 -> 6105 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0913animeparaboloid.cdybin6686 -> 6979 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0914animemobius.cdybin6675 -> 6939 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0915discont.cdybin5265 -> 5226 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdybin5336 -> 5276 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdybin6246 -> 4123 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdybin7573 -> 5475 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.html229
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html6639
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html6640
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdybin6577 -> 4964 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt6
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt6
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdybin12054 -> 12099 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdfbin0 -> 265937 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdfbin0 -> 112718 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex12
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex8
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdfbin28101 -> 26868 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex71
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex89
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex105
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex55
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex70
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex62
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex34
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdfbin6868 -> 22324 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex170
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex85
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex2204
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex30
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex30
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex30
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex30
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex1709
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex310
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex15
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex13
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex2
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex2
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceE.tex619
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceJ.tex831
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt4
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs26
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt31
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs886
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt58
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs1291
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt16
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs228
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r115
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r97
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt4
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h90
-rw-r--r--Master/texmf-dist/scripts/ketcindy/template2allbuttons.cdybin0 -> 5213 bytes
-rw-r--r--Master/texmf-dist/scripts/ketcindy/template2slide.cdybin5830 -> 0 bytes
-rw-r--r--Master/texmf-dist/tex/latex/ketcindy/ketpic.sty19
-rw-r--r--Master/texmf-dist/tex/latex/ketcindy/ketpic2e.sty19
98 files changed, 9428 insertions, 22702 deletions
diff --git a/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf b/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
index 312420da278..893496815f3 100644
--- a/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf b/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
index 3762776f930..91332161cfe 100644
--- a/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/README b/Master/texmf-dist/doc/support/ketcindy/README
index cb05dba8668..d56ec8ca7fd 100644
--- a/Master/texmf-dist/doc/support/ketcindy/README
+++ b/Master/texmf-dist/doc/support/ketcindy/README
@@ -1,7 +1,7 @@
KeTCindy
========
-Version: 20181225.0
+Version: 20190203.0
KeTCindy combines a plugin to Cinderella with free mathematical software
(R, Maxima, ...) to produce high-quality LaTeX graphics.
@@ -30,7 +30,7 @@ https://github.com/ketpic/ketcindy
License and Copyright
---------------------
-Copyright 2014-2018 Setsuo Takato
+Copyright 2014-2019 Setsuo Takato
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js
index 04aa2fd9134..2be04890fd5 100644
--- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js
@@ -1,159 +1,159 @@
/* CindyJS - (C) 2014-2016 The CindyJS Project
* Mostly licensed under the Apache License 2.0, but subprojects may use different licensing.
- * See https://github.com/CindyJS/CindyJS/tree/bb244cab7fdc8d4ea030751ec40c6d384c09f464
+ * See https://github.com/CindyJS/CindyJS/tree/8c01b8d1d336e92934ad80c44aafc5510a1aea36
* for corresponding sources and their respective licensing conditions.
*/
-var enableInlineVideo=function(){function p(f,k,p,F){function E(p){ea=k(E,F);f(p-(K||p));K=p}var ea,K;return{start:function(){ea||E(0)},stop:function(){p(ea);ea=null;K=0}}}function E(f,k,p,F){function E(k){!!f[p]===!!F&&k.stopImmediatePropagation();delete f[p]}return f.addEventListener(k,E,!1),E}function ja(f,k,p,F){function E(f){p[k]=f}F&&E(f[k]);Object.defineProperty(f,k,{get:function(){return p[k]},set:E})}function Ca(f,k,p){p.addEventListener(k,function(){return f.dispatchEvent(new Event(k))})}
-function pa(f,k){Promise.resolve().then(function(){f.dispatchEvent(new Event(k))})}function Da(f){var k=new Audio;return Ca(f,"play",k),Ca(f,"playing",k),Ca(f,"pause",k),k.crossOrigin=f.crossOrigin,k.src=f.src||f.currentSrc||"data:",k}function aa(k,p,F){(K||0)+200<Date.now()&&(k[Ea]=!0,K=Date.now());F||(k.currentTime=p);f[++nb%3]=100*p|0}function k(f){this.video.readyState>=this.video.HAVE_FUTURE_DATA?(this.hasAudio||(this.driver.currentTime=this.video.currentTime+f*this.video.playbackRate/1E3,this.video.loop&&
-this.driver.currentTime>=this.video.duration&&(this.driver.currentTime=0)),aa(this.video,this.driver.currentTime)):this.video.networkState===this.video.NETWORK_IDLE&&0===this.video.buffered.length&&this.video.load();this.video.ended&&(delete this.video[Ea],this.video.pause(!0))}function Oa(){var f=this[W];return this.webkitDisplayingFullscreen?void this[ob]():("data:"!==f.driver.src&&f.driver.src!==this.src&&(aa(this,0,!0),f.driver.src=this.src),void(this.paused&&(f.paused=!1,0===this.buffered.length&&
-this.load(),f.driver.play(),f.updater.start(),f.hasAudio||(pa(this,"play"),f.video.readyState>=f.video.HAVE_ENOUGH_DATA&&pa(this,"playing")))))}function F(f){var k=this[W];k.driver.pause();k.updater.stop();this.webkitDisplayingFullscreen&&this[sa]();k.paused&&!f||(k.paused=!0,k.hasAudio||pa(this,"pause"),this.ended&&(this[Ea]=!0,pa(this,"ended")))}function ea(F,E){var I=F[W]={};I.paused=!0;I.hasAudio=E;I.video=F;I.updater=p(k.bind(I),requestAnimationFrame,cancelAnimationFrame);E?I.driver=Da(F):(F.addEventListener("canplay",
-function(){F.paused||pa(F,"playing")}),I.driver={src:F.src||F.currentSrc||"data:",muted:!0,paused:!0,pause:function(){I.driver.paused=!0},play:function(){I.driver.paused=!1;I.driver.currentTime>=I.video.duration&&aa(F,0)},get ended(){return I.driver.currentTime>=I.video.duration}});F.addEventListener("emptied",function(){var f=!I.driver.src||"data:"===I.driver.src;I.driver.src&&I.driver.src!==F.src&&(aa(F,0,!0),I.driver.src=F.src,f?I.driver.play():I.updater.stop())},!1);F.addEventListener("webkitbeginfullscreen",
-function(){F.paused?E&&0===I.driver.buffered.length&&I.driver.load():(F.pause(),F[ob]())});E&&(F.addEventListener("webkitendfullscreen",function(){I.driver.currentTime=F.currentTime}),F.addEventListener("seeking",function(){0>f.indexOf(100*F.currentTime|0)&&(I.driver.currentTime=F.currentTime)}))}var K,U="object"==typeof document&&"object-fit"in document.head.style&&!matchMedia("(-webkit-video-playable-inline)").matches,W="bfred-it:iphone-inline-video",Ea="bfred-it:iphone-inline-video:event",ob="bfred-it:iphone-inline-video:nativeplay",
-sa="bfred-it:iphone-inline-video:nativepause",f=[],nb=0;return function(f,k){if(void 0===k&&(k={}),!f[W])if(k.everywhere||U&&(k.iPad||k.ipad?/iPhone|iPod|iPad/:/iPhone|iPod/).test(navigator.userAgent)){!f.paused&&f.webkitDisplayingFullscreen&&f.pause();ea(f,!f.muted);var p=f[W];f[ob]=f.play;f[sa]=f.pause;f.play=Oa;f.pause=F;ja(f,"paused",p.driver);ja(f,"muted",p.driver,!0);ja(f,"playbackRate",p.driver,!0);ja(f,"ended",p.driver);ja(f,"loop",p.driver,!0);E(f,"seeking");E(f,"seeked");E(f,"timeupdate",
-Ea,!1);E(f,"ended",Ea,!1);f.classList.add("IIV");f.muted&&f.autoplay&&f.play();/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments")}}}();
-(function(){function p(b,d,e){f.biginteger_used=1;null!=b&&("number"==typeof b&&"undefined"==typeof d?this.fromInt(b):"number"==typeof b?this.fromNumber(b,d,e):null==d&&"string"!=typeof b?this.fromString(b,256):this.fromString(b,d))}function E(){return new p(null,void 0,void 0)}function ja(b,d,e,q,f,k){for(;0<=--k;){var v=d*this[b++]+e[q]+f;f=Math.floor(v/67108864);e[q++]=v&67108863}return f}function Ca(b,d,e,q,f,k){var v=d&32767;for(d>>=15;0<=--k;){var C=this[b]&32767,p=this[b++]>>15,F=d*C+p*v,C=
-v*C+((F&32767)<<15)+e[q]+(f&1073741823);f=(C>>>30)+(F>>>15)+d*p+(f>>>30);e[q++]=C&1073741823}return f}function pa(b,d,e,q,f,k){var v=d&16383;for(d>>=14;0<=--k;){var C=this[b]&16383,p=this[b++]>>14,F=d*C+p*v,C=v*C+((F&16383)<<14)+e[q]+f;f=(C>>28)+(F>>14)+d*p;e[q++]=C&268435455}return f}function Da(b,d){var e=cb[b.charCodeAt(d)];return null==e?-1:e}function aa(b){var d=E();d.fromInt(b);return d}function k(b){var d=1,e;0!=(e=b>>>16)&&(b=e,d+=16);0!=(e=b>>8)&&(b=e,d+=8);0!=(e=b>>4)&&(b=e,d+=4);0!=(e=
-b>>2)&&(b=e,d+=2);0!=b>>1&&(d+=1);return d}function Oa(b){this.m=b}function F(b){this.m=b;this.mp=b.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<b.DB-15)-1;this.mt2=2*b.t}function ea(b,d){return b&d}function K(b,d){return b|d}function U(b,d){return b^d}function W(b,d){return b&~d}function Ea(){}function ob(b){return b}function sa(b){this.r2=E();this.q3=E();p.ONE.dlShiftTo(2*b.t,this.r2);this.mu=this.r2.divide(b);this.m=b}var f={use_lines:!0,use_xyz:!1},nb=!1;"undefined"!==typeof module&&
-module.exports?(module.exports=f,nb=!0):"undefined"!==typeof document?window.ClipperLib=f:self.ClipperLib=f;var V;if(nb)Y="chrome",V="Netscape";else{var Y=navigator.userAgent.toString().toLowerCase();V=navigator.appName}var I,Xb,Jb,Qa,ab,xb;I=-1!=Y.indexOf("chrome")&&-1==Y.indexOf("chromium")?1:0;nb=-1!=Y.indexOf("chromium")?1:0;Xb=-1!=Y.indexOf("safari")&&-1==Y.indexOf("chrome")&&-1==Y.indexOf("chromium")?1:0;Jb=-1!=Y.indexOf("firefox")?1:0;Y.indexOf("firefox/17");Y.indexOf("firefox/15");Y.indexOf("firefox/3");
-Qa=-1!=Y.indexOf("opera")?1:0;Y.indexOf("msie 10");Y.indexOf("msie 9");ab=-1!=Y.indexOf("msie 8")?1:0;xb=-1!=Y.indexOf("msie 7")?1:0;Y=-1!=Y.indexOf("msie ")?1:0;f.biginteger_used=null;"Microsoft Internet Explorer"==V?(p.prototype.am=Ca,V=30):"Netscape"!=V?(p.prototype.am=ja,V=26):(p.prototype.am=pa,V=28);p.prototype.DB=V;p.prototype.DM=(1<<V)-1;p.prototype.DV=1<<V;p.prototype.FV=Math.pow(2,52);p.prototype.F1=52-V;p.prototype.F2=2*V-52;var cb=[],qa;V=48;for(qa=0;9>=qa;++qa)cb[V++]=qa;V=97;for(qa=
-10;36>qa;++qa)cb[V++]=qa;V=65;for(qa=10;36>qa;++qa)cb[V++]=qa;Oa.prototype.convert=function(b){return 0>b.s||0<=b.compareTo(this.m)?b.mod(this.m):b};Oa.prototype.revert=function(b){return b};Oa.prototype.reduce=function(b){b.divRemTo(this.m,null,b)};Oa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};Oa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};F.prototype.convert=function(b){var d=E();b.abs().dlShiftTo(this.m.t,d);d.divRemTo(this.m,null,d);0>b.s&&0<d.compareTo(p.ZERO)&&
-this.m.subTo(d,d);return d};F.prototype.revert=function(b){var d=E();b.copyTo(d);this.reduce(d);return d};F.prototype.reduce=function(b){for(;b.t<=this.mt2;)b[b.t++]=0;for(var d=0;d<this.m.t;++d){var e=b[d]&32767,q=e*this.mpl+((e*this.mph+(b[d]>>15)*this.mpl&this.um)<<15)&b.DM,e=d+this.m.t;for(b[e]+=this.m.am(0,q,b,d,0,this.m.t);b[e]>=b.DV;)b[e]-=b.DV,b[++e]++}b.clamp();b.drShiftTo(this.m.t,b);0<=b.compareTo(this.m)&&b.subTo(this.m,b)};F.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};
-F.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};p.prototype.copyTo=function(b){for(var d=this.t-1;0<=d;--d)b[d]=this[d];b.t=this.t;b.s=this.s};p.prototype.fromInt=function(b){this.t=1;this.s=0>b?-1:0;0<b?this[0]=b:-1>b?this[0]=b+this.DV:this.t=0};p.prototype.fromString=function(b,d){var e;if(16==d)e=4;else if(8==d)e=3;else if(256==d)e=8;else if(2==d)e=1;else if(32==d)e=5;else if(4==d)e=2;else{this.fromRadix(b,d);return}this.s=this.t=0;for(var q=b.length,f=!1,k=0;0<=--q;){var v=8==e?
-b[q]&255:Da(b,q);0>v?"-"==b.charAt(q)&&(f=!0):(f=!1,0==k?this[this.t++]=v:k+e>this.DB?(this[this.t-1]|=(v&(1<<this.DB-k)-1)<<k,this[this.t++]=v>>this.DB-k):this[this.t-1]|=v<<k,k+=e,k>=this.DB&&(k-=this.DB))}8==e&&0!=(b[0]&128)&&(this.s=-1,0<k&&(this[this.t-1]|=(1<<this.DB-k)-1<<k));this.clamp();f&&p.ZERO.subTo(this,this)};p.prototype.clamp=function(){for(var b=this.s&this.DM;0<this.t&&this[this.t-1]==b;)--this.t};p.prototype.dlShiftTo=function(b,d){var e;for(e=this.t-1;0<=e;--e)d[e+b]=this[e];for(e=
-b-1;0<=e;--e)d[e]=0;d.t=this.t+b;d.s=this.s};p.prototype.drShiftTo=function(b,d){for(var e=b;e<this.t;++e)d[e-b]=this[e];d.t=Math.max(this.t-b,0);d.s=this.s};p.prototype.lShiftTo=function(b,d){var e=b%this.DB,q=this.DB-e,f=(1<<q)-1,k=Math.floor(b/this.DB),v=this.s<<e&this.DM,C;for(C=this.t-1;0<=C;--C)d[C+k+1]=this[C]>>q|v,v=(this[C]&f)<<e;for(C=k-1;0<=C;--C)d[C]=0;d[k]=v;d.t=this.t+k+1;d.s=this.s;d.clamp()};p.prototype.rShiftTo=function(b,d){d.s=this.s;var e=Math.floor(b/this.DB);if(e>=this.t)d.t=
-0;else{var q=b%this.DB,f=this.DB-q,k=(1<<q)-1;d[0]=this[e]>>q;for(var v=e+1;v<this.t;++v)d[v-e-1]|=(this[v]&k)<<f,d[v-e]=this[v]>>q;0<q&&(d[this.t-e-1]|=(this.s&k)<<f);d.t=this.t-e;d.clamp()}};p.prototype.subTo=function(b,d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]-b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f-=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f-=b[e],d[e++]=f&this.DM,f>>=this.DB;f-=b.s}d.s=0>f?-1:0;-1>f?d[e++]=this.DV+
-f:0<f&&(d[e++]=f);d.t=e;d.clamp()};p.prototype.multiplyTo=function(b,d){var e=this.abs(),f=b.abs(),n=e.t;for(d.t=n+f.t;0<=--n;)d[n]=0;for(n=0;n<f.t;++n)d[n+e.t]=e.am(0,f[n],d,n,0,e.t);d.s=0;d.clamp();this.s!=b.s&&p.ZERO.subTo(d,d)};p.prototype.squareTo=function(b){for(var d=this.abs(),e=b.t=2*d.t;0<=--e;)b[e]=0;for(e=0;e<d.t-1;++e){var f=d.am(e,d[e],b,2*e,0,1);(b[e+d.t]+=d.am(e+1,2*d[e],b,2*e+1,f,d.t-e-1))>=d.DV&&(b[e+d.t]-=d.DV,b[e+d.t+1]=1)}0<b.t&&(b[b.t-1]+=d.am(e,d[e],b,2*e,0,1));b.s=0;b.clamp()};
-p.prototype.divRemTo=function(b,d,e){var f=b.abs();if(!(0>=f.t)){var n=this.abs();if(n.t<f.t)null!=d&&d.fromInt(0),null!=e&&this.copyTo(e);else{null==e&&(e=E());var N=E(),v=this.s;b=b.s;var C=this.DB-k(f[f.t-1]);0<C?(f.lShiftTo(C,N),n.lShiftTo(C,e)):(f.copyTo(N),n.copyTo(e));f=N.t;n=N[f-1];if(0!=n){var F=n*(1<<this.F1)+(1<f?N[f-2]>>this.F2:0),bb=this.FV/F,F=(1<<this.F1)/F,pb=1<<this.F2,H=e.t,ea=H-f,K=null==d?E():d;N.dlShiftTo(ea,K);0<=e.compareTo(K)&&(e[e.t++]=1,e.subTo(K,e));p.ONE.dlShiftTo(f,K);
-for(K.subTo(N,N);N.t<f;)N[N.t++]=0;for(;0<=--ea;){var I=e[--H]==n?this.DM:Math.floor(e[H]*bb+(e[H-1]+pb)*F);if((e[H]+=N.am(0,I,e,ea,0,f))<I)for(N.dlShiftTo(ea,K),e.subTo(K,e);e[H]<--I;)e.subTo(K,e)}null!=d&&(e.drShiftTo(f,d),v!=b&&p.ZERO.subTo(d,d));e.t=f;e.clamp();0<C&&e.rShiftTo(C,e);0>v&&p.ZERO.subTo(e,e)}}}};p.prototype.invDigit=function(){if(1>this.t)return 0;var b=this[0];if(0==(b&1))return 0;var d=b&3,d=d*(2-(b&15)*d)&15,d=d*(2-(b&255)*d)&255,d=d*(2-((b&65535)*d&65535))&65535,d=d*(2-b*d%this.DV)%
-this.DV;return 0<d?this.DV-d:-d};p.prototype.isEven=function(){return 0==(0<this.t?this[0]&1:this.s)};p.prototype.exp=function(b,d){if(4294967295<b||1>b)return p.ONE;var e=E(),f=E(),n=d.convert(this),N=k(b)-1;for(n.copyTo(e);0<=--N;)if(d.sqrTo(e,f),0<(b&1<<N))d.mulTo(f,n,e);else var v=e,e=f,f=v;return d.revert(e)};p.prototype.toString=function(b){if(0>this.s)return"-"+this.negate().toString(b);if(16==b)b=4;else if(8==b)b=3;else if(2==b)b=1;else if(32==b)b=5;else if(4==b)b=2;else return this.toRadix(b);
-var d=(1<<b)-1,e,f=!1,n="",k=this.t,v=this.DB-k*this.DB%b;if(0<k--)for(v<this.DB&&0<(e=this[k]>>v)&&(f=!0,n="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));0<=k;)v<b?(e=(this[k]&(1<<v)-1)<<b-v,e|=this[--k]>>(v+=this.DB-b)):(e=this[k]>>(v-=b)&d,0>=v&&(v+=this.DB,--k)),0<e&&(f=!0),f&&(n+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));return f?n:"0"};p.prototype.negate=function(){var b=E();p.ZERO.subTo(this,b);return b};p.prototype.abs=function(){return 0>this.s?this.negate():this};p.prototype.compareTo=
-function(b){var d=this.s-b.s;if(0!=d)return d;var e=this.t,d=e-b.t;if(0!=d)return 0>this.s?-d:d;for(;0<=--e;)if(0!=(d=this[e]-b[e]))return d;return 0};p.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+k(this[this.t-1]^this.s&this.DM)};p.prototype.mod=function(b){var d=E();this.abs().divRemTo(b,null,d);0>this.s&&0<d.compareTo(p.ZERO)&&b.subTo(d,d);return d};p.prototype.modPowInt=function(b,d){var e;e=256>b||d.isEven()?new Oa(d):new F(d);return this.exp(b,e)};p.ZERO=aa(0);p.ONE=
-aa(1);Ea.prototype.convert=ob;Ea.prototype.revert=ob;Ea.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e)};Ea.prototype.sqrTo=function(b,d){b.squareTo(d)};sa.prototype.convert=function(b){if(0>b.s||b.t>2*this.m.t)return b.mod(this.m);if(0>b.compareTo(this.m))return b;var d=E();b.copyTo(d);this.reduce(d);return d};sa.prototype.revert=function(b){return b};sa.prototype.reduce=function(b){b.drShiftTo(this.m.t-1,this.r2);b.t>this.m.t+1&&(b.t=this.m.t+1,b.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+
-1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>b.compareTo(this.r2);)b.dAddOffset(1,this.m.t+1);for(b.subTo(this.r2,b);0<=b.compareTo(this.m);)b.subTo(this.m,b)};sa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};sa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};var H=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,
-241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Zb=67108864/H[H.length-1];p.prototype.chunkSize=
-function(b){return Math.floor(Math.LN2*this.DB/Math.log(b))};p.prototype.toRadix=function(b){null==b&&(b=10);if(0==this.signum()||2>b||36<b)return"0";var d=this.chunkSize(b),d=Math.pow(b,d),e=aa(d),f=E(),n=E(),k="";for(this.divRemTo(e,f,n);0<f.signum();)k=(d+n.intValue()).toString(b).substr(1)+k,f.divRemTo(e,f,n);return n.intValue().toString(b)+k};p.prototype.fromRadix=function(b,d){this.fromInt(0);null==d&&(d=10);for(var e=this.chunkSize(d),f=Math.pow(d,e),n=!1,k=0,v=0,C=0;C<b.length;++C){var F=
-Da(b,C);0>F?"-"==b.charAt(C)&&0==this.signum()&&(n=!0):(v=d*v+F,++k>=e&&(this.dMultiply(f),this.dAddOffset(v,0),v=k=0))}0<k&&(this.dMultiply(Math.pow(d,k)),this.dAddOffset(v,0));n&&p.ZERO.subTo(this,this)};p.prototype.fromNumber=function(b,d,e){if("number"==typeof d)if(2>b)this.fromInt(1);else for(this.fromNumber(b,e),this.testBit(b-1)||this.bitwiseTo(p.ONE.shiftLeft(b-1),K,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(d);)this.dAddOffset(2,0),this.bitLength()>b&&this.subTo(p.ONE.shiftLeft(b-
-1),this);else{e=[];var f=b&7;e.length=(b>>3)+1;d.nextBytes(e);e[0]=0<f?e[0]&(1<<f)-1:0;this.fromString(e,256)}};p.prototype.bitwiseTo=function(b,d,e){var f,n,k=Math.min(b.t,this.t);for(f=0;f<k;++f)e[f]=d(this[f],b[f]);if(b.t<this.t){n=b.s&this.DM;for(f=k;f<this.t;++f)e[f]=d(this[f],n);e.t=this.t}else{n=this.s&this.DM;for(f=k;f<b.t;++f)e[f]=d(n,b[f]);e.t=b.t}e.s=d(this.s,b.s);e.clamp()};p.prototype.changeBit=function(b,d){var e=p.ONE.shiftLeft(b);this.bitwiseTo(e,d,e);return e};p.prototype.addTo=function(b,
-d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]+b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f+=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f+=b[e],d[e++]=f&this.DM,f>>=this.DB;f+=b.s}d.s=0>f?-1:0;0<f?d[e++]=f:-1>f&&(d[e++]=this.DV+f);d.t=e;d.clamp()};p.prototype.dMultiply=function(b){this[this.t]=this.am(0,b-1,this,0,0,this.t);++this.t;this.clamp()};p.prototype.dAddOffset=function(b,d){if(0!=b){for(;this.t<=d;)this[this.t++]=0;for(this[d]+=
-b;this[d]>=this.DV;)this[d]-=this.DV,++d>=this.t&&(this[this.t++]=0),++this[d]}};p.prototype.multiplyLowerTo=function(b,d,e){var f=Math.min(this.t+b.t,d);e.s=0;for(e.t=f;0<f;)e[--f]=0;var n;for(n=e.t-this.t;f<n;++f)e[f+this.t]=this.am(0,b[f],e,f,0,this.t);for(n=Math.min(b.t,d);f<n;++f)this.am(0,b[f],e,f,0,d-f);e.clamp()};p.prototype.multiplyUpperTo=function(b,d,e){--d;var f=e.t=this.t+b.t-d;for(e.s=0;0<=--f;)e[f]=0;for(f=Math.max(d-this.t,0);f<b.t;++f)e[this.t+f-d]=this.am(d-f,b[f],e,0,0,this.t+f-
-d);e.clamp();e.drShiftTo(1,e)};p.prototype.modInt=function(b){if(0>=b)return 0;var d=this.DV%b,e=0>this.s?b-1:0;if(0<this.t)if(0==d)e=this[0]%b;else for(var f=this.t-1;0<=f;--f)e=(d*e+this[f])%b;return e};p.prototype.millerRabin=function(b){var d=this.subtract(p.ONE),e=d.getLowestSetBit();if(0>=e)return!1;var f=d.shiftRight(e);b=b+1>>1;b>H.length&&(b=H.length);for(var n=E(),k=0;k<b;++k){n.fromInt(H[Math.floor(Math.random()*H.length)]);var v=n.modPow(f,this);if(0!=v.compareTo(p.ONE)&&0!=v.compareTo(d)){for(var C=
-1;C++<e&&0!=v.compareTo(d);)if(v=v.modPowInt(2,this),0==v.compareTo(p.ONE))return!1;if(0!=v.compareTo(d))return!1}}return!0};p.prototype.clone=function(){var b=E();this.copyTo(b);return b};p.prototype.intValue=function(){if(0>this.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]};p.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24};p.prototype.shortValue=function(){return 0==
-this.t?this.s:this[0]<<16>>16};p.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};p.prototype.toByteArray=function(){var b=this.t,d=[];d[0]=this.s;var e=this.DB-b*this.DB%8,f,n=0;if(0<b--)for(e<this.DB&&(f=this[b]>>e)!=(this.s&this.DM)>>e&&(d[n++]=f|this.s<<this.DB-e);0<=b;)if(8>e?(f=(this[b]&(1<<e)-1)<<8-e,f|=this[--b]>>(e+=this.DB-8)):(f=this[b]>>(e-=8)&255,0>=e&&(e+=this.DB,--b)),0!=(f&128)&&(f|=-256),0==n&&(this.s&128)!=(f&128)&&++n,0<n||f!=this.s)d[n++]=f;
-return d};p.prototype.equals=function(b){return 0==this.compareTo(b)};p.prototype.min=function(b){return 0>this.compareTo(b)?this:b};p.prototype.max=function(b){return 0<this.compareTo(b)?this:b};p.prototype.and=function(b){var d=E();this.bitwiseTo(b,ea,d);return d};p.prototype.or=function(b){var d=E();this.bitwiseTo(b,K,d);return d};p.prototype.xor=function(b){var d=E();this.bitwiseTo(b,U,d);return d};p.prototype.andNot=function(b){var d=E();this.bitwiseTo(b,W,d);return d};p.prototype.not=function(){for(var b=
-E(),d=0;d<this.t;++d)b[d]=this.DM&~this[d];b.t=this.t;b.s=~this.s;return b};p.prototype.shiftLeft=function(b){var d=E();0>b?this.rShiftTo(-b,d):this.lShiftTo(b,d);return d};p.prototype.shiftRight=function(b){var d=E();0>b?this.lShiftTo(-b,d):this.rShiftTo(b,d);return d};p.prototype.getLowestSetBit=function(){for(var b=0;b<this.t;++b)if(0!=this[b]){var d=b*this.DB,b=this[b];if(0==b)b=-1;else{var e=0;0==(b&65535)&&(b>>=16,e+=16);0==(b&255)&&(b>>=8,e+=8);0==(b&15)&&(b>>=4,e+=4);0==(b&3)&&(b>>=2,e+=2);
-0==(b&1)&&++e;b=e}return d+b}return 0>this.s?this.t*this.DB:-1};p.prototype.bitCount=function(){for(var b=0,d=this.s&this.DM,e=0;e<this.t;++e){for(var f=this[e]^d,n=0;0!=f;)f&=f-1,++n;b+=n}return b};p.prototype.testBit=function(b){var d=Math.floor(b/this.DB);return d>=this.t?0!=this.s:0!=(this[d]&1<<b%this.DB)};p.prototype.setBit=function(b){return this.changeBit(b,K)};p.prototype.clearBit=function(b){return this.changeBit(b,W)};p.prototype.flipBit=function(b){return this.changeBit(b,U)};p.prototype.add=
-function(b){var d=E();this.addTo(b,d);return d};p.prototype.subtract=function(b){var d=E();this.subTo(b,d);return d};p.prototype.multiply=function(b){var d=E();this.multiplyTo(b,d);return d};p.prototype.divide=function(b){var d=E();this.divRemTo(b,d,null);return d};p.prototype.remainder=function(b){var d=E();this.divRemTo(b,null,d);return d};p.prototype.divideAndRemainder=function(b){var d=E(),e=E();this.divRemTo(b,d,e);return[d,e]};p.prototype.modPow=function(b,d){var e=b.bitLength(),f,n=aa(1),N;
-if(0>=e)return n;f=18>e?1:48>e?3:144>e?4:768>e?5:6;N=8>e?new Oa(d):d.isEven()?new sa(d):new F(d);var v=[],C=3,p=f-1,bb=(1<<f)-1;v[1]=N.convert(this);if(1<f)for(e=E(),N.sqrTo(v[1],e);C<=bb;)v[C]=E(),N.mulTo(e,v[C-2],v[C]),C+=2;for(var H=b.t-1,K,ea=!0,I=E(),e=k(b[H])-1;0<=H;){e>=p?K=b[H]>>e-p&bb:(K=(b[H]&(1<<e+1)-1)<<p-e,0<H&&(K|=b[H-1]>>this.DB+e-p));for(C=f;0==(K&1);)K>>=1,--C;0>(e-=C)&&(e+=this.DB,--H);if(ea)v[K].copyTo(n),ea=!1;else{for(;1<C;)N.sqrTo(n,I),N.sqrTo(I,n),C-=2;0<C?N.sqrTo(n,I):(C=n,
-n=I,I=C);N.mulTo(I,v[K],n)}for(;0<=H&&0==(b[H]&1<<e);)N.sqrTo(n,I),C=n,n=I,I=C,0>--e&&(e=this.DB-1,--H)}return N.revert(n)};p.prototype.modInverse=function(b){var d=b.isEven();if(this.isEven()&&d||0==b.signum())return p.ZERO;for(var e=b.clone(),f=this.clone(),n=aa(1),k=aa(0),v=aa(0),C=aa(1);0!=e.signum();){for(;e.isEven();)e.rShiftTo(1,e),d?(n.isEven()&&k.isEven()||(n.addTo(this,n),k.subTo(b,k)),n.rShiftTo(1,n)):k.isEven()||k.subTo(b,k),k.rShiftTo(1,k);for(;f.isEven();)f.rShiftTo(1,f),d?(v.isEven()&&
-C.isEven()||(v.addTo(this,v),C.subTo(b,C)),v.rShiftTo(1,v)):C.isEven()||C.subTo(b,C),C.rShiftTo(1,C);0<=e.compareTo(f)?(e.subTo(f,e),d&&n.subTo(v,n),k.subTo(C,k)):(f.subTo(e,f),d&&v.subTo(n,v),C.subTo(k,C))}if(0!=f.compareTo(p.ONE))return p.ZERO;if(0<=C.compareTo(b))return C.subtract(b);if(0>C.signum())C.addTo(b,C);else return C;return 0>C.signum()?C.add(b):C};p.prototype.pow=function(b){return this.exp(b,new Ea)};p.prototype.gcd=function(b){var d=0>this.s?this.negate():this.clone();b=0>b.s?b.negate():
-b.clone();if(0>d.compareTo(b)){var e=d,d=b;b=e}var e=d.getLowestSetBit(),f=b.getLowestSetBit();if(0>f)return d;e<f&&(f=e);for(0<f&&(d.rShiftTo(f,d),b.rShiftTo(f,b));0<d.signum();)0<(e=d.getLowestSetBit())&&d.rShiftTo(e,d),0<(e=b.getLowestSetBit())&&b.rShiftTo(e,b),0<=d.compareTo(b)?(d.subTo(b,d),d.rShiftTo(1,d)):(b.subTo(d,b),b.rShiftTo(1,b));0<f&&b.lShiftTo(f,b);return b};p.prototype.isProbablePrime=function(b){var d,e=this.abs();if(1==e.t&&e[0]<=H[H.length-1]){for(d=0;d<H.length;++d)if(e[0]==H[d])return!0;
-return!1}if(e.isEven())return!1;for(d=1;d<H.length;){for(var f=H[d],n=d+1;n<H.length&&f<Zb;)f*=H[n++];for(f=e.modInt(f);d<n;)if(0==f%H[d++])return!1}return e.millerRabin(b)};p.prototype.square=function(){var b=E();this.squareTo(b);return b};p.prototype.IsNegative=function(){return-1==this.compareTo(p.ZERO)?!0:!1};p.op_Equality=function(b,d){return 0==b.compareTo(d)?!0:!1};p.op_Inequality=function(b,d){return 0!=b.compareTo(d)?!0:!1};p.op_GreaterThan=function(b,d){return 0<b.compareTo(d)?!0:!1};p.op_LessThan=
-function(b,d){return 0>b.compareTo(d)?!0:!1};p.op_Addition=function(b,d){return(new p(b)).add(new p(d))};p.op_Subtraction=function(b,d){return(new p(b)).subtract(new p(d))};p.Int128Mul=function(b,d){return(new p(b)).multiply(new p(d))};p.op_Division=function(b,d){return b.divide(d)};p.prototype.ToDouble=function(){return parseFloat(this.toString())};V=function(b,d){var e;if("undefined"==typeof Object.getOwnPropertyNames)for(e in d.prototype){if("undefined"==typeof b.prototype[e]||b.prototype[e]==
-Object.prototype[e])b.prototype[e]=d.prototype[e]}else for(var f=Object.getOwnPropertyNames(d.prototype),n=0;n<f.length;n++)"undefined"==typeof Object.getOwnPropertyDescriptor(b.prototype,f[n])&&Object.defineProperty(b.prototype,f[n],Object.getOwnPropertyDescriptor(d.prototype,f[n]));for(e in d)"undefined"==typeof b[e]&&(b[e]=d[e]);b.$baseCtor=d};f.Path=function(){return[]};f.Paths=function(){return[]};f.DoublePoint=function(){var b=arguments;this.Y=this.X=0;1==b.length?(this.X=b[0].X,this.Y=b[0].Y):
-2==b.length&&(this.X=b[0],this.Y=b[1])};f.DoublePoint0=function(){this.Y=this.X=0};f.DoublePoint1=function(b){this.X=b.X;this.Y=b.Y};f.DoublePoint2=function(b,d){this.X=b;this.Y=d};f.PolyNode=function(){this.m_Parent=null;this.m_polygon=new f.Path;this.m_endtype=this.m_jointype=this.m_Index=0;this.m_Childs=[];this.IsOpen=!1};f.PolyNode.prototype.IsHoleNode=function(){for(var b=!0,d=this.m_Parent;null!==d;)b=!b,d=d.m_Parent;return b};f.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length};
-f.PolyNode.prototype.Contour=function(){return this.m_polygon};f.PolyNode.prototype.AddChild=function(b){var d=this.m_Childs.length;this.m_Childs.push(b);b.m_Parent=this;b.m_Index=d};f.PolyNode.prototype.GetNext=function(){return 0<this.m_Childs.length?this.m_Childs[0]:this.GetNextSiblingUp()};f.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index==this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]};f.PolyNode.prototype.Childs=
-function(){return this.m_Childs};f.PolyNode.prototype.Parent=function(){return this.m_Parent};f.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()};f.PolyTree=function(){this.m_AllPolys=[];f.PolyNode.call(this)};f.PolyTree.prototype.Clear=function(){for(var b=0,d=this.m_AllPolys.length;b<d;b++)this.m_AllPolys[b]=null;this.m_AllPolys.length=0;this.m_Childs.length=0};f.PolyTree.prototype.GetFirst=function(){return 0<this.m_Childs.length?this.m_Childs[0]:null};f.PolyTree.prototype.Total=function(){var b=
-this.m_AllPolys.length;0<b&&this.m_Childs[0]!=this.m_AllPolys[0]&&b--;return b};V(f.PolyTree,f.PolyNode);f.Math_Abs_Int64=f.Math_Abs_Int32=f.Math_Abs_Double=function(b){return Math.abs(b)};f.Math_Max_Int32_Int32=function(b,d){return Math.max(b,d)};f.Cast_Int32=Y||Qa||Xb?function(b){return b|0}:function(b){return~~b};f.Cast_Int64=I?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):~~b}:Jb&&"function"==typeof Number.toInteger?function(b){return Number.toInteger(b)}:xb||ab?
-function(b){return parseInt(b,10)}:Y?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):b|0}:function(b){return 0>b?Math.ceil(b):Math.floor(b)};f.Clear=function(b){b.length=0};f.PI=3.141592653589793;f.PI2=6.283185307179586;f.IntPoint=function(){var b=arguments,d=b.length;this.Y=this.X=0;f.use_xyz?(this.Z=0,3==d?(this.X=b[0],this.Y=b[1],this.Z=b[2]):2==d?(this.X=b[0],this.Y=b[1],this.Z=0):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y),
-this.Z=0):(b=b[0],"undefined"==typeof b.Z&&(b.Z=0),this.X=b.X,this.Y=b.Y,this.Z=b.Z):this.Z=this.Y=this.X=0):2==d?(this.X=b[0],this.Y=b[1]):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y)):(b=b[0],this.X=b.X,this.Y=b.Y):this.Y=this.X=0};f.IntPoint.op_Equality=function(b,d){return b.X==d.X&&b.Y==d.Y};f.IntPoint.op_Inequality=function(b,d){return b.X!=d.X||b.Y!=d.Y};f.use_xyz?(f.IntPoint0=function(){this.Z=this.Y=this.X=0},f.IntPoint1=function(b){this.X=
-b.X;this.Y=b.Y;this.Z=b.Z},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y);this.Z=0},f.IntPoint2=function(b,d){this.X=b;this.Y=d;this.Z=0},f.IntPoint3=function(b,d,e){this.X=b;this.Y=d;this.Z=e}):(f.IntPoint0=function(){this.Y=this.X=0},f.IntPoint1=function(b){this.X=b.X;this.Y=b.Y},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y)},f.IntPoint2=function(b,d){this.X=b;this.Y=d});f.IntRect=function(){var b=arguments,d=b.length;4==d?(this.left=
-b[0],this.top=b[1],this.right=b[2],this.bottom=b[3]):1==d?(this.left=b[0].left,this.top=b[0].top,this.right=b[0].right,this.bottom=b[0].bottom):this.bottom=this.right=this.top=this.left=0};f.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};f.IntRect1=function(b){this.left=b.left;this.top=b.top;this.right=b.right;this.bottom=b.bottom};f.IntRect4=function(b,d,e,f){this.left=b;this.top=d;this.right=e;this.bottom=f};f.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3};f.PolyType=
-{ptSubject:0,ptClip:1};f.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};f.JoinType={jtSquare:0,jtRound:1,jtMiter:2};f.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};f.EdgeSide={esLeft:0,esRight:1};f.Direction={dRightToLeft:0,dLeftToRight:1};f.TEdge=function(){this.Bot=new f.IntPoint;this.Curr=new f.IntPoint;this.Top=new f.IntPoint;this.Delta=new f.IntPoint;this.Dx=0;this.PolyTyp=f.PolyType.ptSubject;this.Side=f.EdgeSide.esLeft;this.OutIdx=
-this.WindCnt2=this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};f.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new f.IntPoint};f.MyIntersectNodeSort=function(){};f.MyIntersectNodeSort.Compare=function(b,d){var e=d.Pt.Y-b.Pt.Y;return 0<e?1:0>e?-1:0};f.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};f.Scanbeam=function(){this.Y=0;this.Next=null};f.OutRec=function(){this.Idx=
+var enableInlineVideo=function(){function p(f,k,p,E){function F(p){ia=k(F,E);f(p-(N||p));N=p}var ia,N;return{start:function(){ia||F(0)},stop:function(){p(ia);ia=null;N=0}}}function F(f,k,p,E){function F(k){!!f[p]===!!E&&k.stopImmediatePropagation();delete f[p]}return f.addEventListener(k,F,!1),F}function ha(f,k,p,E){function F(f){p[k]=f}E&&F(f[k]);Object.defineProperty(f,k,{get:function(){return p[k]},set:F})}function Ga(f,k,p){p.addEventListener(k,function(){return f.dispatchEvent(new Event(k))})}
+function pa(f,k){Promise.resolve().then(function(){f.dispatchEvent(new Event(k))})}function Ha(f){var k=new Audio;return Ga(f,"play",k),Ga(f,"playing",k),Ga(f,"pause",k),k.crossOrigin=f.crossOrigin,k.src=f.src||f.currentSrc||"data:",k}function ea(k,p,E){(N||0)+200<Date.now()&&(k[fa]=!0,N=Date.now());E||(k.currentTime=p);f[++tb%3]=100*p|0}function k(f){this.video.readyState>=this.video.HAVE_FUTURE_DATA?(this.hasAudio||(this.driver.currentTime=this.video.currentTime+f*this.video.playbackRate/1E3,this.video.loop&&
+this.driver.currentTime>=this.video.duration&&(this.driver.currentTime=0)),ea(this.video,this.driver.currentTime)):this.video.networkState===this.video.NETWORK_IDLE&&0===this.video.buffered.length&&this.video.load();this.video.ended&&(delete this.video[fa],this.video.pause(!0))}function Qa(){var f=this[S];return this.webkitDisplayingFullscreen?void this[ub]():("data:"!==f.driver.src&&f.driver.src!==this.src&&(ea(this,0,!0),f.driver.src=this.src),void(this.paused&&(f.paused=!1,0===this.buffered.length&&
+this.load(),f.driver.play(),f.updater.start(),f.hasAudio||(pa(this,"play"),f.video.readyState>=f.video.HAVE_ENOUGH_DATA&&pa(this,"playing")))))}function E(f){var k=this[S];k.driver.pause();k.updater.stop();this.webkitDisplayingFullscreen&&this[$a]();k.paused&&!f||(k.paused=!0,k.hasAudio||pa(this,"pause"),this.ended&&(this[fa]=!0,pa(this,"ended")))}function ia(E,F){var M=E[S]={};M.paused=!0;M.hasAudio=F;M.video=E;M.updater=p(k.bind(M),requestAnimationFrame,cancelAnimationFrame);F?M.driver=Ha(E):(E.addEventListener("canplay",
+function(){E.paused||pa(E,"playing")}),M.driver={src:E.src||E.currentSrc||"data:",muted:!0,paused:!0,pause:function(){M.driver.paused=!0},play:function(){M.driver.paused=!1;M.driver.currentTime>=M.video.duration&&ea(E,0)},get ended(){return M.driver.currentTime>=M.video.duration}});E.addEventListener("emptied",function(){var f=!M.driver.src||"data:"===M.driver.src;M.driver.src&&M.driver.src!==E.src&&(ea(E,0,!0),M.driver.src=E.src,f?M.driver.play():M.updater.stop())},!1);E.addEventListener("webkitbeginfullscreen",
+function(){E.paused?F&&0===M.driver.buffered.length&&M.driver.load():(E.pause(),E[ub]())});F&&(E.addEventListener("webkitendfullscreen",function(){M.driver.currentTime=E.currentTime}),E.addEventListener("seeking",function(){0>f.indexOf(100*E.currentTime|0)&&(M.driver.currentTime=E.currentTime)}))}var N,V="object"==typeof document&&"object-fit"in document.head.style&&!matchMedia("(-webkit-video-playable-inline)").matches,S="bfred-it:iphone-inline-video",fa="bfred-it:iphone-inline-video:event",ub="bfred-it:iphone-inline-video:nativeplay",
+$a="bfred-it:iphone-inline-video:nativepause",f=[],tb=0;return function(f,k){if(void 0===k&&(k={}),!f[S])if(k.everywhere||V&&(k.iPad||k.ipad?/iPhone|iPod|iPad/:/iPhone|iPod/).test(navigator.userAgent)){!f.paused&&f.webkitDisplayingFullscreen&&f.pause();ia(f,!f.muted);var p=f[S];f[ub]=f.play;f[$a]=f.pause;f.play=Qa;f.pause=E;ha(f,"paused",p.driver);ha(f,"muted",p.driver,!0);ha(f,"playbackRate",p.driver,!0);ha(f,"ended",p.driver);ha(f,"loop",p.driver,!0);F(f,"seeking");F(f,"seeked");F(f,"timeupdate",
+fa,!1);F(f,"ended",fa,!1);f.classList.add("IIV");f.muted&&f.autoplay&&f.play();/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments")}}}();
+(function(){function p(b,d,e){f.biginteger_used=1;null!=b&&("number"==typeof b&&"undefined"==typeof d?this.fromInt(b):"number"==typeof b?this.fromNumber(b,d,e):null==d&&"string"!=typeof b?this.fromString(b,256):this.fromString(b,d))}function F(){return new p(null,void 0,void 0)}function ha(b,d,e,r,f,k){for(;0<=--k;){var u=d*this[b++]+e[r]+f;f=Math.floor(u/67108864);e[r++]=u&67108863}return f}function Ga(b,d,e,r,f,k){var u=d&32767;for(d>>=15;0<=--k;){var C=this[b]&32767,p=this[b++]>>15,E=d*C+p*u,C=
+u*C+((E&32767)<<15)+e[r]+(f&1073741823);f=(C>>>30)+(E>>>15)+d*p+(f>>>30);e[r++]=C&1073741823}return f}function pa(b,d,e,r,f,k){var u=d&16383;for(d>>=14;0<=--k;){var C=this[b]&16383,p=this[b++]>>14,E=d*C+p*u,C=u*C+((E&16383)<<14)+e[r]+f;f=(C>>28)+(E>>14)+d*p;e[r++]=C&268435455}return f}function Ha(b,d){var e=gb[b.charCodeAt(d)];return null==e?-1:e}function ea(b){var d=F();d.fromInt(b);return d}function k(b){var d=1,e;0!=(e=b>>>16)&&(b=e,d+=16);0!=(e=b>>8)&&(b=e,d+=8);0!=(e=b>>4)&&(b=e,d+=4);0!=(e=
+b>>2)&&(b=e,d+=2);0!=b>>1&&(d+=1);return d}function Qa(b){this.m=b}function E(b){this.m=b;this.mp=b.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<b.DB-15)-1;this.mt2=2*b.t}function ia(b,d){return b&d}function N(b,d){return b|d}function V(b,d){return b^d}function S(b,d){return b&~d}function fa(){}function ub(b){return b}function $a(b){this.r2=F();this.q3=F();p.ONE.dlShiftTo(2*b.t,this.r2);this.mu=this.r2.divide(b);this.m=b}var f={use_lines:!0,use_xyz:!1},tb=!1;"undefined"!==typeof module&&
+module.exports?(module.exports=f,tb=!0):"undefined"!==typeof document?window.ClipperLib=f:self.ClipperLib=f;var Y;if(tb)ba="chrome",Y="Netscape";else{var ba=navigator.userAgent.toString().toLowerCase();Y=navigator.appName}var M,gc,Sb,Ta,fb,Cb;M=-1!=ba.indexOf("chrome")&&-1==ba.indexOf("chromium")?1:0;tb=-1!=ba.indexOf("chromium")?1:0;gc=-1!=ba.indexOf("safari")&&-1==ba.indexOf("chrome")&&-1==ba.indexOf("chromium")?1:0;Sb=-1!=ba.indexOf("firefox")?1:0;ba.indexOf("firefox/17");ba.indexOf("firefox/15");
+ba.indexOf("firefox/3");Ta=-1!=ba.indexOf("opera")?1:0;ba.indexOf("msie 10");ba.indexOf("msie 9");fb=-1!=ba.indexOf("msie 8")?1:0;Cb=-1!=ba.indexOf("msie 7")?1:0;ba=-1!=ba.indexOf("msie ")?1:0;f.biginteger_used=null;"Microsoft Internet Explorer"==Y?(p.prototype.am=Ga,Y=30):"Netscape"!=Y?(p.prototype.am=ha,Y=26):(p.prototype.am=pa,Y=28);p.prototype.DB=Y;p.prototype.DM=(1<<Y)-1;p.prototype.DV=1<<Y;p.prototype.FV=Math.pow(2,52);p.prototype.F1=52-Y;p.prototype.F2=2*Y-52;var gb=[],ua;Y=48;for(ua=0;9>=
+ua;++ua)gb[Y++]=ua;Y=97;for(ua=10;36>ua;++ua)gb[Y++]=ua;Y=65;for(ua=10;36>ua;++ua)gb[Y++]=ua;Qa.prototype.convert=function(b){return 0>b.s||0<=b.compareTo(this.m)?b.mod(this.m):b};Qa.prototype.revert=function(b){return b};Qa.prototype.reduce=function(b){b.divRemTo(this.m,null,b)};Qa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};Qa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};E.prototype.convert=function(b){var d=F();b.abs().dlShiftTo(this.m.t,d);d.divRemTo(this.m,
+null,d);0>b.s&&0<d.compareTo(p.ZERO)&&this.m.subTo(d,d);return d};E.prototype.revert=function(b){var d=F();b.copyTo(d);this.reduce(d);return d};E.prototype.reduce=function(b){for(;b.t<=this.mt2;)b[b.t++]=0;for(var d=0;d<this.m.t;++d){var e=b[d]&32767,r=e*this.mpl+((e*this.mph+(b[d]>>15)*this.mpl&this.um)<<15)&b.DM,e=d+this.m.t;for(b[e]+=this.m.am(0,r,b,d,0,this.m.t);b[e]>=b.DV;)b[e]-=b.DV,b[++e]++}b.clamp();b.drShiftTo(this.m.t,b);0<=b.compareTo(this.m)&&b.subTo(this.m,b)};E.prototype.mulTo=function(b,
+d,e){b.multiplyTo(d,e);this.reduce(e)};E.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};p.prototype.copyTo=function(b){for(var d=this.t-1;0<=d;--d)b[d]=this[d];b.t=this.t;b.s=this.s};p.prototype.fromInt=function(b){this.t=1;this.s=0>b?-1:0;0<b?this[0]=b:-1>b?this[0]=b+this.DV:this.t=0};p.prototype.fromString=function(b,d){var e;if(16==d)e=4;else if(8==d)e=3;else if(256==d)e=8;else if(2==d)e=1;else if(32==d)e=5;else if(4==d)e=2;else{this.fromRadix(b,d);return}this.s=this.t=0;for(var r=
+b.length,f=!1,k=0;0<=--r;){var u=8==e?b[r]&255:Ha(b,r);0>u?"-"==b.charAt(r)&&(f=!0):(f=!1,0==k?this[this.t++]=u:k+e>this.DB?(this[this.t-1]|=(u&(1<<this.DB-k)-1)<<k,this[this.t++]=u>>this.DB-k):this[this.t-1]|=u<<k,k+=e,k>=this.DB&&(k-=this.DB))}8==e&&0!=(b[0]&128)&&(this.s=-1,0<k&&(this[this.t-1]|=(1<<this.DB-k)-1<<k));this.clamp();f&&p.ZERO.subTo(this,this)};p.prototype.clamp=function(){for(var b=this.s&this.DM;0<this.t&&this[this.t-1]==b;)--this.t};p.prototype.dlShiftTo=function(b,d){var e;for(e=
+this.t-1;0<=e;--e)d[e+b]=this[e];for(e=b-1;0<=e;--e)d[e]=0;d.t=this.t+b;d.s=this.s};p.prototype.drShiftTo=function(b,d){for(var e=b;e<this.t;++e)d[e-b]=this[e];d.t=Math.max(this.t-b,0);d.s=this.s};p.prototype.lShiftTo=function(b,d){var e=b%this.DB,r=this.DB-e,f=(1<<r)-1,k=Math.floor(b/this.DB),u=this.s<<e&this.DM,C;for(C=this.t-1;0<=C;--C)d[C+k+1]=this[C]>>r|u,u=(this[C]&f)<<e;for(C=k-1;0<=C;--C)d[C]=0;d[k]=u;d.t=this.t+k+1;d.s=this.s;d.clamp()};p.prototype.rShiftTo=function(b,d){d.s=this.s;var e=
+Math.floor(b/this.DB);if(e>=this.t)d.t=0;else{var r=b%this.DB,f=this.DB-r,k=(1<<r)-1;d[0]=this[e]>>r;for(var u=e+1;u<this.t;++u)d[u-e-1]|=(this[u]&k)<<f,d[u-e]=this[u]>>r;0<r&&(d[this.t-e-1]|=(this.s&k)<<f);d.t=this.t-e;d.clamp()}};p.prototype.subTo=function(b,d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]-b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f-=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f-=b[e],d[e++]=f&this.DM,f>>=this.DB;
+f-=b.s}d.s=0>f?-1:0;-1>f?d[e++]=this.DV+f:0<f&&(d[e++]=f);d.t=e;d.clamp()};p.prototype.multiplyTo=function(b,d){var e=this.abs(),f=b.abs(),n=e.t;for(d.t=n+f.t;0<=--n;)d[n]=0;for(n=0;n<f.t;++n)d[n+e.t]=e.am(0,f[n],d,n,0,e.t);d.s=0;d.clamp();this.s!=b.s&&p.ZERO.subTo(d,d)};p.prototype.squareTo=function(b){for(var d=this.abs(),e=b.t=2*d.t;0<=--e;)b[e]=0;for(e=0;e<d.t-1;++e){var f=d.am(e,d[e],b,2*e,0,1);(b[e+d.t]+=d.am(e+1,2*d[e],b,2*e+1,f,d.t-e-1))>=d.DV&&(b[e+d.t]-=d.DV,b[e+d.t+1]=1)}0<b.t&&(b[b.t-
+1]+=d.am(e,d[e],b,2*e,0,1));b.s=0;b.clamp()};p.prototype.divRemTo=function(b,d,e){var f=b.abs();if(!(0>=f.t)){var n=this.abs();if(n.t<f.t)null!=d&&d.fromInt(0),null!=e&&this.copyTo(e);else{null==e&&(e=F());var I=F(),u=this.s;b=b.s;var C=this.DB-k(f[f.t-1]);0<C?(f.lShiftTo(C,I),n.lShiftTo(C,e)):(f.copyTo(I),n.copyTo(e));f=I.t;n=I[f-1];if(0!=n){var E=n*(1<<this.F1)+(1<f?I[f-2]>>this.F2:0),ab=this.FV/E,E=(1<<this.F1)/E,vb=1<<this.F2,H=e.t,ia=H-f,N=null==d?F():d;I.dlShiftTo(ia,N);0<=e.compareTo(N)&&(e[e.t++]=
+1,e.subTo(N,e));p.ONE.dlShiftTo(f,N);for(N.subTo(I,I);I.t<f;)I[I.t++]=0;for(;0<=--ia;){var M=e[--H]==n?this.DM:Math.floor(e[H]*ab+(e[H-1]+vb)*E);if((e[H]+=I.am(0,M,e,ia,0,f))<M)for(I.dlShiftTo(ia,N),e.subTo(N,e);e[H]<--M;)e.subTo(N,e)}null!=d&&(e.drShiftTo(f,d),u!=b&&p.ZERO.subTo(d,d));e.t=f;e.clamp();0<C&&e.rShiftTo(C,e);0>u&&p.ZERO.subTo(e,e)}}}};p.prototype.invDigit=function(){if(1>this.t)return 0;var b=this[0];if(0==(b&1))return 0;var d=b&3,d=d*(2-(b&15)*d)&15,d=d*(2-(b&255)*d)&255,d=d*(2-((b&
+65535)*d&65535))&65535,d=d*(2-b*d%this.DV)%this.DV;return 0<d?this.DV-d:-d};p.prototype.isEven=function(){return 0==(0<this.t?this[0]&1:this.s)};p.prototype.exp=function(b,d){if(4294967295<b||1>b)return p.ONE;var e=F(),f=F(),n=d.convert(this),I=k(b)-1;for(n.copyTo(e);0<=--I;)if(d.sqrTo(e,f),0<(b&1<<I))d.mulTo(f,n,e);else var u=e,e=f,f=u;return d.revert(e)};p.prototype.toString=function(b){if(0>this.s)return"-"+this.negate().toString(b);if(16==b)b=4;else if(8==b)b=3;else if(2==b)b=1;else if(32==b)b=
+5;else if(4==b)b=2;else return this.toRadix(b);var d=(1<<b)-1,e,f=!1,n="",k=this.t,u=this.DB-k*this.DB%b;if(0<k--)for(u<this.DB&&0<(e=this[k]>>u)&&(f=!0,n="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));0<=k;)u<b?(e=(this[k]&(1<<u)-1)<<b-u,e|=this[--k]>>(u+=this.DB-b)):(e=this[k]>>(u-=b)&d,0>=u&&(u+=this.DB,--k)),0<e&&(f=!0),f&&(n+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));return f?n:"0"};p.prototype.negate=function(){var b=F();p.ZERO.subTo(this,b);return b};p.prototype.abs=function(){return 0>
+this.s?this.negate():this};p.prototype.compareTo=function(b){var d=this.s-b.s;if(0!=d)return d;var e=this.t,d=e-b.t;if(0!=d)return 0>this.s?-d:d;for(;0<=--e;)if(0!=(d=this[e]-b[e]))return d;return 0};p.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+k(this[this.t-1]^this.s&this.DM)};p.prototype.mod=function(b){var d=F();this.abs().divRemTo(b,null,d);0>this.s&&0<d.compareTo(p.ZERO)&&b.subTo(d,d);return d};p.prototype.modPowInt=function(b,d){var e;e=256>b||d.isEven()?new Qa(d):
+new E(d);return this.exp(b,e)};p.ZERO=ea(0);p.ONE=ea(1);fa.prototype.convert=ub;fa.prototype.revert=ub;fa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e)};fa.prototype.sqrTo=function(b,d){b.squareTo(d)};$a.prototype.convert=function(b){if(0>b.s||b.t>2*this.m.t)return b.mod(this.m);if(0>b.compareTo(this.m))return b;var d=F();b.copyTo(d);this.reduce(d);return d};$a.prototype.revert=function(b){return b};$a.prototype.reduce=function(b){b.drShiftTo(this.m.t-1,this.r2);b.t>this.m.t+1&&(b.t=this.m.t+
+1,b.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>b.compareTo(this.r2);)b.dAddOffset(1,this.m.t+1);for(b.subTo(this.r2,b);0<=b.compareTo(this.m);)b.subTo(this.m,b)};$a.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};$a.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};var H=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,
+173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,
+983,991,997],ic=67108864/H[H.length-1];p.prototype.chunkSize=function(b){return Math.floor(Math.LN2*this.DB/Math.log(b))};p.prototype.toRadix=function(b){null==b&&(b=10);if(0==this.signum()||2>b||36<b)return"0";var d=this.chunkSize(b),d=Math.pow(b,d),e=ea(d),f=F(),n=F(),k="";for(this.divRemTo(e,f,n);0<f.signum();)k=(d+n.intValue()).toString(b).substr(1)+k,f.divRemTo(e,f,n);return n.intValue().toString(b)+k};p.prototype.fromRadix=function(b,d){this.fromInt(0);null==d&&(d=10);for(var e=this.chunkSize(d),
+f=Math.pow(d,e),n=!1,k=0,u=0,C=0;C<b.length;++C){var E=Ha(b,C);0>E?"-"==b.charAt(C)&&0==this.signum()&&(n=!0):(u=d*u+E,++k>=e&&(this.dMultiply(f),this.dAddOffset(u,0),u=k=0))}0<k&&(this.dMultiply(Math.pow(d,k)),this.dAddOffset(u,0));n&&p.ZERO.subTo(this,this)};p.prototype.fromNumber=function(b,d,e){if("number"==typeof d)if(2>b)this.fromInt(1);else for(this.fromNumber(b,e),this.testBit(b-1)||this.bitwiseTo(p.ONE.shiftLeft(b-1),N,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(d);)this.dAddOffset(2,
+0),this.bitLength()>b&&this.subTo(p.ONE.shiftLeft(b-1),this);else{e=[];var f=b&7;e.length=(b>>3)+1;d.nextBytes(e);e[0]=0<f?e[0]&(1<<f)-1:0;this.fromString(e,256)}};p.prototype.bitwiseTo=function(b,d,e){var f,n,k=Math.min(b.t,this.t);for(f=0;f<k;++f)e[f]=d(this[f],b[f]);if(b.t<this.t){n=b.s&this.DM;for(f=k;f<this.t;++f)e[f]=d(this[f],n);e.t=this.t}else{n=this.s&this.DM;for(f=k;f<b.t;++f)e[f]=d(n,b[f]);e.t=b.t}e.s=d(this.s,b.s);e.clamp()};p.prototype.changeBit=function(b,d){var e=p.ONE.shiftLeft(b);
+this.bitwiseTo(e,d,e);return e};p.prototype.addTo=function(b,d){for(var e=0,f=0,n=Math.min(b.t,this.t);e<n;)f+=this[e]+b[e],d[e++]=f&this.DM,f>>=this.DB;if(b.t<this.t){for(f+=b.s;e<this.t;)f+=this[e],d[e++]=f&this.DM,f>>=this.DB;f+=this.s}else{for(f+=this.s;e<b.t;)f+=b[e],d[e++]=f&this.DM,f>>=this.DB;f+=b.s}d.s=0>f?-1:0;0<f?d[e++]=f:-1>f&&(d[e++]=this.DV+f);d.t=e;d.clamp()};p.prototype.dMultiply=function(b){this[this.t]=this.am(0,b-1,this,0,0,this.t);++this.t;this.clamp()};p.prototype.dAddOffset=
+function(b,d){if(0!=b){for(;this.t<=d;)this[this.t++]=0;for(this[d]+=b;this[d]>=this.DV;)this[d]-=this.DV,++d>=this.t&&(this[this.t++]=0),++this[d]}};p.prototype.multiplyLowerTo=function(b,d,e){var f=Math.min(this.t+b.t,d);e.s=0;for(e.t=f;0<f;)e[--f]=0;var n;for(n=e.t-this.t;f<n;++f)e[f+this.t]=this.am(0,b[f],e,f,0,this.t);for(n=Math.min(b.t,d);f<n;++f)this.am(0,b[f],e,f,0,d-f);e.clamp()};p.prototype.multiplyUpperTo=function(b,d,e){--d;var f=e.t=this.t+b.t-d;for(e.s=0;0<=--f;)e[f]=0;for(f=Math.max(d-
+this.t,0);f<b.t;++f)e[this.t+f-d]=this.am(d-f,b[f],e,0,0,this.t+f-d);e.clamp();e.drShiftTo(1,e)};p.prototype.modInt=function(b){if(0>=b)return 0;var d=this.DV%b,e=0>this.s?b-1:0;if(0<this.t)if(0==d)e=this[0]%b;else for(var f=this.t-1;0<=f;--f)e=(d*e+this[f])%b;return e};p.prototype.millerRabin=function(b){var d=this.subtract(p.ONE),e=d.getLowestSetBit();if(0>=e)return!1;var f=d.shiftRight(e);b=b+1>>1;b>H.length&&(b=H.length);for(var n=F(),k=0;k<b;++k){n.fromInt(H[Math.floor(Math.random()*H.length)]);
+var u=n.modPow(f,this);if(0!=u.compareTo(p.ONE)&&0!=u.compareTo(d)){for(var C=1;C++<e&&0!=u.compareTo(d);)if(u=u.modPowInt(2,this),0==u.compareTo(p.ONE))return!1;if(0!=u.compareTo(d))return!1}}return!0};p.prototype.clone=function(){var b=F();this.copyTo(b);return b};p.prototype.intValue=function(){if(0>this.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]};p.prototype.byteValue=function(){return 0==
+this.t?this.s:this[0]<<24>>24};p.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16};p.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};p.prototype.toByteArray=function(){var b=this.t,d=[];d[0]=this.s;var e=this.DB-b*this.DB%8,f,n=0;if(0<b--)for(e<this.DB&&(f=this[b]>>e)!=(this.s&this.DM)>>e&&(d[n++]=f|this.s<<this.DB-e);0<=b;)if(8>e?(f=(this[b]&(1<<e)-1)<<8-e,f|=this[--b]>>(e+=this.DB-8)):(f=this[b]>>(e-=8)&255,0>=e&&(e+=this.DB,--b)),0!=(f&
+128)&&(f|=-256),0==n&&(this.s&128)!=(f&128)&&++n,0<n||f!=this.s)d[n++]=f;return d};p.prototype.equals=function(b){return 0==this.compareTo(b)};p.prototype.min=function(b){return 0>this.compareTo(b)?this:b};p.prototype.max=function(b){return 0<this.compareTo(b)?this:b};p.prototype.and=function(b){var d=F();this.bitwiseTo(b,ia,d);return d};p.prototype.or=function(b){var d=F();this.bitwiseTo(b,N,d);return d};p.prototype.xor=function(b){var d=F();this.bitwiseTo(b,V,d);return d};p.prototype.andNot=function(b){var d=
+F();this.bitwiseTo(b,S,d);return d};p.prototype.not=function(){for(var b=F(),d=0;d<this.t;++d)b[d]=this.DM&~this[d];b.t=this.t;b.s=~this.s;return b};p.prototype.shiftLeft=function(b){var d=F();0>b?this.rShiftTo(-b,d):this.lShiftTo(b,d);return d};p.prototype.shiftRight=function(b){var d=F();0>b?this.lShiftTo(-b,d):this.rShiftTo(b,d);return d};p.prototype.getLowestSetBit=function(){for(var b=0;b<this.t;++b)if(0!=this[b]){var d=b*this.DB,b=this[b];if(0==b)b=-1;else{var e=0;0==(b&65535)&&(b>>=16,e+=16);
+0==(b&255)&&(b>>=8,e+=8);0==(b&15)&&(b>>=4,e+=4);0==(b&3)&&(b>>=2,e+=2);0==(b&1)&&++e;b=e}return d+b}return 0>this.s?this.t*this.DB:-1};p.prototype.bitCount=function(){for(var b=0,d=this.s&this.DM,e=0;e<this.t;++e){for(var f=this[e]^d,n=0;0!=f;)f&=f-1,++n;b+=n}return b};p.prototype.testBit=function(b){var d=Math.floor(b/this.DB);return d>=this.t?0!=this.s:0!=(this[d]&1<<b%this.DB)};p.prototype.setBit=function(b){return this.changeBit(b,N)};p.prototype.clearBit=function(b){return this.changeBit(b,
+S)};p.prototype.flipBit=function(b){return this.changeBit(b,V)};p.prototype.add=function(b){var d=F();this.addTo(b,d);return d};p.prototype.subtract=function(b){var d=F();this.subTo(b,d);return d};p.prototype.multiply=function(b){var d=F();this.multiplyTo(b,d);return d};p.prototype.divide=function(b){var d=F();this.divRemTo(b,d,null);return d};p.prototype.remainder=function(b){var d=F();this.divRemTo(b,null,d);return d};p.prototype.divideAndRemainder=function(b){var d=F(),e=F();this.divRemTo(b,d,
+e);return[d,e]};p.prototype.modPow=function(b,d){var e=b.bitLength(),f,n=ea(1),I;if(0>=e)return n;f=18>e?1:48>e?3:144>e?4:768>e?5:6;I=8>e?new Qa(d):d.isEven()?new $a(d):new E(d);var u=[],C=3,p=f-1,ab=(1<<f)-1;u[1]=I.convert(this);if(1<f)for(e=F(),I.sqrTo(u[1],e);C<=ab;)u[C]=F(),I.mulTo(e,u[C-2],u[C]),C+=2;for(var H=b.t-1,N,ia=!0,M=F(),e=k(b[H])-1;0<=H;){e>=p?N=b[H]>>e-p&ab:(N=(b[H]&(1<<e+1)-1)<<p-e,0<H&&(N|=b[H-1]>>this.DB+e-p));for(C=f;0==(N&1);)N>>=1,--C;0>(e-=C)&&(e+=this.DB,--H);if(ia)u[N].copyTo(n),
+ia=!1;else{for(;1<C;)I.sqrTo(n,M),I.sqrTo(M,n),C-=2;0<C?I.sqrTo(n,M):(C=n,n=M,M=C);I.mulTo(M,u[N],n)}for(;0<=H&&0==(b[H]&1<<e);)I.sqrTo(n,M),C=n,n=M,M=C,0>--e&&(e=this.DB-1,--H)}return I.revert(n)};p.prototype.modInverse=function(b){var d=b.isEven();if(this.isEven()&&d||0==b.signum())return p.ZERO;for(var e=b.clone(),f=this.clone(),n=ea(1),k=ea(0),u=ea(0),C=ea(1);0!=e.signum();){for(;e.isEven();)e.rShiftTo(1,e),d?(n.isEven()&&k.isEven()||(n.addTo(this,n),k.subTo(b,k)),n.rShiftTo(1,n)):k.isEven()||
+k.subTo(b,k),k.rShiftTo(1,k);for(;f.isEven();)f.rShiftTo(1,f),d?(u.isEven()&&C.isEven()||(u.addTo(this,u),C.subTo(b,C)),u.rShiftTo(1,u)):C.isEven()||C.subTo(b,C),C.rShiftTo(1,C);0<=e.compareTo(f)?(e.subTo(f,e),d&&n.subTo(u,n),k.subTo(C,k)):(f.subTo(e,f),d&&u.subTo(n,u),C.subTo(k,C))}if(0!=f.compareTo(p.ONE))return p.ZERO;if(0<=C.compareTo(b))return C.subtract(b);if(0>C.signum())C.addTo(b,C);else return C;return 0>C.signum()?C.add(b):C};p.prototype.pow=function(b){return this.exp(b,new fa)};p.prototype.gcd=
+function(b){var d=0>this.s?this.negate():this.clone();b=0>b.s?b.negate():b.clone();if(0>d.compareTo(b)){var e=d,d=b;b=e}var e=d.getLowestSetBit(),f=b.getLowestSetBit();if(0>f)return d;e<f&&(f=e);for(0<f&&(d.rShiftTo(f,d),b.rShiftTo(f,b));0<d.signum();)0<(e=d.getLowestSetBit())&&d.rShiftTo(e,d),0<(e=b.getLowestSetBit())&&b.rShiftTo(e,b),0<=d.compareTo(b)?(d.subTo(b,d),d.rShiftTo(1,d)):(b.subTo(d,b),b.rShiftTo(1,b));0<f&&b.lShiftTo(f,b);return b};p.prototype.isProbablePrime=function(b){var d,e=this.abs();
+if(1==e.t&&e[0]<=H[H.length-1]){for(d=0;d<H.length;++d)if(e[0]==H[d])return!0;return!1}if(e.isEven())return!1;for(d=1;d<H.length;){for(var f=H[d],n=d+1;n<H.length&&f<ic;)f*=H[n++];for(f=e.modInt(f);d<n;)if(0==f%H[d++])return!1}return e.millerRabin(b)};p.prototype.square=function(){var b=F();this.squareTo(b);return b};p.prototype.IsNegative=function(){return-1==this.compareTo(p.ZERO)?!0:!1};p.op_Equality=function(b,d){return 0==b.compareTo(d)?!0:!1};p.op_Inequality=function(b,d){return 0!=b.compareTo(d)?
+!0:!1};p.op_GreaterThan=function(b,d){return 0<b.compareTo(d)?!0:!1};p.op_LessThan=function(b,d){return 0>b.compareTo(d)?!0:!1};p.op_Addition=function(b,d){return(new p(b)).add(new p(d))};p.op_Subtraction=function(b,d){return(new p(b)).subtract(new p(d))};p.Int128Mul=function(b,d){return(new p(b)).multiply(new p(d))};p.op_Division=function(b,d){return b.divide(d)};p.prototype.ToDouble=function(){return parseFloat(this.toString())};Y=function(b,d){var e;if("undefined"==typeof Object.getOwnPropertyNames)for(e in d.prototype){if("undefined"==
+typeof b.prototype[e]||b.prototype[e]==Object.prototype[e])b.prototype[e]=d.prototype[e]}else for(var f=Object.getOwnPropertyNames(d.prototype),n=0;n<f.length;n++)"undefined"==typeof Object.getOwnPropertyDescriptor(b.prototype,f[n])&&Object.defineProperty(b.prototype,f[n],Object.getOwnPropertyDescriptor(d.prototype,f[n]));for(e in d)"undefined"==typeof b[e]&&(b[e]=d[e]);b.$baseCtor=d};f.Path=function(){return[]};f.Paths=function(){return[]};f.DoublePoint=function(){var b=arguments;this.Y=this.X=0;
+1==b.length?(this.X=b[0].X,this.Y=b[0].Y):2==b.length&&(this.X=b[0],this.Y=b[1])};f.DoublePoint0=function(){this.Y=this.X=0};f.DoublePoint1=function(b){this.X=b.X;this.Y=b.Y};f.DoublePoint2=function(b,d){this.X=b;this.Y=d};f.PolyNode=function(){this.m_Parent=null;this.m_polygon=new f.Path;this.m_endtype=this.m_jointype=this.m_Index=0;this.m_Childs=[];this.IsOpen=!1};f.PolyNode.prototype.IsHoleNode=function(){for(var b=!0,d=this.m_Parent;null!==d;)b=!b,d=d.m_Parent;return b};f.PolyNode.prototype.ChildCount=
+function(){return this.m_Childs.length};f.PolyNode.prototype.Contour=function(){return this.m_polygon};f.PolyNode.prototype.AddChild=function(b){var d=this.m_Childs.length;this.m_Childs.push(b);b.m_Parent=this;b.m_Index=d};f.PolyNode.prototype.GetNext=function(){return 0<this.m_Childs.length?this.m_Childs[0]:this.GetNextSiblingUp()};f.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index==this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+
+1]};f.PolyNode.prototype.Childs=function(){return this.m_Childs};f.PolyNode.prototype.Parent=function(){return this.m_Parent};f.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()};f.PolyTree=function(){this.m_AllPolys=[];f.PolyNode.call(this)};f.PolyTree.prototype.Clear=function(){for(var b=0,d=this.m_AllPolys.length;b<d;b++)this.m_AllPolys[b]=null;this.m_AllPolys.length=0;this.m_Childs.length=0};f.PolyTree.prototype.GetFirst=function(){return 0<this.m_Childs.length?this.m_Childs[0]:null};
+f.PolyTree.prototype.Total=function(){var b=this.m_AllPolys.length;0<b&&this.m_Childs[0]!=this.m_AllPolys[0]&&b--;return b};Y(f.PolyTree,f.PolyNode);f.Math_Abs_Int64=f.Math_Abs_Int32=f.Math_Abs_Double=function(b){return Math.abs(b)};f.Math_Max_Int32_Int32=function(b,d){return Math.max(b,d)};f.Cast_Int32=ba||Ta||gc?function(b){return b|0}:function(b){return~~b};f.Cast_Int64=M?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):~~b}:Sb&&"function"==typeof Number.toInteger?function(b){return Number.toInteger(b)}:
+Cb||fb?function(b){return parseInt(b,10)}:ba?function(b){return-2147483648>b||2147483647<b?0>b?Math.ceil(b):Math.floor(b):b|0}:function(b){return 0>b?Math.ceil(b):Math.floor(b)};f.Clear=function(b){b.length=0};f.PI=3.141592653589793;f.PI2=6.283185307179586;f.IntPoint=function(){var b=arguments,d=b.length;this.Y=this.X=0;f.use_xyz?(this.Z=0,3==d?(this.X=b[0],this.Y=b[1],this.Z=b[2]):2==d?(this.X=b[0],this.Y=b[1],this.Z=0):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=
+f.Clipper.Round(b.Y),this.Z=0):(b=b[0],"undefined"==typeof b.Z&&(b.Z=0),this.X=b.X,this.Y=b.Y,this.Z=b.Z):this.Z=this.Y=this.X=0):2==d?(this.X=b[0],this.Y=b[1]):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y)):(b=b[0],this.X=b.X,this.Y=b.Y):this.Y=this.X=0};f.IntPoint.op_Equality=function(b,d){return b.X==d.X&&b.Y==d.Y};f.IntPoint.op_Inequality=function(b,d){return b.X!=d.X||b.Y!=d.Y};f.use_xyz?(f.IntPoint0=function(){this.Z=this.Y=this.X=0},f.IntPoint1=
+function(b){this.X=b.X;this.Y=b.Y;this.Z=b.Z},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y);this.Z=0},f.IntPoint2=function(b,d){this.X=b;this.Y=d;this.Z=0},f.IntPoint3=function(b,d,e){this.X=b;this.Y=d;this.Z=e}):(f.IntPoint0=function(){this.Y=this.X=0},f.IntPoint1=function(b){this.X=b.X;this.Y=b.Y},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y)},f.IntPoint2=function(b,d){this.X=b;this.Y=d});f.IntRect=function(){var b=arguments,
+d=b.length;4==d?(this.left=b[0],this.top=b[1],this.right=b[2],this.bottom=b[3]):1==d?(this.left=b[0].left,this.top=b[0].top,this.right=b[0].right,this.bottom=b[0].bottom):this.bottom=this.right=this.top=this.left=0};f.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};f.IntRect1=function(b){this.left=b.left;this.top=b.top;this.right=b.right;this.bottom=b.bottom};f.IntRect4=function(b,d,e,f){this.left=b;this.top=d;this.right=e;this.bottom=f};f.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,
+ctXor:3};f.PolyType={ptSubject:0,ptClip:1};f.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};f.JoinType={jtSquare:0,jtRound:1,jtMiter:2};f.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};f.EdgeSide={esLeft:0,esRight:1};f.Direction={dRightToLeft:0,dLeftToRight:1};f.TEdge=function(){this.Bot=new f.IntPoint;this.Curr=new f.IntPoint;this.Top=new f.IntPoint;this.Delta=new f.IntPoint;this.Dx=0;this.PolyTyp=f.PolyType.ptSubject;this.Side=f.EdgeSide.esLeft;
+this.OutIdx=this.WindCnt2=this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};f.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new f.IntPoint};f.MyIntersectNodeSort=function(){};f.MyIntersectNodeSort.Compare=function(b,d){var e=d.Pt.Y-b.Pt.Y;return 0<e?1:0>e?-1:0};f.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};f.Scanbeam=function(){this.Y=0;this.Next=null};f.OutRec=function(){this.Idx=
0;this.IsOpen=this.IsHole=!1;this.PolyNode=this.BottomPt=this.Pts=this.FirstLeft=null};f.OutPt=function(){this.Idx=0;this.Pt=new f.IntPoint;this.Prev=this.Next=null};f.Join=function(){this.OutPt2=this.OutPt1=null;this.OffPt=new f.IntPoint};f.ClipperBase=function(){this.m_CurrentLM=this.m_MinimaList=null;this.m_edges=[];this.PreserveCollinear=this.m_HasOpenPaths=this.m_UseFullRange=!1;this.m_CurrentLM=this.m_MinimaList=null;this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.horizontal=-9007199254740992;
f.ClipperBase.Skip=-2;f.ClipperBase.Unassigned=-1;f.ClipperBase.tolerance=1E-20;f.ClipperBase.loRange=47453132;f.ClipperBase.hiRange=0xfffffffffffff;f.ClipperBase.near_zero=function(b){return b>-f.ClipperBase.tolerance&&b<f.ClipperBase.tolerance};f.ClipperBase.IsHorizontal=function(b){return 0===b.Delta.Y};f.ClipperBase.prototype.PointIsVertex=function(b,d){var e=d;do{if(f.IntPoint.op_Equality(e.Pt,b))return!0;e=e.Next}while(e!=d);return!1};f.ClipperBase.prototype.PointOnLineSegment=function(b,d,
e,f){return f?b.X==d.X&&b.Y==d.Y||b.X==e.X&&b.Y==e.Y||b.X>d.X==b.X<e.X&&b.Y>d.Y==b.Y<e.Y&&p.op_Equality(p.Int128Mul(b.X-d.X,e.Y-d.Y),p.Int128Mul(e.X-d.X,b.Y-d.Y)):b.X==d.X&&b.Y==d.Y||b.X==e.X&&b.Y==e.Y||b.X>d.X==b.X<e.X&&b.Y>d.Y==b.Y<e.Y&&(b.X-d.X)*(e.Y-d.Y)==(e.X-d.X)*(b.Y-d.Y)};f.ClipperBase.prototype.PointOnPolygon=function(b,d,e){for(var f=d;;){if(this.PointOnLineSegment(b,f.Pt,f.Next.Pt,e))return!0;f=f.Next;if(f==d)break}return!1};f.ClipperBase.prototype.SlopesEqual=f.ClipperBase.SlopesEqual=
-function(){var b=arguments,d=b.length,e,q,n;if(3==d)return d=b[0],e=b[1],b[2]?p.op_Equality(p.Int128Mul(d.Delta.Y,e.Delta.X),p.Int128Mul(d.Delta.X,e.Delta.Y)):f.Cast_Int64(d.Delta.Y*e.Delta.X)==f.Cast_Int64(d.Delta.X*e.Delta.Y);if(4==d)return d=b[0],e=b[1],q=b[2],b[3]?p.op_Equality(p.Int128Mul(d.Y-e.Y,e.X-q.X),p.Int128Mul(d.X-e.X,e.Y-q.Y)):0===f.Cast_Int64((d.Y-e.Y)*(e.X-q.X))-f.Cast_Int64((d.X-e.X)*(e.Y-q.Y));d=b[0];e=b[1];q=b[2];n=b[3];return b[4]?p.op_Equality(p.Int128Mul(d.Y-e.Y,q.X-n.X),p.Int128Mul(d.X-
-e.X,q.Y-n.Y)):0===f.Cast_Int64((d.Y-e.Y)*(q.X-n.X))-f.Cast_Int64((d.X-e.X)*(q.Y-n.Y))};f.ClipperBase.SlopesEqual3=function(b,d,e){return e?p.op_Equality(p.Int128Mul(b.Delta.Y,d.Delta.X),p.Int128Mul(b.Delta.X,d.Delta.Y)):f.Cast_Int64(b.Delta.Y*d.Delta.X)==f.Cast_Int64(b.Delta.X*d.Delta.Y)};f.ClipperBase.SlopesEqual4=function(b,d,e,q){return q?p.op_Equality(p.Int128Mul(b.Y-d.Y,d.X-e.X),p.Int128Mul(b.X-d.X,d.Y-e.Y)):0===f.Cast_Int64((b.Y-d.Y)*(d.X-e.X))-f.Cast_Int64((b.X-d.X)*(d.Y-e.Y))};f.ClipperBase.SlopesEqual5=
-function(b,d,e,q,n){return n?p.op_Equality(p.Int128Mul(b.Y-d.Y,e.X-q.X),p.Int128Mul(b.X-d.X,e.Y-q.Y)):0===f.Cast_Int64((b.Y-d.Y)*(e.X-q.X))-f.Cast_Int64((b.X-d.X)*(e.Y-q.Y))};f.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var b=0,d=this.m_edges.length;b<d;++b){for(var e=0,q=this.m_edges[b].length;e<q;++e)this.m_edges[b][e]=null;f.Clear(this.m_edges[b])}f.Clear(this.m_edges);this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;null!==
+function(){var b=arguments,d=b.length,e,r,n;if(3==d)return d=b[0],e=b[1],b[2]?p.op_Equality(p.Int128Mul(d.Delta.Y,e.Delta.X),p.Int128Mul(d.Delta.X,e.Delta.Y)):f.Cast_Int64(d.Delta.Y*e.Delta.X)==f.Cast_Int64(d.Delta.X*e.Delta.Y);if(4==d)return d=b[0],e=b[1],r=b[2],b[3]?p.op_Equality(p.Int128Mul(d.Y-e.Y,e.X-r.X),p.Int128Mul(d.X-e.X,e.Y-r.Y)):0===f.Cast_Int64((d.Y-e.Y)*(e.X-r.X))-f.Cast_Int64((d.X-e.X)*(e.Y-r.Y));d=b[0];e=b[1];r=b[2];n=b[3];return b[4]?p.op_Equality(p.Int128Mul(d.Y-e.Y,r.X-n.X),p.Int128Mul(d.X-
+e.X,r.Y-n.Y)):0===f.Cast_Int64((d.Y-e.Y)*(r.X-n.X))-f.Cast_Int64((d.X-e.X)*(r.Y-n.Y))};f.ClipperBase.SlopesEqual3=function(b,d,e){return e?p.op_Equality(p.Int128Mul(b.Delta.Y,d.Delta.X),p.Int128Mul(b.Delta.X,d.Delta.Y)):f.Cast_Int64(b.Delta.Y*d.Delta.X)==f.Cast_Int64(b.Delta.X*d.Delta.Y)};f.ClipperBase.SlopesEqual4=function(b,d,e,r){return r?p.op_Equality(p.Int128Mul(b.Y-d.Y,d.X-e.X),p.Int128Mul(b.X-d.X,d.Y-e.Y)):0===f.Cast_Int64((b.Y-d.Y)*(d.X-e.X))-f.Cast_Int64((b.X-d.X)*(d.Y-e.Y))};f.ClipperBase.SlopesEqual5=
+function(b,d,e,r,n){return n?p.op_Equality(p.Int128Mul(b.Y-d.Y,e.X-r.X),p.Int128Mul(b.X-d.X,e.Y-r.Y)):0===f.Cast_Int64((b.Y-d.Y)*(e.X-r.X))-f.Cast_Int64((b.X-d.X)*(e.Y-r.Y))};f.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var b=0,d=this.m_edges.length;b<d;++b){for(var e=0,r=this.m_edges[b].length;e<r;++e)this.m_edges[b][e]=null;f.Clear(this.m_edges[b])}f.Clear(this.m_edges);this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;null!==
this.m_MinimaList;){var b=this.m_MinimaList.Next;this.m_MinimaList=null;this.m_MinimaList=b}this.m_CurrentLM=null};f.ClipperBase.prototype.RangeTest=function(b,d){if(d.Value)(b.X>f.ClipperBase.hiRange||b.Y>f.ClipperBase.hiRange||-b.X>f.ClipperBase.hiRange||-b.Y>f.ClipperBase.hiRange)&&f.Error("Coordinate outside allowed range in RangeTest().");else if(b.X>f.ClipperBase.loRange||b.Y>f.ClipperBase.loRange||-b.X>f.ClipperBase.loRange||-b.Y>f.ClipperBase.loRange)d.Value=!0,this.RangeTest(b,d)};f.ClipperBase.prototype.InitEdge=
-function(b,d,e,q){b.Next=d;b.Prev=e;b.Curr.X=q.X;b.Curr.Y=q.Y;f.use_xyz&&(b.Curr.Z=q.Z);b.OutIdx=-1};f.ClipperBase.prototype.InitEdge2=function(b,d){b.Curr.Y>=b.Next.Curr.Y?(b.Bot.X=b.Curr.X,b.Bot.Y=b.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Curr.Z),b.Top.X=b.Next.Curr.X,b.Top.Y=b.Next.Curr.Y,f.use_xyz&&(b.Top.Z=b.Next.Curr.Z)):(b.Top.X=b.Curr.X,b.Top.Y=b.Curr.Y,f.use_xyz&&(b.Top.Z=b.Curr.Z),b.Bot.X=b.Next.Curr.X,b.Bot.Y=b.Next.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Next.Curr.Z));this.SetDx(b);b.PolyTyp=d};f.ClipperBase.prototype.FindNextLocMin=
-function(b){for(var d;;){for(;f.IntPoint.op_Inequality(b.Bot,b.Prev.Bot)||f.IntPoint.op_Equality(b.Curr,b.Top);)b=b.Next;if(b.Dx!=f.ClipperBase.horizontal&&b.Prev.Dx!=f.ClipperBase.horizontal)break;for(;b.Prev.Dx==f.ClipperBase.horizontal;)b=b.Prev;for(d=b;b.Dx==f.ClipperBase.horizontal;)b=b.Next;if(b.Top.Y!=b.Prev.Bot.Y){d.Prev.Bot.X<b.Bot.X&&(b=d);break}}return b};f.ClipperBase.prototype.ProcessBound=function(b,d){var e,q=b,n;if(q.OutIdx==f.ClipperBase.Skip){b=q;if(d){for(;b.Top.Y==b.Next.Bot.Y;)b=
-b.Next;for(;b!=q&&b.Dx==f.ClipperBase.horizontal;)b=b.Prev}else{for(;b.Top.Y==b.Prev.Bot.Y;)b=b.Prev;for(;b!=q&&b.Dx==f.ClipperBase.horizontal;)b=b.Next}b==q?q=d?b.Next:b.Prev:(b=d?q.Next:q.Prev,e=new f.LocalMinima,e.Next=null,e.Y=b.Bot.Y,e.LeftBound=null,e.RightBound=b,b.WindDelta=0,q=this.ProcessBound(b,d),this.InsertLocalMinima(e));return q}b.Dx==f.ClipperBase.horizontal&&(e=d?b.Prev:b.Next,e.OutIdx!=f.ClipperBase.Skip&&(e.Dx==f.ClipperBase.horizontal?e.Bot.X!=b.Bot.X&&e.Top.X!=b.Bot.X&&this.ReverseHorizontal(b):
-e.Bot.X!=b.Bot.X&&this.ReverseHorizontal(b)));e=b;if(d){for(;q.Top.Y==q.Next.Bot.Y&&q.Next.OutIdx!=f.ClipperBase.Skip;)q=q.Next;if(q.Dx==f.ClipperBase.horizontal&&q.Next.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Prev.Dx==f.ClipperBase.horizontal;)n=n.Prev;n.Prev.Top.X==q.Next.Top.X?d||(q=n.Prev):n.Prev.Top.X>q.Next.Top.X&&(q=n.Prev)}for(;b!=q;)b.NextInLML=b.Next,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
-b.Prev.Top.X&&this.ReverseHorizontal(b);q=q.Next}else{for(;q.Top.Y==q.Prev.Bot.Y&&q.Prev.OutIdx!=f.ClipperBase.Skip;)q=q.Prev;if(q.Dx==f.ClipperBase.horizontal&&q.Prev.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Next.Dx==f.ClipperBase.horizontal;)n=n.Next;n.Next.Top.X==q.Prev.Top.X?d||(q=n.Next):n.Next.Top.X>q.Prev.Top.X&&(q=n.Next)}for(;b!=q;)b.NextInLML=b.Prev,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Next.Top.X&&this.ReverseHorizontal(b),b=b.Prev;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
-b.Next.Top.X&&this.ReverseHorizontal(b);q=q.Prev}return q};f.ClipperBase.prototype.AddPath=function(b,d,e){f.use_lines?e||d!=f.PolyType.ptClip||f.Error("AddPath: Open paths must be subject."):e||f.Error("AddPath: Open paths have been disabled.");var q=b.length-1;if(e)for(;0<q&&f.IntPoint.op_Equality(b[q],b[0]);)--q;for(;0<q&&f.IntPoint.op_Equality(b[q],b[q-1]);)--q;if(e&&2>q||!e&&1>q)return!1;for(var n=[],k=0;k<=q;k++)n.push(new f.TEdge);var v=!0;n[1].Curr.X=b[1].X;n[1].Curr.Y=b[1].Y;f.use_xyz&&(n[1].Curr.Z=
-b[1].Z);var C={Value:this.m_UseFullRange};this.RangeTest(b[0],C);this.m_UseFullRange=C.Value;C.Value=this.m_UseFullRange;this.RangeTest(b[q],C);this.m_UseFullRange=C.Value;this.InitEdge(n[0],n[1],n[q],b[0]);this.InitEdge(n[q],n[0],n[q-1],b[q]);for(k=q-1;1<=k;--k)C.Value=this.m_UseFullRange,this.RangeTest(b[k],C),this.m_UseFullRange=C.Value,this.InitEdge(n[k],n[k+1],n[k-1],b[k]);for(k=b=q=n[0];;)if(b.Curr!=b.Next.Curr||!e&&b.Next==q){if(b.Prev==b.Next)break;else if(e&&f.ClipperBase.SlopesEqual(b.Prev.Curr,
-b.Curr,b.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(b.Prev.Curr,b.Curr,b.Next.Curr))){b==q&&(q=b.Next);b=this.RemoveEdge(b);k=b=b.Prev;continue}b=b.Next;if(b==k||!e&&b.Next==q)break}else{if(b==b.Next)break;b==q&&(q=b.Next);k=b=this.RemoveEdge(b)}if(!e&&b==b.Next||e&&b.Prev==b.Next)return!1;e||(this.m_HasOpenPaths=!0,q.Prev.OutIdx=f.ClipperBase.Skip);b=q;do this.InitEdge2(b,d),b=b.Next,v&&b.Curr.Y!=q.Curr.Y&&(v=!1);while(b!=q);if(v){if(e)return!1;b.Prev.OutIdx=
-f.ClipperBase.Skip;b.Prev.Bot.X<b.Prev.Top.X&&this.ReverseHorizontal(b.Prev);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;d.LeftBound=null;d.RightBound=b;d.RightBound.Side=f.EdgeSide.esRight;for(d.RightBound.WindDelta=0;b.Next.OutIdx!=f.ClipperBase.Skip;)b.NextInLML=b.Next,b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;this.InsertLocalMinima(d);this.m_edges.push(n);return!0}this.m_edges.push(n);v=null;for(f.IntPoint.op_Equality(b.Prev.Bot,b.Prev.Top)&&(b=b.Next);;){b=this.FindNextLocMin(b);
-if(b==v)break;else null==v&&(v=b);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;b.Dx<b.Prev.Dx?(d.LeftBound=b.Prev,d.RightBound=b,n=!1):(d.LeftBound=b,d.RightBound=b.Prev,n=!0);d.LeftBound.Side=f.EdgeSide.esLeft;d.RightBound.Side=f.EdgeSide.esRight;d.LeftBound.WindDelta=e?d.LeftBound.Next==d.RightBound?-1:1:0;d.RightBound.WindDelta=-d.LeftBound.WindDelta;b=this.ProcessBound(d.LeftBound,n);b.OutIdx==f.ClipperBase.Skip&&(b=this.ProcessBound(b,n));q=this.ProcessBound(d.RightBound,!n);q.OutIdx==f.ClipperBase.Skip&&
-(q=this.ProcessBound(q,!n));d.LeftBound.OutIdx==f.ClipperBase.Skip?d.LeftBound=null:d.RightBound.OutIdx==f.ClipperBase.Skip&&(d.RightBound=null);this.InsertLocalMinima(d);n||(b=q)}return!0};f.ClipperBase.prototype.AddPaths=function(b,d,e){for(var f=!1,n=0,k=b.length;n<k;++n)this.AddPath(b[n],d,e)&&(f=!0);return f};f.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(b,d,e){return f.IntPoint.op_Equality(b,e)||f.IntPoint.op_Equality(b,d)||f.IntPoint.op_Equality(e,d)?!1:b.X!=e.X?d.X>b.X==d.X<e.X:d.Y>
+function(b,d,e,r){b.Next=d;b.Prev=e;b.Curr.X=r.X;b.Curr.Y=r.Y;f.use_xyz&&(b.Curr.Z=r.Z);b.OutIdx=-1};f.ClipperBase.prototype.InitEdge2=function(b,d){b.Curr.Y>=b.Next.Curr.Y?(b.Bot.X=b.Curr.X,b.Bot.Y=b.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Curr.Z),b.Top.X=b.Next.Curr.X,b.Top.Y=b.Next.Curr.Y,f.use_xyz&&(b.Top.Z=b.Next.Curr.Z)):(b.Top.X=b.Curr.X,b.Top.Y=b.Curr.Y,f.use_xyz&&(b.Top.Z=b.Curr.Z),b.Bot.X=b.Next.Curr.X,b.Bot.Y=b.Next.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Next.Curr.Z));this.SetDx(b);b.PolyTyp=d};f.ClipperBase.prototype.FindNextLocMin=
+function(b){for(var d;;){for(;f.IntPoint.op_Inequality(b.Bot,b.Prev.Bot)||f.IntPoint.op_Equality(b.Curr,b.Top);)b=b.Next;if(b.Dx!=f.ClipperBase.horizontal&&b.Prev.Dx!=f.ClipperBase.horizontal)break;for(;b.Prev.Dx==f.ClipperBase.horizontal;)b=b.Prev;for(d=b;b.Dx==f.ClipperBase.horizontal;)b=b.Next;if(b.Top.Y!=b.Prev.Bot.Y){d.Prev.Bot.X<b.Bot.X&&(b=d);break}}return b};f.ClipperBase.prototype.ProcessBound=function(b,d){var e,r=b,n;if(r.OutIdx==f.ClipperBase.Skip){b=r;if(d){for(;b.Top.Y==b.Next.Bot.Y;)b=
+b.Next;for(;b!=r&&b.Dx==f.ClipperBase.horizontal;)b=b.Prev}else{for(;b.Top.Y==b.Prev.Bot.Y;)b=b.Prev;for(;b!=r&&b.Dx==f.ClipperBase.horizontal;)b=b.Next}b==r?r=d?b.Next:b.Prev:(b=d?r.Next:r.Prev,e=new f.LocalMinima,e.Next=null,e.Y=b.Bot.Y,e.LeftBound=null,e.RightBound=b,b.WindDelta=0,r=this.ProcessBound(b,d),this.InsertLocalMinima(e));return r}b.Dx==f.ClipperBase.horizontal&&(e=d?b.Prev:b.Next,e.OutIdx!=f.ClipperBase.Skip&&(e.Dx==f.ClipperBase.horizontal?e.Bot.X!=b.Bot.X&&e.Top.X!=b.Bot.X&&this.ReverseHorizontal(b):
+e.Bot.X!=b.Bot.X&&this.ReverseHorizontal(b)));e=b;if(d){for(;r.Top.Y==r.Next.Bot.Y&&r.Next.OutIdx!=f.ClipperBase.Skip;)r=r.Next;if(r.Dx==f.ClipperBase.horizontal&&r.Next.OutIdx!=f.ClipperBase.Skip){for(n=r;n.Prev.Dx==f.ClipperBase.horizontal;)n=n.Prev;n.Prev.Top.X==r.Next.Top.X?d||(r=n.Prev):n.Prev.Top.X>r.Next.Top.X&&(r=n.Prev)}for(;b!=r;)b.NextInLML=b.Next,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
+b.Prev.Top.X&&this.ReverseHorizontal(b);r=r.Next}else{for(;r.Top.Y==r.Prev.Bot.Y&&r.Prev.OutIdx!=f.ClipperBase.Skip;)r=r.Prev;if(r.Dx==f.ClipperBase.horizontal&&r.Prev.OutIdx!=f.ClipperBase.Skip){for(n=r;n.Next.Dx==f.ClipperBase.horizontal;)n=n.Next;n.Next.Top.X==r.Prev.Top.X?d||(r=n.Next):n.Next.Top.X>r.Prev.Top.X&&(r=n.Next)}for(;b!=r;)b.NextInLML=b.Prev,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Next.Top.X&&this.ReverseHorizontal(b),b=b.Prev;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=
+b.Next.Top.X&&this.ReverseHorizontal(b);r=r.Prev}return r};f.ClipperBase.prototype.AddPath=function(b,d,e){f.use_lines?e||d!=f.PolyType.ptClip||f.Error("AddPath: Open paths must be subject."):e||f.Error("AddPath: Open paths have been disabled.");var r=b.length-1;if(e)for(;0<r&&f.IntPoint.op_Equality(b[r],b[0]);)--r;for(;0<r&&f.IntPoint.op_Equality(b[r],b[r-1]);)--r;if(e&&2>r||!e&&1>r)return!1;for(var n=[],k=0;k<=r;k++)n.push(new f.TEdge);var u=!0;n[1].Curr.X=b[1].X;n[1].Curr.Y=b[1].Y;f.use_xyz&&(n[1].Curr.Z=
+b[1].Z);var C={Value:this.m_UseFullRange};this.RangeTest(b[0],C);this.m_UseFullRange=C.Value;C.Value=this.m_UseFullRange;this.RangeTest(b[r],C);this.m_UseFullRange=C.Value;this.InitEdge(n[0],n[1],n[r],b[0]);this.InitEdge(n[r],n[0],n[r-1],b[r]);for(k=r-1;1<=k;--k)C.Value=this.m_UseFullRange,this.RangeTest(b[k],C),this.m_UseFullRange=C.Value,this.InitEdge(n[k],n[k+1],n[k-1],b[k]);for(k=b=r=n[0];;)if(b.Curr!=b.Next.Curr||!e&&b.Next==r){if(b.Prev==b.Next)break;else if(e&&f.ClipperBase.SlopesEqual(b.Prev.Curr,
+b.Curr,b.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(b.Prev.Curr,b.Curr,b.Next.Curr))){b==r&&(r=b.Next);b=this.RemoveEdge(b);k=b=b.Prev;continue}b=b.Next;if(b==k||!e&&b.Next==r)break}else{if(b==b.Next)break;b==r&&(r=b.Next);k=b=this.RemoveEdge(b)}if(!e&&b==b.Next||e&&b.Prev==b.Next)return!1;e||(this.m_HasOpenPaths=!0,r.Prev.OutIdx=f.ClipperBase.Skip);b=r;do this.InitEdge2(b,d),b=b.Next,u&&b.Curr.Y!=r.Curr.Y&&(u=!1);while(b!=r);if(u){if(e)return!1;b.Prev.OutIdx=
+f.ClipperBase.Skip;b.Prev.Bot.X<b.Prev.Top.X&&this.ReverseHorizontal(b.Prev);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;d.LeftBound=null;d.RightBound=b;d.RightBound.Side=f.EdgeSide.esRight;for(d.RightBound.WindDelta=0;b.Next.OutIdx!=f.ClipperBase.Skip;)b.NextInLML=b.Next,b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;this.InsertLocalMinima(d);this.m_edges.push(n);return!0}this.m_edges.push(n);u=null;for(f.IntPoint.op_Equality(b.Prev.Bot,b.Prev.Top)&&(b=b.Next);;){b=this.FindNextLocMin(b);
+if(b==u)break;else null==u&&(u=b);d=new f.LocalMinima;d.Next=null;d.Y=b.Bot.Y;b.Dx<b.Prev.Dx?(d.LeftBound=b.Prev,d.RightBound=b,n=!1):(d.LeftBound=b,d.RightBound=b.Prev,n=!0);d.LeftBound.Side=f.EdgeSide.esLeft;d.RightBound.Side=f.EdgeSide.esRight;d.LeftBound.WindDelta=e?d.LeftBound.Next==d.RightBound?-1:1:0;d.RightBound.WindDelta=-d.LeftBound.WindDelta;b=this.ProcessBound(d.LeftBound,n);b.OutIdx==f.ClipperBase.Skip&&(b=this.ProcessBound(b,n));r=this.ProcessBound(d.RightBound,!n);r.OutIdx==f.ClipperBase.Skip&&
+(r=this.ProcessBound(r,!n));d.LeftBound.OutIdx==f.ClipperBase.Skip?d.LeftBound=null:d.RightBound.OutIdx==f.ClipperBase.Skip&&(d.RightBound=null);this.InsertLocalMinima(d);n||(b=r)}return!0};f.ClipperBase.prototype.AddPaths=function(b,d,e){for(var f=!1,n=0,k=b.length;n<k;++n)this.AddPath(b[n],d,e)&&(f=!0);return f};f.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(b,d,e){return f.IntPoint.op_Equality(b,e)||f.IntPoint.op_Equality(b,d)||f.IntPoint.op_Equality(e,d)?!1:b.X!=e.X?d.X>b.X==d.X<e.X:d.Y>
b.Y==d.Y<e.Y};f.ClipperBase.prototype.RemoveEdge=function(b){b.Prev.Next=b.Next;b.Next.Prev=b.Prev;var d=b.Next;b.Prev=null;return d};f.ClipperBase.prototype.SetDx=function(b){b.Delta.X=b.Top.X-b.Bot.X;b.Delta.Y=b.Top.Y-b.Bot.Y;b.Dx=0===b.Delta.Y?f.ClipperBase.horizontal:b.Delta.X/b.Delta.Y};f.ClipperBase.prototype.InsertLocalMinima=function(b){if(null===this.m_MinimaList)this.m_MinimaList=b;else if(b.Y>=this.m_MinimaList.Y)b.Next=this.m_MinimaList,this.m_MinimaList=b;else{for(var d=this.m_MinimaList;null!==
d.Next&&b.Y<d.Next.Y;)d=d.Next;b.Next=d.Next;d.Next=b}};f.ClipperBase.prototype.PopLocalMinima=function(){null!==this.m_CurrentLM&&(this.m_CurrentLM=this.m_CurrentLM.Next)};f.ClipperBase.prototype.ReverseHorizontal=function(b){var d=b.Top.X;b.Top.X=b.Bot.X;b.Bot.X=d;f.use_xyz&&(d=b.Top.Z,b.Top.Z=b.Bot.Z,b.Bot.Z=d)};f.ClipperBase.prototype.Reset=function(){this.m_CurrentLM=this.m_MinimaList;if(null!=this.m_CurrentLM)for(var b=this.m_MinimaList;null!=b;){var d=b.LeftBound;null!=d&&(d.Curr.X=d.Bot.X,
d.Curr.Y=d.Bot.Y,f.use_xyz&&(d.Curr.Z=d.Bot.Z),d.Side=f.EdgeSide.esLeft,d.OutIdx=f.ClipperBase.Unassigned);d=b.RightBound;null!=d&&(d.Curr.X=d.Bot.X,d.Curr.Y=d.Bot.Y,f.use_xyz&&(d.Curr.Z=d.Bot.Z),d.Side=f.EdgeSide.esRight,d.OutIdx=f.ClipperBase.Unassigned);b=b.Next}};f.Clipper=function(b){"undefined"==typeof b&&(b=0);this.m_PolyOuts=null;this.m_ClipType=f.ClipType.ctIntersection;this.m_IntersectNodeComparer=this.m_IntersectList=this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m_ExecuteLocked=
!1;this.m_SubjFillType=this.m_ClipFillType=f.PolyFillType.pftEvenOdd;this.m_GhostJoins=this.m_Joins=null;this.StrictlySimple=this.ReverseSolution=this.m_UsingPolyTree=!1;f.ClipperBase.call(this);this.m_SortedEdges=this.m_ActiveEdges=this.m_Scanbeam=null;this.m_IntersectList=[];this.m_IntersectNodeComparer=f.MyIntersectNodeSort.Compare;this.m_UsingPolyTree=this.m_ExecuteLocked=!1;this.m_PolyOuts=[];this.m_Joins=[];this.m_GhostJoins=[];this.ReverseSolution=0!==(1&b);this.StrictlySimple=0!==(2&b);this.PreserveCollinear=
0!==(4&b);f.use_xyz&&(this.ZFillFunction=null)};f.Clipper.ioReverseSolution=1;f.Clipper.ioStrictlySimple=2;f.Clipper.ioPreserveCollinear=4;f.Clipper.prototype.Clear=function(){0!==this.m_edges.length&&(this.DisposeAllPolyPts(),f.ClipperBase.prototype.Clear.call(this))};f.Clipper.prototype.DisposeScanbeamList=function(){for(;null!==this.m_Scanbeam;){var b=this.m_Scanbeam.Next;this.m_Scanbeam=null;this.m_Scanbeam=b}};f.Clipper.prototype.Reset=function(){f.ClipperBase.prototype.Reset.call(this);this.m_SortedEdges=
this.m_ActiveEdges=this.m_Scanbeam=null;for(var b=this.m_MinimaList;null!==b;)this.InsertScanbeam(b.Y),b=b.Next};f.Clipper.prototype.InsertScanbeam=function(b){if(null===this.m_Scanbeam)this.m_Scanbeam=new f.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=b;else if(b>this.m_Scanbeam.Y){var d=new f.Scanbeam;d.Y=b;d.Next=this.m_Scanbeam;this.m_Scanbeam=d}else{for(var e=this.m_Scanbeam;null!==e.Next&&b<=e.Next.Y;)e=e.Next;b!=e.Y&&(d=new f.Scanbeam,d.Y=b,d.Next=e.Next,e.Next=d)}};f.Clipper.prototype.Execute=
-function(){var b=arguments,d=b.length,e=b[1]instanceof f.PolyTree;if(4!=d||e){if(4==d&&e){var d=b[0],q=b[1],e=b[2],b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!0;try{(n=this.ExecuteInternal())&&this.BuildResult2(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}if(2==d&&!e||2==d&&e)return d=b[0],q=b[1],this.Execute(d,q,f.PolyFillType.pftEvenOdd,f.PolyFillType.pftEvenOdd)}else{d=
-b[0];q=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&f.Error("Error: PolyTree struct is need for open path clipping.");this.m_ExecuteLocked=!0;f.Clear(q);this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!1;try{var n=this.ExecuteInternal();n&&this.BuildResult(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}};f.Clipper.prototype.FixHoleLinkage=function(b){if(null!==b.FirstLeft&&(b.IsHole==b.FirstLeft.IsHole||null===b.FirstLeft.Pts)){for(var d=
+function(){var b=arguments,d=b.length,e=b[1]instanceof f.PolyTree;if(4!=d||e){if(4==d&&e){var d=b[0],r=b[1],e=b[2],b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!0;try{(n=this.ExecuteInternal())&&this.BuildResult2(r)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}if(2==d&&!e||2==d&&e)return d=b[0],r=b[1],this.Execute(d,r,f.PolyFillType.pftEvenOdd,f.PolyFillType.pftEvenOdd)}else{d=
+b[0];r=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&f.Error("Error: PolyTree struct is need for open path clipping.");this.m_ExecuteLocked=!0;f.Clear(r);this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!1;try{var n=this.ExecuteInternal();n&&this.BuildResult(r)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}};f.Clipper.prototype.FixHoleLinkage=function(b){if(null!==b.FirstLeft&&(b.IsHole==b.FirstLeft.IsHole||null===b.FirstLeft.Pts)){for(var d=
b.FirstLeft;null!==d&&(d.IsHole==b.IsHole||null===d.Pts);)d=d.FirstLeft;b.FirstLeft=d}};f.Clipper.prototype.ExecuteInternal=function(){try{this.Reset();if(null===this.m_CurrentLM)return!1;var b=this.PopScanbeam();do{this.InsertLocalMinimaIntoAEL(b);f.Clear(this.m_GhostJoins);this.ProcessHorizontals(!1);if(null===this.m_Scanbeam)break;var d=this.PopScanbeam();if(!this.ProcessIntersections(d))return!1;this.ProcessEdgesAtTopOfScanbeam(d);b=d}while(null!==this.m_Scanbeam||null!==this.m_CurrentLM);for(var b=
-0,e=this.m_PolyOuts.length;b<e;b++){var q=this.m_PolyOuts[b];null===q.Pts||q.IsOpen||(q.IsHole^this.ReverseSolution)==0<this.Area(q)&&this.ReversePolyPtLinks(q.Pts)}this.JoinCommonEdges();b=0;for(e=this.m_PolyOuts.length;b<e;b++)q=this.m_PolyOuts[b],null===q.Pts||q.IsOpen||this.FixupOutPolygon(q);this.StrictlySimple&&this.DoSimplePolygons();return!0}finally{f.Clear(this.m_Joins),f.Clear(this.m_GhostJoins)}};f.Clipper.prototype.PopScanbeam=function(){var b=this.m_Scanbeam.Y;this.m_Scanbeam=this.m_Scanbeam.Next;
-return b};f.Clipper.prototype.DisposeAllPolyPts=function(){for(var b=0,d=this.m_PolyOuts.length;b<d;++b)this.DisposeOutRec(b);f.Clear(this.m_PolyOuts)};f.Clipper.prototype.DisposeOutRec=function(b){this.m_PolyOuts[b].Pts=null;this.m_PolyOuts[b]=null};f.Clipper.prototype.AddJoin=function(b,d,e){var q=new f.Join;q.OutPt1=b;q.OutPt2=d;q.OffPt.X=e.X;q.OffPt.Y=e.Y;f.use_xyz&&(q.OffPt.Z=e.Z);this.m_Joins.push(q)};f.Clipper.prototype.AddGhostJoin=function(b,d){var e=new f.Join;e.OutPt1=b;e.OffPt.X=d.X;e.OffPt.Y=
+0,e=this.m_PolyOuts.length;b<e;b++){var r=this.m_PolyOuts[b];null===r.Pts||r.IsOpen||(r.IsHole^this.ReverseSolution)==0<this.Area(r)&&this.ReversePolyPtLinks(r.Pts)}this.JoinCommonEdges();b=0;for(e=this.m_PolyOuts.length;b<e;b++)r=this.m_PolyOuts[b],null===r.Pts||r.IsOpen||this.FixupOutPolygon(r);this.StrictlySimple&&this.DoSimplePolygons();return!0}finally{f.Clear(this.m_Joins),f.Clear(this.m_GhostJoins)}};f.Clipper.prototype.PopScanbeam=function(){var b=this.m_Scanbeam.Y;this.m_Scanbeam=this.m_Scanbeam.Next;
+return b};f.Clipper.prototype.DisposeAllPolyPts=function(){for(var b=0,d=this.m_PolyOuts.length;b<d;++b)this.DisposeOutRec(b);f.Clear(this.m_PolyOuts)};f.Clipper.prototype.DisposeOutRec=function(b){this.m_PolyOuts[b].Pts=null;this.m_PolyOuts[b]=null};f.Clipper.prototype.AddJoin=function(b,d,e){var r=new f.Join;r.OutPt1=b;r.OutPt2=d;r.OffPt.X=e.X;r.OffPt.Y=e.Y;f.use_xyz&&(r.OffPt.Z=e.Z);this.m_Joins.push(r)};f.Clipper.prototype.AddGhostJoin=function(b,d){var e=new f.Join;e.OutPt1=b;e.OffPt.X=d.X;e.OffPt.Y=
d.Y;f.use_xyz&&(e.OffPt.Z=d.Z);this.m_GhostJoins.push(e)};f.Clipper.prototype.SetZ=function(b,d,e){null!==this.ZFillFunction&&0==b.Z&&null!==this.ZFillFunction&&(f.IntPoint.op_Equality(b,d.Bot)?b.Z=d.Bot.Z:f.IntPoint.op_Equality(b,d.Top)?b.Z=d.Top.Z:f.IntPoint.op_Equality(b,e.Bot)?b.Z=e.Bot.Z:f.IntPoint.op_Equality(b,e.Top)?b.Z=e.Top.Z:this.ZFillFunction(d.Bot,d.Top,e.Bot,e.Top,b))};f.Clipper.prototype.InsertLocalMinimaIntoAEL=function(b){for(;null!==this.m_CurrentLM&&this.m_CurrentLM.Y==b;){var d=
-this.m_CurrentLM.LeftBound,e=this.m_CurrentLM.RightBound;this.PopLocalMinima();var q=null;null===d?(this.InsertEdgeIntoAEL(e,null),this.SetWindingCount(e),this.IsContributing(e)&&(q=this.AddOutPt(e,e.Bot))):(null==e?(this.InsertEdgeIntoAEL(d,null),this.SetWindingCount(d),this.IsContributing(d)&&(q=this.AddOutPt(d,d.Bot))):(this.InsertEdgeIntoAEL(d,null),this.InsertEdgeIntoAEL(e,d),this.SetWindingCount(d),e.WindCnt=d.WindCnt,e.WindCnt2=d.WindCnt2,this.IsContributing(d)&&(q=this.AddLocalMinPoly(d,e,
-d.Bot))),this.InsertScanbeam(d.Top.Y));null!=e&&(f.ClipperBase.IsHorizontal(e)?this.AddEdgeToSEL(e):this.InsertScanbeam(e.Top.Y));if(null!=d&&null!=e){if(null!==q&&f.ClipperBase.IsHorizontal(e)&&0<this.m_GhostJoins.length&&0!==e.WindDelta)for(var n=0,k=this.m_GhostJoins.length;n<k;n++){var v=this.m_GhostJoins[n];this.HorzSegmentsOverlap(v.OutPt1.Pt.X,v.OffPt.X,e.Bot.X,e.Top.X)&&this.AddJoin(v.OutPt1,q,v.OffPt)}0<=d.OutIdx&&null!==d.PrevInAEL&&d.PrevInAEL.Curr.X==d.Bot.X&&0<=d.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(d.PrevInAEL,
-d,this.m_UseFullRange)&&0!==d.WindDelta&&0!==d.PrevInAEL.WindDelta&&(n=this.AddOutPt(d.PrevInAEL,d.Bot),this.AddJoin(q,n,d.Top));if(d.NextInAEL!=e&&(0<=e.OutIdx&&0<=e.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(e.PrevInAEL,e,this.m_UseFullRange)&&0!==e.WindDelta&&0!==e.PrevInAEL.WindDelta&&(n=this.AddOutPt(e.PrevInAEL,e.Bot),this.AddJoin(q,n,e.Top)),q=d.NextInAEL,null!==q))for(;q!=e;)this.IntersectEdges(e,q,d.Curr,!1),q=q.NextInAEL}}};f.Clipper.prototype.InsertEdgeIntoAEL=function(b,d){if(null===
+this.m_CurrentLM.LeftBound,e=this.m_CurrentLM.RightBound;this.PopLocalMinima();var r=null;null===d?(this.InsertEdgeIntoAEL(e,null),this.SetWindingCount(e),this.IsContributing(e)&&(r=this.AddOutPt(e,e.Bot))):(null==e?(this.InsertEdgeIntoAEL(d,null),this.SetWindingCount(d),this.IsContributing(d)&&(r=this.AddOutPt(d,d.Bot))):(this.InsertEdgeIntoAEL(d,null),this.InsertEdgeIntoAEL(e,d),this.SetWindingCount(d),e.WindCnt=d.WindCnt,e.WindCnt2=d.WindCnt2,this.IsContributing(d)&&(r=this.AddLocalMinPoly(d,e,
+d.Bot))),this.InsertScanbeam(d.Top.Y));null!=e&&(f.ClipperBase.IsHorizontal(e)?this.AddEdgeToSEL(e):this.InsertScanbeam(e.Top.Y));if(null!=d&&null!=e){if(null!==r&&f.ClipperBase.IsHorizontal(e)&&0<this.m_GhostJoins.length&&0!==e.WindDelta)for(var n=0,k=this.m_GhostJoins.length;n<k;n++){var u=this.m_GhostJoins[n];this.HorzSegmentsOverlap(u.OutPt1.Pt.X,u.OffPt.X,e.Bot.X,e.Top.X)&&this.AddJoin(u.OutPt1,r,u.OffPt)}0<=d.OutIdx&&null!==d.PrevInAEL&&d.PrevInAEL.Curr.X==d.Bot.X&&0<=d.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(d.PrevInAEL,
+d,this.m_UseFullRange)&&0!==d.WindDelta&&0!==d.PrevInAEL.WindDelta&&(n=this.AddOutPt(d.PrevInAEL,d.Bot),this.AddJoin(r,n,d.Top));if(d.NextInAEL!=e&&(0<=e.OutIdx&&0<=e.PrevInAEL.OutIdx&&f.ClipperBase.SlopesEqual(e.PrevInAEL,e,this.m_UseFullRange)&&0!==e.WindDelta&&0!==e.PrevInAEL.WindDelta&&(n=this.AddOutPt(e.PrevInAEL,e.Bot),this.AddJoin(r,n,e.Top)),r=d.NextInAEL,null!==r))for(;r!=e;)this.IntersectEdges(e,r,d.Curr,!1),r=r.NextInAEL}}};f.Clipper.prototype.InsertEdgeIntoAEL=function(b,d){if(null===
this.m_ActiveEdges)b.PrevInAEL=null,b.NextInAEL=null,this.m_ActiveEdges=b;else if(null===d&&this.E2InsertsBeforeE1(this.m_ActiveEdges,b))b.PrevInAEL=null,b.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges=this.m_ActiveEdges.PrevInAEL=b;else{for(null===d&&(d=this.m_ActiveEdges);null!==d.NextInAEL&&!this.E2InsertsBeforeE1(d.NextInAEL,b);)d=d.NextInAEL;b.NextInAEL=d.NextInAEL;null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=b);b.PrevInAEL=d;d.NextInAEL=b}};f.Clipper.prototype.E2InsertsBeforeE1=function(b,d){return d.Curr.X==
b.Curr.X?d.Top.Y>b.Top.Y?d.Top.X<f.Clipper.TopX(b,d.Top.Y):b.Top.X>f.Clipper.TopX(d,b.Top.Y):d.Curr.X<b.Curr.X};f.Clipper.prototype.IsEvenOddFillType=function(b){return b.PolyTyp==f.PolyType.ptSubject?this.m_SubjFillType==f.PolyFillType.pftEvenOdd:this.m_ClipFillType==f.PolyFillType.pftEvenOdd};f.Clipper.prototype.IsEvenOddAltFillType=function(b){return b.PolyTyp==f.PolyType.ptSubject?this.m_ClipFillType==f.PolyFillType.pftEvenOdd:this.m_SubjFillType==f.PolyFillType.pftEvenOdd};f.Clipper.prototype.IsContributing=
function(b){var d,e;b.PolyTyp==f.PolyType.ptSubject?(d=this.m_SubjFillType,e=this.m_ClipFillType):(d=this.m_ClipFillType,e=this.m_SubjFillType);switch(d){case f.PolyFillType.pftEvenOdd:if(0===b.WindDelta&&1!=b.WindCnt)return!1;break;case f.PolyFillType.pftNonZero:if(1!=Math.abs(b.WindCnt))return!1;break;case f.PolyFillType.pftPositive:if(1!=b.WindCnt)return!1;break;default:if(-1!=b.WindCnt)return!1}switch(this.m_ClipType){case f.ClipType.ctIntersection:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==
b.WindCnt2;case f.PolyFillType.pftPositive:return 0<b.WindCnt2;default:return 0>b.WindCnt2}case f.ClipType.ctUnion:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}case f.ClipType.ctDifference:if(b.PolyTyp==f.PolyType.ptSubject)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;
default:return 0<=b.WindCnt2}else switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==b.WindCnt2;case f.PolyFillType.pftPositive:return 0<b.WindCnt2;default:return 0>b.WindCnt2}case f.ClipType.ctXor:if(0===b.WindDelta)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}}return!0};f.Clipper.prototype.SetWindingCount=function(b){for(var d=b.PrevInAEL;null!==
-d&&(d.PolyTyp!=b.PolyTyp||0===d.WindDelta);)d=d.PrevInAEL;if(null===d)b.WindCnt=0===b.WindDelta?1:b.WindDelta,b.WindCnt2=0,d=this.m_ActiveEdges;else{if(0===b.WindDelta&&this.m_ClipType!=f.ClipType.ctUnion)b.WindCnt=1;else if(this.IsEvenOddFillType(b))if(0===b.WindDelta){for(var e=!0,q=d.PrevInAEL;null!==q;)q.PolyTyp==d.PolyTyp&&0!==q.WindDelta&&(e=!e),q=q.PrevInAEL;b.WindCnt=e?0:1}else b.WindCnt=b.WindDelta;else b.WindCnt=0>d.WindCnt*d.WindDelta?1<Math.abs(d.WindCnt)?0>d.WindDelta*b.WindDelta?d.WindCnt:
+d&&(d.PolyTyp!=b.PolyTyp||0===d.WindDelta);)d=d.PrevInAEL;if(null===d)b.WindCnt=0===b.WindDelta?1:b.WindDelta,b.WindCnt2=0,d=this.m_ActiveEdges;else{if(0===b.WindDelta&&this.m_ClipType!=f.ClipType.ctUnion)b.WindCnt=1;else if(this.IsEvenOddFillType(b))if(0===b.WindDelta){for(var e=!0,r=d.PrevInAEL;null!==r;)r.PolyTyp==d.PolyTyp&&0!==r.WindDelta&&(e=!e),r=r.PrevInAEL;b.WindCnt=e?0:1}else b.WindCnt=b.WindDelta;else b.WindCnt=0>d.WindCnt*d.WindDelta?1<Math.abs(d.WindCnt)?0>d.WindDelta*b.WindDelta?d.WindCnt:
d.WindCnt+b.WindDelta:0===b.WindDelta?1:b.WindDelta:0===b.WindDelta?0>d.WindCnt?d.WindCnt-1:d.WindCnt+1:0>d.WindDelta*b.WindDelta?d.WindCnt:d.WindCnt+b.WindDelta;b.WindCnt2=d.WindCnt2;d=d.NextInAEL}if(this.IsEvenOddAltFillType(b))for(;d!=b;)0!==d.WindDelta&&(b.WindCnt2=0===b.WindCnt2?1:0),d=d.NextInAEL;else for(;d!=b;)b.WindCnt2+=d.WindDelta,d=d.NextInAEL};f.Clipper.prototype.AddEdgeToSEL=function(b){null===this.m_SortedEdges?(this.m_SortedEdges=b,b.PrevInSEL=null,b.NextInSEL=null):(b.NextInSEL=this.m_SortedEdges,
b.PrevInSEL=null,this.m_SortedEdges=this.m_SortedEdges.PrevInSEL=b)};f.Clipper.prototype.CopyAELToSEL=function(){var b=this.m_ActiveEdges;for(this.m_SortedEdges=b;null!==b;)b.PrevInSEL=b.PrevInAEL,b=b.NextInSEL=b.NextInAEL};f.Clipper.prototype.SwapPositionsInAEL=function(b,d){if(b.NextInAEL!=b.PrevInAEL&&d.NextInAEL!=d.PrevInAEL){if(b.NextInAEL==d){var e=d.NextInAEL;null!==e&&(e.PrevInAEL=b);var f=b.PrevInAEL;null!==f&&(f.NextInAEL=d);d.PrevInAEL=f;d.NextInAEL=b;b.PrevInAEL=d;b.NextInAEL=e}else d.NextInAEL==
b?(e=b.NextInAEL,null!==e&&(e.PrevInAEL=d),f=d.PrevInAEL,null!==f&&(f.NextInAEL=b),b.PrevInAEL=f,b.NextInAEL=d,d.PrevInAEL=b,d.NextInAEL=e):(e=b.NextInAEL,f=b.PrevInAEL,b.NextInAEL=d.NextInAEL,null!==b.NextInAEL&&(b.NextInAEL.PrevInAEL=b),b.PrevInAEL=d.PrevInAEL,null!==b.PrevInAEL&&(b.PrevInAEL.NextInAEL=b),d.NextInAEL=e,null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=d),d.PrevInAEL=f,null!==d.PrevInAEL&&(d.PrevInAEL.NextInAEL=d));null===b.PrevInAEL?this.m_ActiveEdges=b:null===d.PrevInAEL&&(this.m_ActiveEdges=
d)}};f.Clipper.prototype.SwapPositionsInSEL=function(b,d){if(null!==b.NextInSEL||null!==b.PrevInSEL)if(null!==d.NextInSEL||null!==d.PrevInSEL){if(b.NextInSEL==d){var e=d.NextInSEL;null!==e&&(e.PrevInSEL=b);var f=b.PrevInSEL;null!==f&&(f.NextInSEL=d);d.PrevInSEL=f;d.NextInSEL=b;b.PrevInSEL=d;b.NextInSEL=e}else d.NextInSEL==b?(e=b.NextInSEL,null!==e&&(e.PrevInSEL=d),f=d.PrevInSEL,null!==f&&(f.NextInSEL=b),b.PrevInSEL=f,b.NextInSEL=d,d.PrevInSEL=b,d.NextInSEL=e):(e=b.NextInSEL,f=b.PrevInSEL,b.NextInSEL=
d.NextInSEL,null!==b.NextInSEL&&(b.NextInSEL.PrevInSEL=b),b.PrevInSEL=d.PrevInSEL,null!==b.PrevInSEL&&(b.PrevInSEL.NextInSEL=b),d.NextInSEL=e,null!==d.NextInSEL&&(d.NextInSEL.PrevInSEL=d),d.PrevInSEL=f,null!==d.PrevInSEL&&(d.PrevInSEL.NextInSEL=d));null===b.PrevInSEL?this.m_SortedEdges=b:null===d.PrevInSEL&&(this.m_SortedEdges=d)}};f.Clipper.prototype.AddLocalMaxPoly=function(b,d,e){this.AddOutPt(b,e);0==d.WindDelta&&this.AddOutPt(d,e);b.OutIdx==d.OutIdx?(b.OutIdx=-1,d.OutIdx=-1):b.OutIdx<d.OutIdx?
-this.AppendPolygon(b,d):this.AppendPolygon(d,b)};f.Clipper.prototype.AddLocalMinPoly=function(b,d,e){var q,n;f.ClipperBase.IsHorizontal(d)||b.Dx>d.Dx?(q=this.AddOutPt(b,e),d.OutIdx=b.OutIdx,b.Side=f.EdgeSide.esLeft,d.Side=f.EdgeSide.esRight,n=b,b=n.PrevInAEL==d?d.PrevInAEL:n.PrevInAEL):(q=this.AddOutPt(d,e),b.OutIdx=d.OutIdx,b.Side=f.EdgeSide.esRight,d.Side=f.EdgeSide.esLeft,n=d,b=n.PrevInAEL==b?b.PrevInAEL:n.PrevInAEL);null!==b&&0<=b.OutIdx&&f.Clipper.TopX(b,e.Y)==f.Clipper.TopX(n,e.Y)&&f.ClipperBase.SlopesEqual(n,
-b,this.m_UseFullRange)&&0!==n.WindDelta&&0!==b.WindDelta&&(e=this.AddOutPt(b,e),this.AddJoin(q,e,n.Top));return q};f.Clipper.prototype.CreateOutRec=function(){var b=new f.OutRec;b.Idx=-1;b.IsHole=!1;b.IsOpen=!1;b.FirstLeft=null;b.Pts=null;b.BottomPt=null;b.PolyNode=null;this.m_PolyOuts.push(b);b.Idx=this.m_PolyOuts.length-1;return b};f.Clipper.prototype.AddOutPt=function(b,d){var e=b.Side==f.EdgeSide.esLeft;if(0>b.OutIdx){var q=this.CreateOutRec();q.IsOpen=0===b.WindDelta;var n=new f.OutPt;q.Pts=
-n;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=n;n.Prev=n;q.IsOpen||this.SetHoleState(b,q);b.OutIdx=q.Idx}else{var q=this.m_PolyOuts[b.OutIdx],k=q.Pts;if(e&&f.IntPoint.op_Equality(d,k.Pt))return k;if(!e&&f.IntPoint.op_Equality(d,k.Prev.Pt))return k.Prev;n=new f.OutPt;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=k;n.Prev=k.Prev;n.Prev.Next=n;k.Prev=n;e&&(q.Pts=n)}return n};f.Clipper.prototype.SwapPoints=function(b,d){var e=new f.IntPoint(b.Value);b.Value.X=d.Value.X;
+this.AppendPolygon(b,d):this.AppendPolygon(d,b)};f.Clipper.prototype.AddLocalMinPoly=function(b,d,e){var r,n;f.ClipperBase.IsHorizontal(d)||b.Dx>d.Dx?(r=this.AddOutPt(b,e),d.OutIdx=b.OutIdx,b.Side=f.EdgeSide.esLeft,d.Side=f.EdgeSide.esRight,n=b,b=n.PrevInAEL==d?d.PrevInAEL:n.PrevInAEL):(r=this.AddOutPt(d,e),b.OutIdx=d.OutIdx,b.Side=f.EdgeSide.esRight,d.Side=f.EdgeSide.esLeft,n=d,b=n.PrevInAEL==b?b.PrevInAEL:n.PrevInAEL);null!==b&&0<=b.OutIdx&&f.Clipper.TopX(b,e.Y)==f.Clipper.TopX(n,e.Y)&&f.ClipperBase.SlopesEqual(n,
+b,this.m_UseFullRange)&&0!==n.WindDelta&&0!==b.WindDelta&&(e=this.AddOutPt(b,e),this.AddJoin(r,e,n.Top));return r};f.Clipper.prototype.CreateOutRec=function(){var b=new f.OutRec;b.Idx=-1;b.IsHole=!1;b.IsOpen=!1;b.FirstLeft=null;b.Pts=null;b.BottomPt=null;b.PolyNode=null;this.m_PolyOuts.push(b);b.Idx=this.m_PolyOuts.length-1;return b};f.Clipper.prototype.AddOutPt=function(b,d){var e=b.Side==f.EdgeSide.esLeft;if(0>b.OutIdx){var r=this.CreateOutRec();r.IsOpen=0===b.WindDelta;var n=new f.OutPt;r.Pts=
+n;n.Idx=r.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=n;n.Prev=n;r.IsOpen||this.SetHoleState(b,r);b.OutIdx=r.Idx}else{var r=this.m_PolyOuts[b.OutIdx],k=r.Pts;if(e&&f.IntPoint.op_Equality(d,k.Pt))return k;if(!e&&f.IntPoint.op_Equality(d,k.Prev.Pt))return k.Prev;n=new f.OutPt;n.Idx=r.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=k;n.Prev=k.Prev;n.Prev.Next=n;k.Prev=n;e&&(r.Pts=n)}return n};f.Clipper.prototype.SwapPoints=function(b,d){var e=new f.IntPoint(b.Value);b.Value.X=d.Value.X;
b.Value.Y=d.Value.Y;f.use_xyz&&(b.Value.Z=d.Value.Z);d.Value.X=e.X;d.Value.Y=e.Y;f.use_xyz&&(d.Value.Z=e.Z)};f.Clipper.prototype.HorzSegmentsOverlap=function(b,d,e,f){var n;b>d&&(n=b,b=d,d=n);e>f&&(n=e,e=f,f=n);return b<f&&e<d};f.Clipper.prototype.SetHoleState=function(b,d){for(var e=!1,f=b.PrevInAEL;null!==f;)0<=f.OutIdx&&0!=f.WindDelta&&(e=!e,null===d.FirstLeft&&(d.FirstLeft=this.m_PolyOuts[f.OutIdx])),f=f.PrevInAEL;e&&(d.IsHole=!0)};f.Clipper.prototype.GetDx=function(b,d){return b.Y==d.Y?f.ClipperBase.horizontal:
-(d.X-b.X)/(d.Y-b.Y)};f.Clipper.prototype.FirstIsBottomPt=function(b,d){for(var e=b.Prev;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Prev;for(var q=Math.abs(this.GetDx(b.Pt,e.Pt)),e=b.Next;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Next;for(var n=Math.abs(this.GetDx(b.Pt,e.Pt)),e=d.Prev;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Prev;for(var k=Math.abs(this.GetDx(d.Pt,e.Pt)),e=d.Next;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Next;e=Math.abs(this.GetDx(d.Pt,e.Pt));return q>=k&&q>=e||n>=k&&n>=
+(d.X-b.X)/(d.Y-b.Y)};f.Clipper.prototype.FirstIsBottomPt=function(b,d){for(var e=b.Prev;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Prev;for(var r=Math.abs(this.GetDx(b.Pt,e.Pt)),e=b.Next;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Next;for(var n=Math.abs(this.GetDx(b.Pt,e.Pt)),e=d.Prev;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Prev;for(var k=Math.abs(this.GetDx(d.Pt,e.Pt)),e=d.Next;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Next;e=Math.abs(this.GetDx(d.Pt,e.Pt));return r>=k&&r>=e||n>=k&&n>=
e};f.Clipper.prototype.GetBottomPt=function(b){for(var d=null,e=b.Next;e!=b;)e.Pt.Y>b.Pt.Y?(b=e,d=null):e.Pt.Y==b.Pt.Y&&e.Pt.X<=b.Pt.X&&(e.Pt.X<b.Pt.X?(d=null,b=e):e.Next!=b&&e.Prev!=b&&(d=e)),e=e.Next;if(null!==d)for(;d!=e;)for(this.FirstIsBottomPt(e,d)||(b=d),d=d.Next;f.IntPoint.op_Inequality(d.Pt,b.Pt);)d=d.Next;return b};f.Clipper.prototype.GetLowermostRec=function(b,d){null===b.BottomPt&&(b.BottomPt=this.GetBottomPt(b.Pts));null===d.BottomPt&&(d.BottomPt=this.GetBottomPt(d.Pts));var e=b.BottomPt,
-f=d.BottomPt;return e.Pt.Y>f.Pt.Y?b:e.Pt.Y<f.Pt.Y?d:e.Pt.X<f.Pt.X?b:e.Pt.X>f.Pt.X?d:e.Next==e?d:f.Next==f?b:this.FirstIsBottomPt(e,f)?b:d};f.Clipper.prototype.Param1RightOfParam2=function(b,d){do if(b=b.FirstLeft,b==d)return!0;while(null!==b);return!1};f.Clipper.prototype.GetOutRec=function(b){for(b=this.m_PolyOuts[b];b!=this.m_PolyOuts[b.Idx];)b=this.m_PolyOuts[b.Idx];return b};f.Clipper.prototype.AppendPolygon=function(b,d){var e=this.m_PolyOuts[b.OutIdx],q=this.m_PolyOuts[d.OutIdx],n;n=this.Param1RightOfParam2(e,
-q)?q:this.Param1RightOfParam2(q,e)?e:this.GetLowermostRec(e,q);var k=e.Pts,v=k.Prev,C=q.Pts,p=C.Prev;b.Side==f.EdgeSide.esLeft?(d.Side==f.EdgeSide.esLeft?(this.ReversePolyPtLinks(C),C.Next=k,k.Prev=C,v.Next=p,p.Prev=v,e.Pts=p):(p.Next=k,k.Prev=p,C.Prev=v,v.Next=C,e.Pts=C),k=f.EdgeSide.esLeft):(d.Side==f.EdgeSide.esRight?(this.ReversePolyPtLinks(C),v.Next=p,p.Prev=v,C.Next=k,k.Prev=C):(v.Next=C,C.Prev=v,k.Prev=p,p.Next=k),k=f.EdgeSide.esRight);e.BottomPt=null;n==q&&(q.FirstLeft!=e&&(e.FirstLeft=q.FirstLeft),
-e.IsHole=q.IsHole);q.Pts=null;q.BottomPt=null;q.FirstLeft=e;n=b.OutIdx;v=d.OutIdx;b.OutIdx=-1;d.OutIdx=-1;for(C=this.m_ActiveEdges;null!==C;){if(C.OutIdx==v){C.OutIdx=n;C.Side=k;break}C=C.NextInAEL}q.Idx=e.Idx};f.Clipper.prototype.ReversePolyPtLinks=function(b){if(null!==b){var d,e;d=b;do e=d.Next,d.Next=d.Prev,d=d.Prev=e;while(d!=b)}};f.Clipper.SwapSides=function(b,d){var e=b.Side;b.Side=d.Side;d.Side=e};f.Clipper.SwapPolyIndexes=function(b,d){var e=b.OutIdx;b.OutIdx=d.OutIdx;d.OutIdx=e};f.Clipper.prototype.IntersectEdges=
-function(b,d,e){var q=0<=b.OutIdx,n=0<=d.OutIdx;f.use_xyz&&this.SetZ(e,b,d);if(!f.use_lines||0!==b.WindDelta&&0!==d.WindDelta){if(b.PolyTyp==d.PolyTyp)if(this.IsEvenOddFillType(b)){var k=b.WindCnt;b.WindCnt=d.WindCnt;d.WindCnt=k}else b.WindCnt=0===b.WindCnt+d.WindDelta?-b.WindCnt:b.WindCnt+d.WindDelta,d.WindCnt=0===d.WindCnt-b.WindDelta?-d.WindCnt:d.WindCnt-b.WindDelta;else this.IsEvenOddFillType(d)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2+=d.WindDelta,this.IsEvenOddFillType(b)?d.WindCnt2=0===d.WindCnt2?
-1:0:d.WindCnt2-=b.WindDelta;var v,C,p;b.PolyTyp==f.PolyType.ptSubject?(v=this.m_SubjFillType,p=this.m_ClipFillType):(v=this.m_ClipFillType,p=this.m_SubjFillType);d.PolyTyp==f.PolyType.ptSubject?(C=this.m_SubjFillType,k=this.m_ClipFillType):(C=this.m_ClipFillType,k=this.m_SubjFillType);switch(v){case f.PolyFillType.pftPositive:v=b.WindCnt;break;case f.PolyFillType.pftNegative:v=-b.WindCnt;break;default:v=Math.abs(b.WindCnt)}switch(C){case f.PolyFillType.pftPositive:C=d.WindCnt;break;case f.PolyFillType.pftNegative:C=
--d.WindCnt;break;default:C=Math.abs(d.WindCnt)}if(q&&n)0!=v&&1!=v||0!=C&&1!=C||b.PolyTyp!=d.PolyTyp&&this.m_ClipType!=f.ClipType.ctXor?this.AddLocalMaxPoly(b,d,e):(this.AddOutPt(b,e),this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d));else if(q){if(0===C||1==C)this.AddOutPt(b,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(n){if(0===v||1==v)this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(!(0!=v&&1!=v||0!=C&&1!=C)){switch(p){case f.PolyFillType.pftPositive:q=
-b.WindCnt2;break;case f.PolyFillType.pftNegative:q=-b.WindCnt2;break;default:q=Math.abs(b.WindCnt2)}switch(k){case f.PolyFillType.pftPositive:n=d.WindCnt2;break;case f.PolyFillType.pftNegative:n=-d.WindCnt2;break;default:n=Math.abs(d.WindCnt2)}if(b.PolyTyp!=d.PolyTyp)this.AddLocalMinPoly(b,d,e);else if(1==v&&1==C)switch(this.m_ClipType){case f.ClipType.ctIntersection:0<q&&0<n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctUnion:0>=q&&0>=n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctDifference:(b.PolyTyp==
-f.PolyType.ptClip&&0<q&&0<n||b.PolyTyp==f.PolyType.ptSubject&&0>=q&&0>=n)&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctXor:this.AddLocalMinPoly(b,d,e)}else f.Clipper.SwapSides(b,d)}}else if(0!=b.WindDelta||0!=d.WindDelta)b.PolyTyp==d.PolyTyp&&b.WindDelta!=d.WindDelta&&this.m_ClipType==f.ClipType.ctUnion?0===b.WindDelta?n&&(this.AddOutPt(b,e),q&&(b.OutIdx=-1)):q&&(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):b.PolyTyp!=d.PolyTyp&&(0!==b.WindDelta||1!=Math.abs(d.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&
-0!==d.WindCnt2?0!==d.WindDelta||1!=Math.abs(b.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&0!==b.WindCnt2||(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):(this.AddOutPt(b,e),q&&(b.OutIdx=-1)))};f.Clipper.prototype.DeleteFromAEL=function(b){var d=b.PrevInAEL,e=b.NextInAEL;if(null!==d||null!==e||b==this.m_ActiveEdges)null!==d?d.NextInAEL=e:this.m_ActiveEdges=e,null!==e&&(e.PrevInAEL=d),b.NextInAEL=null,b.PrevInAEL=null};f.Clipper.prototype.DeleteFromSEL=function(b){var d=b.PrevInSEL,e=b.NextInSEL;if(null!==
+f=d.BottomPt;return e.Pt.Y>f.Pt.Y?b:e.Pt.Y<f.Pt.Y?d:e.Pt.X<f.Pt.X?b:e.Pt.X>f.Pt.X?d:e.Next==e?d:f.Next==f?b:this.FirstIsBottomPt(e,f)?b:d};f.Clipper.prototype.Param1RightOfParam2=function(b,d){do if(b=b.FirstLeft,b==d)return!0;while(null!==b);return!1};f.Clipper.prototype.GetOutRec=function(b){for(b=this.m_PolyOuts[b];b!=this.m_PolyOuts[b.Idx];)b=this.m_PolyOuts[b.Idx];return b};f.Clipper.prototype.AppendPolygon=function(b,d){var e=this.m_PolyOuts[b.OutIdx],r=this.m_PolyOuts[d.OutIdx],n;n=this.Param1RightOfParam2(e,
+r)?r:this.Param1RightOfParam2(r,e)?e:this.GetLowermostRec(e,r);var k=e.Pts,u=k.Prev,C=r.Pts,p=C.Prev;b.Side==f.EdgeSide.esLeft?(d.Side==f.EdgeSide.esLeft?(this.ReversePolyPtLinks(C),C.Next=k,k.Prev=C,u.Next=p,p.Prev=u,e.Pts=p):(p.Next=k,k.Prev=p,C.Prev=u,u.Next=C,e.Pts=C),k=f.EdgeSide.esLeft):(d.Side==f.EdgeSide.esRight?(this.ReversePolyPtLinks(C),u.Next=p,p.Prev=u,C.Next=k,k.Prev=C):(u.Next=C,C.Prev=u,k.Prev=p,p.Next=k),k=f.EdgeSide.esRight);e.BottomPt=null;n==r&&(r.FirstLeft!=e&&(e.FirstLeft=r.FirstLeft),
+e.IsHole=r.IsHole);r.Pts=null;r.BottomPt=null;r.FirstLeft=e;n=b.OutIdx;u=d.OutIdx;b.OutIdx=-1;d.OutIdx=-1;for(C=this.m_ActiveEdges;null!==C;){if(C.OutIdx==u){C.OutIdx=n;C.Side=k;break}C=C.NextInAEL}r.Idx=e.Idx};f.Clipper.prototype.ReversePolyPtLinks=function(b){if(null!==b){var d,e;d=b;do e=d.Next,d.Next=d.Prev,d=d.Prev=e;while(d!=b)}};f.Clipper.SwapSides=function(b,d){var e=b.Side;b.Side=d.Side;d.Side=e};f.Clipper.SwapPolyIndexes=function(b,d){var e=b.OutIdx;b.OutIdx=d.OutIdx;d.OutIdx=e};f.Clipper.prototype.IntersectEdges=
+function(b,d,e){var r=0<=b.OutIdx,n=0<=d.OutIdx;f.use_xyz&&this.SetZ(e,b,d);if(!f.use_lines||0!==b.WindDelta&&0!==d.WindDelta){if(b.PolyTyp==d.PolyTyp)if(this.IsEvenOddFillType(b)){var k=b.WindCnt;b.WindCnt=d.WindCnt;d.WindCnt=k}else b.WindCnt=0===b.WindCnt+d.WindDelta?-b.WindCnt:b.WindCnt+d.WindDelta,d.WindCnt=0===d.WindCnt-b.WindDelta?-d.WindCnt:d.WindCnt-b.WindDelta;else this.IsEvenOddFillType(d)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2+=d.WindDelta,this.IsEvenOddFillType(b)?d.WindCnt2=0===d.WindCnt2?
+1:0:d.WindCnt2-=b.WindDelta;var u,C,p;b.PolyTyp==f.PolyType.ptSubject?(u=this.m_SubjFillType,p=this.m_ClipFillType):(u=this.m_ClipFillType,p=this.m_SubjFillType);d.PolyTyp==f.PolyType.ptSubject?(C=this.m_SubjFillType,k=this.m_ClipFillType):(C=this.m_ClipFillType,k=this.m_SubjFillType);switch(u){case f.PolyFillType.pftPositive:u=b.WindCnt;break;case f.PolyFillType.pftNegative:u=-b.WindCnt;break;default:u=Math.abs(b.WindCnt)}switch(C){case f.PolyFillType.pftPositive:C=d.WindCnt;break;case f.PolyFillType.pftNegative:C=
+-d.WindCnt;break;default:C=Math.abs(d.WindCnt)}if(r&&n)0!=u&&1!=u||0!=C&&1!=C||b.PolyTyp!=d.PolyTyp&&this.m_ClipType!=f.ClipType.ctXor?this.AddLocalMaxPoly(b,d,e):(this.AddOutPt(b,e),this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d));else if(r){if(0===C||1==C)this.AddOutPt(b,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(n){if(0===u||1==u)this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(!(0!=u&&1!=u||0!=C&&1!=C)){switch(p){case f.PolyFillType.pftPositive:r=
+b.WindCnt2;break;case f.PolyFillType.pftNegative:r=-b.WindCnt2;break;default:r=Math.abs(b.WindCnt2)}switch(k){case f.PolyFillType.pftPositive:n=d.WindCnt2;break;case f.PolyFillType.pftNegative:n=-d.WindCnt2;break;default:n=Math.abs(d.WindCnt2)}if(b.PolyTyp!=d.PolyTyp)this.AddLocalMinPoly(b,d,e);else if(1==u&&1==C)switch(this.m_ClipType){case f.ClipType.ctIntersection:0<r&&0<n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctUnion:0>=r&&0>=n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctDifference:(b.PolyTyp==
+f.PolyType.ptClip&&0<r&&0<n||b.PolyTyp==f.PolyType.ptSubject&&0>=r&&0>=n)&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctXor:this.AddLocalMinPoly(b,d,e)}else f.Clipper.SwapSides(b,d)}}else if(0!=b.WindDelta||0!=d.WindDelta)b.PolyTyp==d.PolyTyp&&b.WindDelta!=d.WindDelta&&this.m_ClipType==f.ClipType.ctUnion?0===b.WindDelta?n&&(this.AddOutPt(b,e),r&&(b.OutIdx=-1)):r&&(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):b.PolyTyp!=d.PolyTyp&&(0!==b.WindDelta||1!=Math.abs(d.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&
+0!==d.WindCnt2?0!==d.WindDelta||1!=Math.abs(b.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&0!==b.WindCnt2||(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):(this.AddOutPt(b,e),r&&(b.OutIdx=-1)))};f.Clipper.prototype.DeleteFromAEL=function(b){var d=b.PrevInAEL,e=b.NextInAEL;if(null!==d||null!==e||b==this.m_ActiveEdges)null!==d?d.NextInAEL=e:this.m_ActiveEdges=e,null!==e&&(e.PrevInAEL=d),b.NextInAEL=null,b.PrevInAEL=null};f.Clipper.prototype.DeleteFromSEL=function(b){var d=b.PrevInSEL,e=b.NextInSEL;if(null!==
d||null!==e||b==this.m_SortedEdges)null!==d?d.NextInSEL=e:this.m_SortedEdges=e,null!==e&&(e.PrevInSEL=d),b.NextInSEL=null,b.PrevInSEL=null};f.Clipper.prototype.UpdateEdgeIntoAEL=function(b){null===b.NextInLML&&f.Error("UpdateEdgeIntoAEL: invalid call");var d=b.PrevInAEL,e=b.NextInAEL;b.NextInLML.OutIdx=b.OutIdx;null!==d?d.NextInAEL=b.NextInLML:this.m_ActiveEdges=b.NextInLML;null!==e&&(e.PrevInAEL=b.NextInLML);b.NextInLML.Side=b.Side;b.NextInLML.WindDelta=b.WindDelta;b.NextInLML.WindCnt=b.WindCnt;
b.NextInLML.WindCnt2=b.WindCnt2;b=b.NextInLML;b.Curr.X=b.Bot.X;b.Curr.Y=b.Bot.Y;f.use_xyz&&(b.Curr.Z=b.Bot.Z);b.PrevInAEL=d;b.NextInAEL=e;f.ClipperBase.IsHorizontal(b)||this.InsertScanbeam(b.Top.Y);return b};f.Clipper.prototype.ProcessHorizontals=function(b){for(var d=this.m_SortedEdges;null!==d;)this.DeleteFromSEL(d),this.ProcessHorizontal(d,b),d=this.m_SortedEdges};f.Clipper.prototype.GetHorzDirection=function(b,d){b.Bot.X<b.Top.X?(d.Left=b.Bot.X,d.Right=b.Top.X,d.Dir=f.Direction.dLeftToRight):
-(d.Left=b.Top.X,d.Right=b.Bot.X,d.Dir=f.Direction.dRightToLeft)};f.Clipper.prototype.ProcessHorizontal=function(b,d){var e={Dir:null,Left:null,Right:null};this.GetHorzDirection(b,e);for(var q=e.Dir,n=e.Left,k=e.Right,v=b,C=null;null!==v.NextInLML&&f.ClipperBase.IsHorizontal(v.NextInLML);)v=v.NextInLML;for(null===v.NextInLML&&(C=this.GetMaximaPair(v));;){for(var p=b==v,F=this.GetNextInAEL(b,q);null!==F&&!(F.Curr.X==b.Top.X&&null!==b.NextInLML&&F.Dx<b.NextInLML.Dx);){e=this.GetNextInAEL(F,q);if(q==
-f.Direction.dLeftToRight&&F.Curr.X<=k||q==f.Direction.dRightToLeft&&F.Curr.X>=n){if(F==C&&p){if(0<=b.OutIdx){q=this.AddOutPt(b,b.Top);for(e=this.m_SortedEdges;null!==e;)0<=e.OutIdx&&this.HorzSegmentsOverlap(b.Bot.X,b.Top.X,e.Bot.X,e.Top.X)&&(n=this.AddOutPt(e,e.Bot),this.AddJoin(n,q,e.Top)),e=e.NextInSEL;this.AddGhostJoin(q,b.Bot);this.AddLocalMaxPoly(b,C,b.Top)}this.DeleteFromAEL(b);this.DeleteFromAEL(C);return}if(q==f.Direction.dLeftToRight){var E=new f.IntPoint(F.Curr.X,b.Curr.Y);this.IntersectEdges(b,
-F,E)}else E=new f.IntPoint(F.Curr.X,b.Curr.Y),this.IntersectEdges(F,b,E);this.SwapPositionsInAEL(b,F)}else if(q==f.Direction.dLeftToRight&&F.Curr.X>=k||q==f.Direction.dRightToLeft&&F.Curr.X<=n)break;F=e}if(null!==b.NextInLML&&f.ClipperBase.IsHorizontal(b.NextInLML))b=this.UpdateEdgeIntoAEL(b),0<=b.OutIdx&&this.AddOutPt(b,b.Bot),e={Dir:q,Left:n,Right:k},this.GetHorzDirection(b,e),q=e.Dir,n=e.Left,k=e.Right;else break}null!==b.NextInLML?0<=b.OutIdx?(q=this.AddOutPt(b,b.Top),d&&this.AddGhostJoin(q,b.Bot),
-b=this.UpdateEdgeIntoAEL(b),0!==b.WindDelta&&(C=b.PrevInAEL,e=b.NextInAEL,null!==C&&C.Curr.X==b.Bot.X&&C.Curr.Y==b.Bot.Y&&0!==C.WindDelta&&0<=C.OutIdx&&C.Curr.Y>C.Top.Y&&f.ClipperBase.SlopesEqual(b,C,this.m_UseFullRange)?(n=this.AddOutPt(C,b.Bot),this.AddJoin(q,n,b.Top)):null!==e&&e.Curr.X==b.Bot.X&&e.Curr.Y==b.Bot.Y&&0!==e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&f.ClipperBase.SlopesEqual(b,e,this.m_UseFullRange)&&(n=this.AddOutPt(e,b.Bot),this.AddJoin(q,n,b.Top)))):this.UpdateEdgeIntoAEL(b):(0<=
+(d.Left=b.Top.X,d.Right=b.Bot.X,d.Dir=f.Direction.dRightToLeft)};f.Clipper.prototype.ProcessHorizontal=function(b,d){var e={Dir:null,Left:null,Right:null};this.GetHorzDirection(b,e);for(var r=e.Dir,n=e.Left,k=e.Right,u=b,C=null;null!==u.NextInLML&&f.ClipperBase.IsHorizontal(u.NextInLML);)u=u.NextInLML;for(null===u.NextInLML&&(C=this.GetMaximaPair(u));;){for(var p=b==u,E=this.GetNextInAEL(b,r);null!==E&&!(E.Curr.X==b.Top.X&&null!==b.NextInLML&&E.Dx<b.NextInLML.Dx);){e=this.GetNextInAEL(E,r);if(r==
+f.Direction.dLeftToRight&&E.Curr.X<=k||r==f.Direction.dRightToLeft&&E.Curr.X>=n){if(E==C&&p){if(0<=b.OutIdx){r=this.AddOutPt(b,b.Top);for(e=this.m_SortedEdges;null!==e;)0<=e.OutIdx&&this.HorzSegmentsOverlap(b.Bot.X,b.Top.X,e.Bot.X,e.Top.X)&&(n=this.AddOutPt(e,e.Bot),this.AddJoin(n,r,e.Top)),e=e.NextInSEL;this.AddGhostJoin(r,b.Bot);this.AddLocalMaxPoly(b,C,b.Top)}this.DeleteFromAEL(b);this.DeleteFromAEL(C);return}if(r==f.Direction.dLeftToRight){var F=new f.IntPoint(E.Curr.X,b.Curr.Y);this.IntersectEdges(b,
+E,F)}else F=new f.IntPoint(E.Curr.X,b.Curr.Y),this.IntersectEdges(E,b,F);this.SwapPositionsInAEL(b,E)}else if(r==f.Direction.dLeftToRight&&E.Curr.X>=k||r==f.Direction.dRightToLeft&&E.Curr.X<=n)break;E=e}if(null!==b.NextInLML&&f.ClipperBase.IsHorizontal(b.NextInLML))b=this.UpdateEdgeIntoAEL(b),0<=b.OutIdx&&this.AddOutPt(b,b.Bot),e={Dir:r,Left:n,Right:k},this.GetHorzDirection(b,e),r=e.Dir,n=e.Left,k=e.Right;else break}null!==b.NextInLML?0<=b.OutIdx?(r=this.AddOutPt(b,b.Top),d&&this.AddGhostJoin(r,b.Bot),
+b=this.UpdateEdgeIntoAEL(b),0!==b.WindDelta&&(C=b.PrevInAEL,e=b.NextInAEL,null!==C&&C.Curr.X==b.Bot.X&&C.Curr.Y==b.Bot.Y&&0!==C.WindDelta&&0<=C.OutIdx&&C.Curr.Y>C.Top.Y&&f.ClipperBase.SlopesEqual(b,C,this.m_UseFullRange)?(n=this.AddOutPt(C,b.Bot),this.AddJoin(r,n,b.Top)):null!==e&&e.Curr.X==b.Bot.X&&e.Curr.Y==b.Bot.Y&&0!==e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&f.ClipperBase.SlopesEqual(b,e,this.m_UseFullRange)&&(n=this.AddOutPt(e,b.Bot),this.AddJoin(r,n,b.Top)))):this.UpdateEdgeIntoAEL(b):(0<=
b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b))};f.Clipper.prototype.GetNextInAEL=function(b,d){return d==f.Direction.dLeftToRight?b.NextInAEL:b.PrevInAEL};f.Clipper.prototype.IsMinima=function(b){return null!==b&&b.Prev.NextInLML!=b&&b.Next.NextInLML!=b};f.Clipper.prototype.IsMaxima=function(b,d){return null!==b&&b.Top.Y==d&&null===b.NextInLML};f.Clipper.prototype.IsIntermediate=function(b,d){return b.Top.Y==d&&null!==b.NextInLML};f.Clipper.prototype.GetMaximaPair=function(b){var d=null;
f.IntPoint.op_Equality(b.Next.Top,b.Top)&&null===b.Next.NextInLML?d=b.Next:f.IntPoint.op_Equality(b.Prev.Top,b.Top)&&null===b.Prev.NextInLML&&(d=b.Prev);return null===d||-2!=d.OutIdx&&(d.NextInAEL!=d.PrevInAEL||f.ClipperBase.IsHorizontal(d))?d:null};f.Clipper.prototype.ProcessIntersections=function(b){if(null==this.m_ActiveEdges)return!0;try{this.BuildIntersectList(b);if(0==this.m_IntersectList.length)return!0;if(1==this.m_IntersectList.length||this.FixupIntersectionOrder())this.ProcessIntersectList();
-else return!1}catch(d){this.m_SortedEdges=null,this.m_IntersectList.length=0,f.Error("ProcessIntersections error")}this.m_SortedEdges=null;return!0};f.Clipper.prototype.BuildIntersectList=function(b){if(null!==this.m_ActiveEdges){var d=this.m_ActiveEdges;for(this.m_SortedEdges=d;null!==d;)d.PrevInSEL=d.PrevInAEL,d.NextInSEL=d.NextInAEL,d.Curr.X=f.Clipper.TopX(d,b),d=d.NextInAEL;for(var e=!0;e&&null!==this.m_SortedEdges;){e=!1;for(d=this.m_SortedEdges;null!==d.NextInSEL;){b=d.NextInSEL;var q=new f.IntPoint;
-d.Curr.X>b.Curr.X?(this.IntersectPoint(d,b,q),e=new f.IntersectNode,e.Edge1=d,e.Edge2=b,e.Pt.X=q.X,e.Pt.Y=q.Y,f.use_xyz&&(e.Pt.Z=q.Z),this.m_IntersectList.push(e),this.SwapPositionsInSEL(d,b),e=!0):d=b}if(null!==d.PrevInSEL)d.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};f.Clipper.prototype.EdgesAdjacent=function(b){return b.Edge1.NextInSEL==b.Edge2||b.Edge1.PrevInSEL==b.Edge2};f.Clipper.IntersectNodeSort=function(b,d){return d.Pt.Y-b.Pt.Y};f.Clipper.prototype.FixupIntersectionOrder=
+else return!1}catch(d){this.m_SortedEdges=null,this.m_IntersectList.length=0,f.Error("ProcessIntersections error")}this.m_SortedEdges=null;return!0};f.Clipper.prototype.BuildIntersectList=function(b){if(null!==this.m_ActiveEdges){var d=this.m_ActiveEdges;for(this.m_SortedEdges=d;null!==d;)d.PrevInSEL=d.PrevInAEL,d.NextInSEL=d.NextInAEL,d.Curr.X=f.Clipper.TopX(d,b),d=d.NextInAEL;for(var e=!0;e&&null!==this.m_SortedEdges;){e=!1;for(d=this.m_SortedEdges;null!==d.NextInSEL;){b=d.NextInSEL;var r=new f.IntPoint;
+d.Curr.X>b.Curr.X?(this.IntersectPoint(d,b,r),e=new f.IntersectNode,e.Edge1=d,e.Edge2=b,e.Pt.X=r.X,e.Pt.Y=r.Y,f.use_xyz&&(e.Pt.Z=r.Z),this.m_IntersectList.push(e),this.SwapPositionsInSEL(d,b),e=!0):d=b}if(null!==d.PrevInSEL)d.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};f.Clipper.prototype.EdgesAdjacent=function(b){return b.Edge1.NextInSEL==b.Edge2||b.Edge1.PrevInSEL==b.Edge2};f.Clipper.IntersectNodeSort=function(b,d){return d.Pt.Y-b.Pt.Y};f.Clipper.prototype.FixupIntersectionOrder=
function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer);this.CopyAELToSEL();for(var b=this.m_IntersectList.length,d=0;d<b;d++){if(!this.EdgesAdjacent(this.m_IntersectList[d])){for(var e=d+1;e<b&&!this.EdgesAdjacent(this.m_IntersectList[e]);)e++;if(e==b)return!1;var f=this.m_IntersectList[d];this.m_IntersectList[d]=this.m_IntersectList[e];this.m_IntersectList[e]=f}this.SwapPositionsInSEL(this.m_IntersectList[d].Edge1,this.m_IntersectList[d].Edge2)}return!0};f.Clipper.prototype.ProcessIntersectList=
-function(){for(var b=0,d=this.m_IntersectList.length;b<d;b++){var e=this.m_IntersectList[b];this.IntersectEdges(e.Edge1,e.Edge2,e.Pt);this.SwapPositionsInAEL(e.Edge1,e.Edge2)}this.m_IntersectList.length=0};I=function(b){return 0>b?Math.ceil(b-.5):Math.round(b)};Jb=function(b){return 0>b?Math.ceil(b-.5):Math.floor(b+.5)};Qa=function(b){return 0>b?-Math.round(Math.abs(b)):Math.round(b)};ab=function(b){if(0>b)return b-=.5,-2147483648>b?Math.ceil(b):b|0;b+=.5;return 2147483647<b?Math.floor(b):b|0};f.Clipper.Round=
-Y?I:nb?Qa:Xb?ab:Jb;f.Clipper.TopX=function(b,d){return d==b.Top.Y?b.Top.X:b.Bot.X+f.Clipper.Round(b.Dx*(d-b.Bot.Y))};f.Clipper.prototype.IntersectPoint=function(b,d,e){e.X=0;e.Y=0;var q,n;if(b.Dx==d.Dx)e.Y=b.Curr.Y,e.X=f.Clipper.TopX(b,e.Y);else{if(0===b.Delta.X)e.X=b.Bot.X,f.ClipperBase.IsHorizontal(d)?e.Y=d.Bot.Y:(n=d.Bot.Y-d.Bot.X/d.Dx,e.Y=f.Clipper.Round(e.X/d.Dx+n));else if(0===d.Delta.X)e.X=d.Bot.X,f.ClipperBase.IsHorizontal(b)?e.Y=b.Bot.Y:(q=b.Bot.Y-b.Bot.X/b.Dx,e.Y=f.Clipper.Round(e.X/b.Dx+
-q));else{q=b.Bot.X-b.Bot.Y*b.Dx;n=d.Bot.X-d.Bot.Y*d.Dx;var k=(n-q)/(b.Dx-d.Dx);e.Y=f.Clipper.Round(k);e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.Round(b.Dx*k+q):f.Clipper.Round(d.Dx*k+n)}if(e.Y<b.Top.Y||e.Y<d.Top.Y){if(b.Top.Y>d.Top.Y)return e.Y=b.Top.Y,e.X=f.Clipper.TopX(d,b.Top.Y),e.X<b.Top.X;e.Y=d.Top.Y;e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.TopX(b,e.Y):f.Clipper.TopX(d,e.Y)}e.Y>b.Curr.Y&&(e.Y=b.Curr.Y,e.X=Math.abs(b.Dx)>Math.abs(d.Dx)?f.Clipper.TopX(d,e.Y):f.Clipper.TopX(b,e.Y))}};f.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=
-function(b){for(var d=this.m_ActiveEdges;null!==d;){var e=this.IsMaxima(d,b);e&&(e=this.GetMaximaPair(d),e=null===e||!f.ClipperBase.IsHorizontal(e));if(e){var q=d.PrevInAEL;this.DoMaxima(d);d=null===q?this.m_ActiveEdges:q.NextInAEL}else{this.IsIntermediate(d,b)&&f.ClipperBase.IsHorizontal(d.NextInLML)?(d=this.UpdateEdgeIntoAEL(d),0<=d.OutIdx&&this.AddOutPt(d,d.Bot),this.AddEdgeToSEL(d)):(d.Curr.X=f.Clipper.TopX(d,b),d.Curr.Y=b);if(this.StrictlySimple&&(q=d.PrevInAEL,0<=d.OutIdx&&0!==d.WindDelta&&
-null!==q&&0<=q.OutIdx&&q.Curr.X==d.Curr.X&&0!==q.WindDelta)){var n=new f.IntPoint(d.Curr);f.use_xyz&&this.SetZ(n,q,d);e=this.AddOutPt(q,n);q=this.AddOutPt(d,n);this.AddJoin(e,q,n)}d=d.NextInAEL}}this.ProcessHorizontals(!0);for(d=this.m_ActiveEdges;null!==d;)this.IsIntermediate(d,b)&&(e=null,0<=d.OutIdx&&(e=this.AddOutPt(d,d.Top)),d=this.UpdateEdgeIntoAEL(d),q=d.PrevInAEL,n=d.NextInAEL,null!==q&&q.Curr.X==d.Bot.X&&q.Curr.Y==d.Bot.Y&&null!==e&&0<=q.OutIdx&&q.Curr.Y>q.Top.Y&&f.ClipperBase.SlopesEqual(d,
-q,this.m_UseFullRange)&&0!==d.WindDelta&&0!==q.WindDelta?(q=this.AddOutPt(q,d.Bot),this.AddJoin(e,q,d.Top)):null!==n&&n.Curr.X==d.Bot.X&&n.Curr.Y==d.Bot.Y&&null!==e&&0<=n.OutIdx&&n.Curr.Y>n.Top.Y&&f.ClipperBase.SlopesEqual(d,n,this.m_UseFullRange)&&0!==d.WindDelta&&0!==n.WindDelta&&(q=this.AddOutPt(n,d.Bot),this.AddJoin(e,q,d.Top))),d=d.NextInAEL};f.Clipper.prototype.DoMaxima=function(b){var d=this.GetMaximaPair(b);if(null===d)0<=b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b);else{for(var e=
+function(){for(var b=0,d=this.m_IntersectList.length;b<d;b++){var e=this.m_IntersectList[b];this.IntersectEdges(e.Edge1,e.Edge2,e.Pt);this.SwapPositionsInAEL(e.Edge1,e.Edge2)}this.m_IntersectList.length=0};M=function(b){return 0>b?Math.ceil(b-.5):Math.round(b)};Sb=function(b){return 0>b?Math.ceil(b-.5):Math.floor(b+.5)};Ta=function(b){return 0>b?-Math.round(Math.abs(b)):Math.round(b)};fb=function(b){if(0>b)return b-=.5,-2147483648>b?Math.ceil(b):b|0;b+=.5;return 2147483647<b?Math.floor(b):b|0};f.Clipper.Round=
+ba?M:tb?Ta:gc?fb:Sb;f.Clipper.TopX=function(b,d){return d==b.Top.Y?b.Top.X:b.Bot.X+f.Clipper.Round(b.Dx*(d-b.Bot.Y))};f.Clipper.prototype.IntersectPoint=function(b,d,e){e.X=0;e.Y=0;var r,n;if(b.Dx==d.Dx)e.Y=b.Curr.Y,e.X=f.Clipper.TopX(b,e.Y);else{if(0===b.Delta.X)e.X=b.Bot.X,f.ClipperBase.IsHorizontal(d)?e.Y=d.Bot.Y:(n=d.Bot.Y-d.Bot.X/d.Dx,e.Y=f.Clipper.Round(e.X/d.Dx+n));else if(0===d.Delta.X)e.X=d.Bot.X,f.ClipperBase.IsHorizontal(b)?e.Y=b.Bot.Y:(r=b.Bot.Y-b.Bot.X/b.Dx,e.Y=f.Clipper.Round(e.X/b.Dx+
+r));else{r=b.Bot.X-b.Bot.Y*b.Dx;n=d.Bot.X-d.Bot.Y*d.Dx;var k=(n-r)/(b.Dx-d.Dx);e.Y=f.Clipper.Round(k);e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.Round(b.Dx*k+r):f.Clipper.Round(d.Dx*k+n)}if(e.Y<b.Top.Y||e.Y<d.Top.Y){if(b.Top.Y>d.Top.Y)return e.Y=b.Top.Y,e.X=f.Clipper.TopX(d,b.Top.Y),e.X<b.Top.X;e.Y=d.Top.Y;e.X=Math.abs(b.Dx)<Math.abs(d.Dx)?f.Clipper.TopX(b,e.Y):f.Clipper.TopX(d,e.Y)}e.Y>b.Curr.Y&&(e.Y=b.Curr.Y,e.X=Math.abs(b.Dx)>Math.abs(d.Dx)?f.Clipper.TopX(d,e.Y):f.Clipper.TopX(b,e.Y))}};f.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=
+function(b){for(var d=this.m_ActiveEdges;null!==d;){var e=this.IsMaxima(d,b);e&&(e=this.GetMaximaPair(d),e=null===e||!f.ClipperBase.IsHorizontal(e));if(e){var r=d.PrevInAEL;this.DoMaxima(d);d=null===r?this.m_ActiveEdges:r.NextInAEL}else{this.IsIntermediate(d,b)&&f.ClipperBase.IsHorizontal(d.NextInLML)?(d=this.UpdateEdgeIntoAEL(d),0<=d.OutIdx&&this.AddOutPt(d,d.Bot),this.AddEdgeToSEL(d)):(d.Curr.X=f.Clipper.TopX(d,b),d.Curr.Y=b);if(this.StrictlySimple&&(r=d.PrevInAEL,0<=d.OutIdx&&0!==d.WindDelta&&
+null!==r&&0<=r.OutIdx&&r.Curr.X==d.Curr.X&&0!==r.WindDelta)){var n=new f.IntPoint(d.Curr);f.use_xyz&&this.SetZ(n,r,d);e=this.AddOutPt(r,n);r=this.AddOutPt(d,n);this.AddJoin(e,r,n)}d=d.NextInAEL}}this.ProcessHorizontals(!0);for(d=this.m_ActiveEdges;null!==d;)this.IsIntermediate(d,b)&&(e=null,0<=d.OutIdx&&(e=this.AddOutPt(d,d.Top)),d=this.UpdateEdgeIntoAEL(d),r=d.PrevInAEL,n=d.NextInAEL,null!==r&&r.Curr.X==d.Bot.X&&r.Curr.Y==d.Bot.Y&&null!==e&&0<=r.OutIdx&&r.Curr.Y>r.Top.Y&&f.ClipperBase.SlopesEqual(d,
+r,this.m_UseFullRange)&&0!==d.WindDelta&&0!==r.WindDelta?(r=this.AddOutPt(r,d.Bot),this.AddJoin(e,r,d.Top)):null!==n&&n.Curr.X==d.Bot.X&&n.Curr.Y==d.Bot.Y&&null!==e&&0<=n.OutIdx&&n.Curr.Y>n.Top.Y&&f.ClipperBase.SlopesEqual(d,n,this.m_UseFullRange)&&0!==d.WindDelta&&0!==n.WindDelta&&(r=this.AddOutPt(n,d.Bot),this.AddJoin(e,r,d.Top))),d=d.NextInAEL};f.Clipper.prototype.DoMaxima=function(b){var d=this.GetMaximaPair(b);if(null===d)0<=b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b);else{for(var e=
b.NextInAEL;null!==e&&e!=d;)this.IntersectEdges(b,e,b.Top),this.SwapPositionsInAEL(b,e),e=b.NextInAEL;-1==b.OutIdx&&-1==d.OutIdx?(this.DeleteFromAEL(b),this.DeleteFromAEL(d)):0<=b.OutIdx&&0<=d.OutIdx?(0<=b.OutIdx&&this.AddLocalMaxPoly(b,d,b.Top),this.DeleteFromAEL(b),this.DeleteFromAEL(d)):f.use_lines&&0===b.WindDelta?(0<=b.OutIdx&&(this.AddOutPt(b,b.Top),b.OutIdx=-1),this.DeleteFromAEL(b),0<=d.OutIdx&&(this.AddOutPt(d,b.Top),d.OutIdx=-1),this.DeleteFromAEL(d)):f.Error("DoMaxima error")}};f.Clipper.ReversePaths=
-function(b){for(var d=0,e=b.length;d<e;d++)b[d].reverse()};f.Clipper.Orientation=function(b){return 0<=f.Clipper.Area(b)};f.Clipper.prototype.PointCount=function(b){if(null===b)return 0;var d=0,e=b;do d++,e=e.Next;while(e!=b);return d};f.Clipper.prototype.BuildResult=function(b){f.Clear(b);for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var q=this.m_PolyOuts[d];if(null!==q.Pts){var q=q.Pts.Prev,n=this.PointCount(q);if(!(2>n)){for(var k=Array(n),v=0;v<n;v++)k[v]=q.Pt,q=q.Prev;b.push(k)}}}};f.Clipper.prototype.BuildResult2=
-function(b){b.Clear();for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var q=this.m_PolyOuts[d],n=this.PointCount(q.Pts);if(!(q.IsOpen&&2>n||!q.IsOpen&&3>n)){this.FixHoleLinkage(q);var k=new f.PolyNode;b.m_AllPolys.push(k);q.PolyNode=k;k.m_polygon.length=n;for(var q=q.Pts.Prev,v=0;v<n;v++)k.m_polygon[v]=q.Pt,q=q.Prev}}d=0;for(e=this.m_PolyOuts.length;d<e;d++)q=this.m_PolyOuts[d],null!==q.PolyNode&&(q.IsOpen?(q.PolyNode.IsOpen=!0,b.AddChild(q.PolyNode)):null!==q.FirstLeft&&null!=q.FirstLeft.PolyNode?
-q.FirstLeft.PolyNode.AddChild(q.PolyNode):b.AddChild(q.PolyNode))};f.Clipper.prototype.FixupOutPolygon=function(b){var d=null;b.BottomPt=null;for(var e=b.Pts;;){if(e.Prev==e||e.Prev==e.Next){b.Pts=null;return}if(f.IntPoint.op_Equality(e.Pt,e.Next.Pt)||f.IntPoint.op_Equality(e.Pt,e.Prev.Pt)||f.ClipperBase.SlopesEqual(e.Prev.Pt,e.Pt,e.Next.Pt,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(e.Prev.Pt,e.Pt,e.Next.Pt)))d=null,e.Prev.Next=e.Next,e=e.Next.Prev=e.Prev;else if(e==
+function(b){for(var d=0,e=b.length;d<e;d++)b[d].reverse()};f.Clipper.Orientation=function(b){return 0<=f.Clipper.Area(b)};f.Clipper.prototype.PointCount=function(b){if(null===b)return 0;var d=0,e=b;do d++,e=e.Next;while(e!=b);return d};f.Clipper.prototype.BuildResult=function(b){f.Clear(b);for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var r=this.m_PolyOuts[d];if(null!==r.Pts){var r=r.Pts.Prev,n=this.PointCount(r);if(!(2>n)){for(var k=Array(n),u=0;u<n;u++)k[u]=r.Pt,r=r.Prev;b.push(k)}}}};f.Clipper.prototype.BuildResult2=
+function(b){b.Clear();for(var d=0,e=this.m_PolyOuts.length;d<e;d++){var r=this.m_PolyOuts[d],n=this.PointCount(r.Pts);if(!(r.IsOpen&&2>n||!r.IsOpen&&3>n)){this.FixHoleLinkage(r);var k=new f.PolyNode;b.m_AllPolys.push(k);r.PolyNode=k;k.m_polygon.length=n;for(var r=r.Pts.Prev,u=0;u<n;u++)k.m_polygon[u]=r.Pt,r=r.Prev}}d=0;for(e=this.m_PolyOuts.length;d<e;d++)r=this.m_PolyOuts[d],null!==r.PolyNode&&(r.IsOpen?(r.PolyNode.IsOpen=!0,b.AddChild(r.PolyNode)):null!==r.FirstLeft&&null!=r.FirstLeft.PolyNode?
+r.FirstLeft.PolyNode.AddChild(r.PolyNode):b.AddChild(r.PolyNode))};f.Clipper.prototype.FixupOutPolygon=function(b){var d=null;b.BottomPt=null;for(var e=b.Pts;;){if(e.Prev==e||e.Prev==e.Next){b.Pts=null;return}if(f.IntPoint.op_Equality(e.Pt,e.Next.Pt)||f.IntPoint.op_Equality(e.Pt,e.Prev.Pt)||f.ClipperBase.SlopesEqual(e.Prev.Pt,e.Pt,e.Next.Pt,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(e.Prev.Pt,e.Pt,e.Next.Pt)))d=null,e.Prev.Next=e.Next,e=e.Next.Prev=e.Prev;else if(e==
d)break;else null===d&&(d=e),e=e.Next}b.Pts=e};f.Clipper.prototype.DupOutPt=function(b,d){var e=new f.OutPt;e.Pt.X=b.Pt.X;e.Pt.Y=b.Pt.Y;f.use_xyz&&(e.Pt.Z=b.Pt.Z);e.Idx=b.Idx;d?(e.Next=b.Next,e.Prev=b,b.Next.Prev=e,b.Next=e):(e.Prev=b.Prev,e.Next=b,b.Prev.Next=e,b.Prev=e);return e};f.Clipper.prototype.GetOverlap=function(b,d,e,f,n){b<d?e<f?(n.Left=Math.max(b,e),n.Right=Math.min(d,f)):(n.Left=Math.max(b,f),n.Right=Math.min(d,e)):e<f?(n.Left=Math.max(d,e),n.Right=Math.min(b,f)):(n.Left=Math.max(d,f),
-n.Right=Math.min(b,e));return n.Left<n.Right};f.Clipper.prototype.JoinHorz=function(b,d,e,q,n,k){var v=b.Pt.X>d.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;q=e.Pt.X>q.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;if(v==q)return!1;if(v==f.Direction.dLeftToRight){for(;b.Next.Pt.X<=n.X&&b.Next.Pt.X>=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k&&b.Pt.X!=n.X&&(b=b.Next);d=this.DupOutPt(b,!k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,
-!k))}else{for(;b.Next.Pt.X>=n.X&&b.Next.Pt.X<=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k||b.Pt.X==n.X||(b=b.Next);d=this.DupOutPt(b,k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,k))}if(q==f.Direction.dLeftToRight){for(;e.Next.Pt.X<=n.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k&&e.Pt.X!=n.X&&(e=e.Next);q=this.DupOutPt(e,!k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,!k))}else{for(;e.Next.Pt.X>=
-n.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k||e.Pt.X==n.X||(e=e.Next);q=this.DupOutPt(e,k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,k))}v==f.Direction.dLeftToRight==k?(b.Prev=e,e.Next=b,d.Next=q,q.Prev=d):(b.Next=e,e.Prev=b,d.Prev=q,q.Next=d);return!0};f.Clipper.prototype.JoinPoints=function(b,d,e){var q=b.OutPt1,n;new f.OutPt;var k=b.OutPt2,v;new f.OutPt;if((v=b.OutPt1.Pt.Y==b.OffPt.Y)&&f.IntPoint.op_Equality(b.OffPt,b.OutPt1.Pt)&&
-f.IntPoint.op_Equality(b.OffPt,b.OutPt2.Pt)){if(d!=e)return!1;for(n=b.OutPt1.Next;n!=q&&f.IntPoint.op_Equality(n.Pt,b.OffPt);)n=n.Next;n=n.Pt.Y>b.OffPt.Y;for(v=b.OutPt2.Next;v!=k&&f.IntPoint.op_Equality(v.Pt,b.OffPt);)v=v.Next;if(n==v.Pt.Y>b.OffPt.Y)return!1;n?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0}if(v){for(n=q;q.Prev.Pt.Y==q.Pt.Y&&q.Prev!=n&&
-q.Prev!=k;)q=q.Prev;for(;n.Next.Pt.Y==n.Pt.Y&&n.Next!=q&&n.Next!=k;)n=n.Next;if(n.Next==q||n.Next==k)return!1;for(v=k;k.Prev.Pt.Y==k.Pt.Y&&k.Prev!=v&&k.Prev!=n;)k=k.Prev;for(;v.Next.Pt.Y==v.Pt.Y&&v.Next!=k&&v.Next!=q;)v=v.Next;if(v.Next==k||v.Next==q)return!1;e={Left:null,Right:null};if(!this.GetOverlap(q.Pt.X,n.Pt.X,k.Pt.X,v.Pt.X,e))return!1;d=e.Left;var C=e.Right;e=new f.IntPoint;q.Pt.X>=d&&q.Pt.X<=C?(e.X=q.Pt.X,e.Y=q.Pt.Y,f.use_xyz&&(e.Z=q.Pt.Z),d=q.Pt.X>n.Pt.X):k.Pt.X>=d&&k.Pt.X<=C?(e.X=k.Pt.X,
-e.Y=k.Pt.Y,f.use_xyz&&(e.Z=k.Pt.Z),d=k.Pt.X>v.Pt.X):n.Pt.X>=d&&n.Pt.X<=C?(e.X=n.Pt.X,e.Y=n.Pt.Y,f.use_xyz&&(e.Z=n.Pt.Z),d=n.Pt.X>q.Pt.X):(e.X=v.Pt.X,e.Y=v.Pt.Y,f.use_xyz&&(e.Z=v.Pt.Z),d=v.Pt.X>k.Pt.X);b.OutPt1=q;b.OutPt2=k;return this.JoinHorz(q,n,k,v,e,d)}for(n=q.Next;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Next;if(C=n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,n.Pt,b.OffPt,this.m_UseFullRange)){for(n=q.Prev;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Prev;if(n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,
-n.Pt,b.OffPt,this.m_UseFullRange))return!1}for(v=k.Next;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Next;var p=v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange);if(p){for(v=k.Prev;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Prev;if(v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange))return!1}if(n==q||v==k||n==v||d==e&&C==p)return!1;C?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),
-v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0};f.Clipper.GetBounds=function(b){for(var d=0,e=b.length;d<e&&0==b[d].length;)d++;if(d==e)return new f.IntRect(0,0,0,0);var q=new f.IntRect;q.left=b[d][0].X;q.right=q.left;q.top=b[d][0].Y;for(q.bottom=q.top;d<e;d++)for(var k=0,N=b[d].length;k<N;k++)b[d][k].X<q.left?q.left=b[d][k].X:b[d][k].X>q.right&&(q.right=b[d][k].X),b[d][k].Y<q.top?q.top=b[d][k].Y:b[d][k].Y>q.bottom&&(q.bottom=b[d][k].Y);return q};f.Clipper.prototype.GetBounds2=
-function(b){var d=b,e=new f.IntRect;e.left=b.Pt.X;e.right=b.Pt.X;e.top=b.Pt.Y;e.bottom=b.Pt.Y;for(b=b.Next;b!=d;)b.Pt.X<e.left&&(e.left=b.Pt.X),b.Pt.X>e.right&&(e.right=b.Pt.X),b.Pt.Y<e.top&&(e.top=b.Pt.Y),b.Pt.Y>e.bottom&&(e.bottom=b.Pt.Y),b=b.Next;return e};f.Clipper.PointInPolygon=function(b,d){var e=0,f=d.length;if(3>f)return 0;for(var k=d[0],N=1;N<=f;++N){var v=N==f?d[0]:d[N];if(v.Y==b.Y&&(v.X==b.X||k.Y==b.Y&&v.X>b.X==k.X<b.X))return-1;if(k.Y<b.Y!=v.Y<b.Y)if(k.X>=b.X)if(v.X>b.X)e=1-e;else{var C=
-(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==v.Y>k.Y&&(e=1-e)}else if(v.X>b.X){C=(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==v.Y>k.Y&&(e=1-e)}k=v}return e};f.Clipper.prototype.PointInPolygon=function(b,d){var e=0,f=d,k=b.X,N=b.Y,v=d.Pt.X,C=d.Pt.Y;do{d=d.Next;var p=d.Pt.X,F=d.Pt.Y;if(F==N&&(p==k||C==N&&p>k==v<k))return-1;if(C<N!=F<N)if(v>=k)if(p>k)e=1-e;else{v=(v-k)*(F-N)-(p-k)*(C-N);if(0==v)return-1;0<v==F>C&&(e=1-e)}else if(p>k){v=(v-k)*(F-N)-(p-k)*(C-N);if(0==
-v)return-1;0<v==F>C&&(e=1-e)}v=p;C=F}while(f!=d);return e};f.Clipper.prototype.Poly2ContainsPoly1=function(b,d){var e=b;do{var f=this.PointInPolygon(e.Pt,d);if(0<=f)return 0<f;e=e.Next}while(e!=b);return!0};f.Clipper.prototype.FixupFirstLefts1=function(b,d){for(var e=0,f=this.m_PolyOuts.length;e<f;e++){var k=this.m_PolyOuts[e];null!=k.Pts&&null!=k.FirstLeft&&this.ParseFirstLeft(k.FirstLeft)==b&&this.Poly2ContainsPoly1(k.Pts,d.Pts)&&(k.FirstLeft=d)}};f.Clipper.prototype.FixupFirstLefts2=function(b,
+n.Right=Math.min(b,e));return n.Left<n.Right};f.Clipper.prototype.JoinHorz=function(b,d,e,r,n,k){var u=b.Pt.X>d.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;r=e.Pt.X>r.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;if(u==r)return!1;if(u==f.Direction.dLeftToRight){for(;b.Next.Pt.X<=n.X&&b.Next.Pt.X>=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k&&b.Pt.X!=n.X&&(b=b.Next);d=this.DupOutPt(b,!k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,
+!k))}else{for(;b.Next.Pt.X>=n.X&&b.Next.Pt.X<=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k||b.Pt.X==n.X||(b=b.Next);d=this.DupOutPt(b,k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,k))}if(r==f.Direction.dLeftToRight){for(;e.Next.Pt.X<=n.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k&&e.Pt.X!=n.X&&(e=e.Next);r=this.DupOutPt(e,!k);f.IntPoint.op_Inequality(r.Pt,n)&&(e=r,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),r=this.DupOutPt(e,!k))}else{for(;e.Next.Pt.X>=
+n.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k||e.Pt.X==n.X||(e=e.Next);r=this.DupOutPt(e,k);f.IntPoint.op_Inequality(r.Pt,n)&&(e=r,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),r=this.DupOutPt(e,k))}u==f.Direction.dLeftToRight==k?(b.Prev=e,e.Next=b,d.Next=r,r.Prev=d):(b.Next=e,e.Prev=b,d.Prev=r,r.Next=d);return!0};f.Clipper.prototype.JoinPoints=function(b,d,e){var r=b.OutPt1,n;new f.OutPt;var k=b.OutPt2,u;new f.OutPt;if((u=b.OutPt1.Pt.Y==b.OffPt.Y)&&f.IntPoint.op_Equality(b.OffPt,b.OutPt1.Pt)&&
+f.IntPoint.op_Equality(b.OffPt,b.OutPt2.Pt)){if(d!=e)return!1;for(n=b.OutPt1.Next;n!=r&&f.IntPoint.op_Equality(n.Pt,b.OffPt);)n=n.Next;n=n.Pt.Y>b.OffPt.Y;for(u=b.OutPt2.Next;u!=k&&f.IntPoint.op_Equality(u.Pt,b.OffPt);)u=u.Next;if(n==u.Pt.Y>b.OffPt.Y)return!1;n?(n=this.DupOutPt(r,!1),u=this.DupOutPt(k,!0),r.Prev=k,k.Next=r,n.Next=u,u.Prev=n):(n=this.DupOutPt(r,!0),u=this.DupOutPt(k,!1),r.Next=k,k.Prev=r,n.Prev=u,u.Next=n);b.OutPt1=r;b.OutPt2=n;return!0}if(u){for(n=r;r.Prev.Pt.Y==r.Pt.Y&&r.Prev!=n&&
+r.Prev!=k;)r=r.Prev;for(;n.Next.Pt.Y==n.Pt.Y&&n.Next!=r&&n.Next!=k;)n=n.Next;if(n.Next==r||n.Next==k)return!1;for(u=k;k.Prev.Pt.Y==k.Pt.Y&&k.Prev!=u&&k.Prev!=n;)k=k.Prev;for(;u.Next.Pt.Y==u.Pt.Y&&u.Next!=k&&u.Next!=r;)u=u.Next;if(u.Next==k||u.Next==r)return!1;e={Left:null,Right:null};if(!this.GetOverlap(r.Pt.X,n.Pt.X,k.Pt.X,u.Pt.X,e))return!1;d=e.Left;var C=e.Right;e=new f.IntPoint;r.Pt.X>=d&&r.Pt.X<=C?(e.X=r.Pt.X,e.Y=r.Pt.Y,f.use_xyz&&(e.Z=r.Pt.Z),d=r.Pt.X>n.Pt.X):k.Pt.X>=d&&k.Pt.X<=C?(e.X=k.Pt.X,
+e.Y=k.Pt.Y,f.use_xyz&&(e.Z=k.Pt.Z),d=k.Pt.X>u.Pt.X):n.Pt.X>=d&&n.Pt.X<=C?(e.X=n.Pt.X,e.Y=n.Pt.Y,f.use_xyz&&(e.Z=n.Pt.Z),d=n.Pt.X>r.Pt.X):(e.X=u.Pt.X,e.Y=u.Pt.Y,f.use_xyz&&(e.Z=u.Pt.Z),d=u.Pt.X>k.Pt.X);b.OutPt1=r;b.OutPt2=k;return this.JoinHorz(r,n,k,u,e,d)}for(n=r.Next;f.IntPoint.op_Equality(n.Pt,r.Pt)&&n!=r;)n=n.Next;if(C=n.Pt.Y>r.Pt.Y||!f.ClipperBase.SlopesEqual(r.Pt,n.Pt,b.OffPt,this.m_UseFullRange)){for(n=r.Prev;f.IntPoint.op_Equality(n.Pt,r.Pt)&&n!=r;)n=n.Prev;if(n.Pt.Y>r.Pt.Y||!f.ClipperBase.SlopesEqual(r.Pt,
+n.Pt,b.OffPt,this.m_UseFullRange))return!1}for(u=k.Next;f.IntPoint.op_Equality(u.Pt,k.Pt)&&u!=k;)u=u.Next;var p=u.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,u.Pt,b.OffPt,this.m_UseFullRange);if(p){for(u=k.Prev;f.IntPoint.op_Equality(u.Pt,k.Pt)&&u!=k;)u=u.Prev;if(u.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,u.Pt,b.OffPt,this.m_UseFullRange))return!1}if(n==r||u==k||n==u||d==e&&C==p)return!1;C?(n=this.DupOutPt(r,!1),u=this.DupOutPt(k,!0),r.Prev=k,k.Next=r,n.Next=u,u.Prev=n):(n=this.DupOutPt(r,!0),
+u=this.DupOutPt(k,!1),r.Next=k,k.Prev=r,n.Prev=u,u.Next=n);b.OutPt1=r;b.OutPt2=n;return!0};f.Clipper.GetBounds=function(b){for(var d=0,e=b.length;d<e&&0==b[d].length;)d++;if(d==e)return new f.IntRect(0,0,0,0);var r=new f.IntRect;r.left=b[d][0].X;r.right=r.left;r.top=b[d][0].Y;for(r.bottom=r.top;d<e;d++)for(var k=0,I=b[d].length;k<I;k++)b[d][k].X<r.left?r.left=b[d][k].X:b[d][k].X>r.right&&(r.right=b[d][k].X),b[d][k].Y<r.top?r.top=b[d][k].Y:b[d][k].Y>r.bottom&&(r.bottom=b[d][k].Y);return r};f.Clipper.prototype.GetBounds2=
+function(b){var d=b,e=new f.IntRect;e.left=b.Pt.X;e.right=b.Pt.X;e.top=b.Pt.Y;e.bottom=b.Pt.Y;for(b=b.Next;b!=d;)b.Pt.X<e.left&&(e.left=b.Pt.X),b.Pt.X>e.right&&(e.right=b.Pt.X),b.Pt.Y<e.top&&(e.top=b.Pt.Y),b.Pt.Y>e.bottom&&(e.bottom=b.Pt.Y),b=b.Next;return e};f.Clipper.PointInPolygon=function(b,d){var e=0,f=d.length;if(3>f)return 0;for(var k=d[0],I=1;I<=f;++I){var u=I==f?d[0]:d[I];if(u.Y==b.Y&&(u.X==b.X||k.Y==b.Y&&u.X>b.X==k.X<b.X))return-1;if(k.Y<b.Y!=u.Y<b.Y)if(k.X>=b.X)if(u.X>b.X)e=1-e;else{var C=
+(k.X-b.X)*(u.Y-b.Y)-(u.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==u.Y>k.Y&&(e=1-e)}else if(u.X>b.X){C=(k.X-b.X)*(u.Y-b.Y)-(u.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0<C==u.Y>k.Y&&(e=1-e)}k=u}return e};f.Clipper.prototype.PointInPolygon=function(b,d){var e=0,f=d,k=b.X,I=b.Y,u=d.Pt.X,C=d.Pt.Y;do{d=d.Next;var p=d.Pt.X,E=d.Pt.Y;if(E==I&&(p==k||C==I&&p>k==u<k))return-1;if(C<I!=E<I)if(u>=k)if(p>k)e=1-e;else{u=(u-k)*(E-I)-(p-k)*(C-I);if(0==u)return-1;0<u==E>C&&(e=1-e)}else if(p>k){u=(u-k)*(E-I)-(p-k)*(C-I);if(0==
+u)return-1;0<u==E>C&&(e=1-e)}u=p;C=E}while(f!=d);return e};f.Clipper.prototype.Poly2ContainsPoly1=function(b,d){var e=b;do{var f=this.PointInPolygon(e.Pt,d);if(0<=f)return 0<f;e=e.Next}while(e!=b);return!0};f.Clipper.prototype.FixupFirstLefts1=function(b,d){for(var e=0,f=this.m_PolyOuts.length;e<f;e++){var k=this.m_PolyOuts[e];null!=k.Pts&&null!=k.FirstLeft&&this.ParseFirstLeft(k.FirstLeft)==b&&this.Poly2ContainsPoly1(k.Pts,d.Pts)&&(k.FirstLeft=d)}};f.Clipper.prototype.FixupFirstLefts2=function(b,
d){for(var e=0,f=this.m_PolyOuts,k=f.length,p=f[e];e<k;e++,p=f[e])p.FirstLeft==b&&(p.FirstLeft=d)};f.Clipper.ParseFirstLeft=function(b){for(;null!=b&&null==b.Pts;)b=b.FirstLeft;return b};f.Clipper.prototype.JoinCommonEdges=function(){for(var b=0,d=this.m_Joins.length;b<d;b++){var e=this.m_Joins[b],k=this.GetOutRec(e.OutPt1.Idx),n=this.GetOutRec(e.OutPt2.Idx);if(null!=k.Pts&&null!=n.Pts){var p;p=k==n?k:this.Param1RightOfParam2(k,n)?n:this.Param1RightOfParam2(n,k)?k:this.GetLowermostRec(k,n);if(this.JoinPoints(e,
-k,n))if(k==n){k.Pts=e.OutPt1;k.BottomPt=null;n=this.CreateOutRec();n.Pts=e.OutPt2;this.UpdateOutPtIdxs(n);if(this.m_UsingPolyTree){p=0;for(var v=this.m_PolyOuts.length;p<v-1;p++){var C=this.m_PolyOuts[p];null!=C.Pts&&f.Clipper.ParseFirstLeft(C.FirstLeft)==k&&C.IsHole!=k.IsHole&&this.Poly2ContainsPoly1(C.Pts,e.OutPt2)&&(C.FirstLeft=n)}}this.Poly2ContainsPoly1(n.Pts,k.Pts)?(n.IsHole=!k.IsHole,n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,k),(n.IsHole^this.ReverseSolution)==0<this.Area(n)&&
+k,n))if(k==n){k.Pts=e.OutPt1;k.BottomPt=null;n=this.CreateOutRec();n.Pts=e.OutPt2;this.UpdateOutPtIdxs(n);if(this.m_UsingPolyTree){p=0;for(var u=this.m_PolyOuts.length;p<u-1;p++){var C=this.m_PolyOuts[p];null!=C.Pts&&f.Clipper.ParseFirstLeft(C.FirstLeft)==k&&C.IsHole!=k.IsHole&&this.Poly2ContainsPoly1(C.Pts,e.OutPt2)&&(C.FirstLeft=n)}}this.Poly2ContainsPoly1(n.Pts,k.Pts)?(n.IsHole=!k.IsHole,n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,k),(n.IsHole^this.ReverseSolution)==0<this.Area(n)&&
this.ReversePolyPtLinks(n.Pts)):this.Poly2ContainsPoly1(k.Pts,n.Pts)?(n.IsHole=k.IsHole,k.IsHole=!n.IsHole,n.FirstLeft=k.FirstLeft,k.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(k,n),(k.IsHole^this.ReverseSolution)==0<this.Area(k)&&this.ReversePolyPtLinks(k.Pts)):(n.IsHole=k.IsHole,n.FirstLeft=k.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(k,n))}else n.Pts=null,n.BottomPt=null,n.Idx=k.Idx,k.IsHole=p.IsHole,p==n&&(k.FirstLeft=n.FirstLeft),n.FirstLeft=k,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,
k)}}};f.Clipper.prototype.UpdateOutPtIdxs=function(b){var d=b.Pts;do d.Idx=b.Idx,d=d.Prev;while(d!=b.Pts)};f.Clipper.prototype.DoSimplePolygons=function(){for(var b=0;b<this.m_PolyOuts.length;){var d=this.m_PolyOuts[b++],e=d.Pts;if(null!=e&&!d.IsOpen){do{for(var k=e.Next;k!=d.Pts;){if(f.IntPoint.op_Equality(e.Pt,k.Pt)&&k.Next!=e&&k.Prev!=e){var n=e.Prev,p=k.Prev;e.Prev=p;p.Next=e;k.Prev=n;n.Next=k;d.Pts=e;n=this.CreateOutRec();n.Pts=k;this.UpdateOutPtIdxs(n);this.Poly2ContainsPoly1(n.Pts,d.Pts)?(n.IsHole=
!d.IsHole,n.FirstLeft=d,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,d)):this.Poly2ContainsPoly1(d.Pts,n.Pts)?(n.IsHole=d.IsHole,d.IsHole=!n.IsHole,n.FirstLeft=d.FirstLeft,d.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(d,n)):(n.IsHole=d.IsHole,n.FirstLeft=d.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(d,n));k=e}k=k.Next}e=e.Next}while(e!=d.Pts)}}};f.Clipper.Area=function(b){var d=b.length;if(3>d)return 0;for(var e=0,f=0,k=d-1;f<d;++f)e+=(b[k].X+b[f].X)*(b[k].Y-b[f].Y),k=f;return.5*
@@ -161,22 +161,22 @@ k)}}};f.Clipper.prototype.UpdateOutPtIdxs=function(b){var d=b.Pts;do d.Idx=b.Idx
!0);k.Execute(f.ClipType.ctUnion,e,d,d);return e};f.Clipper.DistanceSqrd=function(b,d){var e=b.X-d.X,f=b.Y-d.Y;return e*e+f*f};f.Clipper.DistanceFromLineSqrd=function(b,d,e){var f=d.Y-e.Y;e=e.X-d.X;d=f*d.X+e*d.Y;d=f*b.X+e*b.Y-d;return d*d/(f*f+e*e)};f.Clipper.SlopesNearCollinear=function(b,d,e,k){return Math.abs(b.X-d.X)>Math.abs(b.Y-d.Y)?b.X>d.X==b.X<e.X?f.Clipper.DistanceFromLineSqrd(b,d,e)<k:d.X>b.X==d.X<e.X?f.Clipper.DistanceFromLineSqrd(d,b,e)<k:f.Clipper.DistanceFromLineSqrd(e,b,d)<k:b.Y>d.Y==
b.Y<e.Y?f.Clipper.DistanceFromLineSqrd(b,d,e)<k:d.Y>b.Y==d.Y<e.Y?f.Clipper.DistanceFromLineSqrd(d,b,e)<k:f.Clipper.DistanceFromLineSqrd(e,b,d)<k};f.Clipper.PointsAreClose=function(b,d,e){var f=b.X-d.X;b=b.Y-d.Y;return f*f+b*b<=e};f.Clipper.ExcludeOp=function(b){var d=b.Prev;d.Next=b.Next;b.Next.Prev=d;d.Idx=0;return d};f.Clipper.CleanPolygon=function(b,d){"undefined"==typeof d&&(d=1.415);var e=b.length;if(0==e)return[];for(var k=Array(e),n=0;n<e;++n)k[n]=new f.OutPt;for(n=0;n<e;++n)k[n].Pt=b[n],k[n].Next=
k[(n+1)%e],k[n].Next.Prev=k[n],k[n].Idx=0;n=d*d;for(k=k[0];0==k.Idx&&k.Next!=k.Prev;)f.Clipper.PointsAreClose(k.Pt,k.Prev.Pt,n)?(k=f.Clipper.ExcludeOp(k),e--):f.Clipper.PointsAreClose(k.Prev.Pt,k.Next.Pt,n)?(f.Clipper.ExcludeOp(k.Next),k=f.Clipper.ExcludeOp(k),e-=2):f.Clipper.SlopesNearCollinear(k.Prev.Pt,k.Pt,k.Next.Pt,n)?(k=f.Clipper.ExcludeOp(k),e--):(k.Idx=1,k=k.Next);3>e&&(e=0);for(var p=Array(e),n=0;n<e;++n)p[n]=new f.IntPoint(k.Pt),k=k.Next;return p};f.Clipper.CleanPolygons=function(b,d){for(var e=
-Array(b.length),k=0,n=b.length;k<n;k++)e[k]=f.Clipper.CleanPolygon(b[k],d);return e};f.Clipper.Minkowski=function(b,d,e,k){k=k?1:0;var n=b.length,p=d.length,v=[];if(e)for(e=0;e<p;e++){for(var C=Array(n),F=0,E=b.length,H=b[F];F<E;F++,H=b[F])C[F]=new f.IntPoint(d[e].X+H.X,d[e].Y+H.Y);v.push(C)}else for(e=0;e<p;e++){C=Array(n);F=0;E=b.length;for(H=b[F];F<E;F++,H=b[F])C[F]=new f.IntPoint(d[e].X-H.X,d[e].Y-H.Y);v.push(C)}b=[];for(e=0;e<p-1+k;e++)for(F=0;F<n;F++)d=[],d.push(v[e%p][F%n]),d.push(v[(e+1)%
-p][F%n]),d.push(v[(e+1)%p][(F+1)%n]),d.push(v[e%p][(F+1)%n]),f.Clipper.Orientation(d)||d.reverse(),b.push(d);return b};f.Clipper.MinkowskiSum=function(b,d,e){if(d[0]instanceof Array){v=d;d=new f.Paths;for(var k=new f.Clipper,n=0;n<v.length;++n){var p=f.Clipper.Minkowski(b,v[n],!0,e);k.AddPaths(p,f.PolyType.ptSubject,!0);e&&(p=f.Clipper.TranslatePath(v[n],b[0]),k.AddPath(p,f.PolyType.ptClip,!0))}k.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return d}var v=f.Clipper.Minkowski(b,
-d,!0,e),k=new f.Clipper;k.AddPaths(v,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,v,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return v};f.Clipper.TranslatePath=function(b,d){for(var e=new f.Path,k=0;k<b.length;k++)e.push(new f.IntPoint(b[k].X+d.X,b[k].Y+d.Y));return e};f.Clipper.MinkowskiDiff=function(b,d){var e=f.Clipper.Minkowski(b,d,!1,!0),k=new f.Clipper;k.AddPaths(e,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,e,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);
+Array(b.length),k=0,n=b.length;k<n;k++)e[k]=f.Clipper.CleanPolygon(b[k],d);return e};f.Clipper.Minkowski=function(b,d,e,k){k=k?1:0;var n=b.length,p=d.length,u=[];if(e)for(e=0;e<p;e++){for(var C=Array(n),E=0,F=b.length,H=b[E];E<F;E++,H=b[E])C[E]=new f.IntPoint(d[e].X+H.X,d[e].Y+H.Y);u.push(C)}else for(e=0;e<p;e++){C=Array(n);E=0;F=b.length;for(H=b[E];E<F;E++,H=b[E])C[E]=new f.IntPoint(d[e].X-H.X,d[e].Y-H.Y);u.push(C)}b=[];for(e=0;e<p-1+k;e++)for(E=0;E<n;E++)d=[],d.push(u[e%p][E%n]),d.push(u[(e+1)%
+p][E%n]),d.push(u[(e+1)%p][(E+1)%n]),d.push(u[e%p][(E+1)%n]),f.Clipper.Orientation(d)||d.reverse(),b.push(d);return b};f.Clipper.MinkowskiSum=function(b,d,e){if(d[0]instanceof Array){u=d;d=new f.Paths;for(var k=new f.Clipper,n=0;n<u.length;++n){var p=f.Clipper.Minkowski(b,u[n],!0,e);k.AddPaths(p,f.PolyType.ptSubject,!0);e&&(p=f.Clipper.TranslatePath(u[n],b[0]),k.AddPath(p,f.PolyType.ptClip,!0))}k.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return d}var u=f.Clipper.Minkowski(b,
+d,!0,e),k=new f.Clipper;k.AddPaths(u,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,u,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);return u};f.Clipper.TranslatePath=function(b,d){for(var e=new f.Path,k=0;k<b.length;k++)e.push(new f.IntPoint(b[k].X+d.X,b[k].Y+d.Y));return e};f.Clipper.MinkowskiDiff=function(b,d){var e=f.Clipper.Minkowski(b,d,!1,!0),k=new f.Clipper;k.AddPaths(e,f.PolyType.ptSubject,!0);k.Execute(f.ClipType.ctUnion,e,f.PolyFillType.pftNonZero,f.PolyFillType.pftNonZero);
return e};f.Clipper.PolyTreeToPaths=function(b){var d=[];f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntAny,d);return d};f.Clipper.AddPolyNodeToPaths=function(b,d,e){var k=!0;switch(d){case f.Clipper.NodeType.ntOpen:return;case f.Clipper.NodeType.ntClosed:k=!b.IsOpen}0<b.m_polygon.length&&k&&e.push(b.m_polygon);k=0;b=b.Childs();for(var n=b.length,p=b[k];k<n;k++,p=b[k])f.Clipper.AddPolyNodeToPaths(p,d,e)};f.Clipper.OpenPathsFromPolyTree=function(b){for(var d=new f.Paths,e=0,k=b.ChildCount();e<
-k;e++)b.Childs()[e].IsOpen&&d.push(b.Childs()[e].m_polygon);return d};f.Clipper.ClosedPathsFromPolyTree=function(b){var d=new f.Paths;f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntClosed,d);return d};V(f.Clipper,f.ClipperBase);f.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2};f.ClipperOffset=function(b,d){"undefined"==typeof b&&(b=2);"undefined"==typeof d&&(d=f.ClipperOffset.def_arc_tolerance);this.m_destPolys=new f.Paths;this.m_srcPoly=new f.Path;this.m_destPoly=new f.Path;this.m_normals=[];
+k;e++)b.Childs()[e].IsOpen&&d.push(b.Childs()[e].m_polygon);return d};f.Clipper.ClosedPathsFromPolyTree=function(b){var d=new f.Paths;f.Clipper.AddPolyNodeToPaths(b,f.Clipper.NodeType.ntClosed,d);return d};Y(f.Clipper,f.ClipperBase);f.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2};f.ClipperOffset=function(b,d){"undefined"==typeof b&&(b=2);"undefined"==typeof d&&(d=f.ClipperOffset.def_arc_tolerance);this.m_destPolys=new f.Paths;this.m_srcPoly=new f.Path;this.m_destPoly=new f.Path;this.m_normals=[];
this.m_StepsPerRad=this.m_miterLim=this.m_cos=this.m_sin=this.m_sinA=this.m_delta=0;this.m_lowest=new f.IntPoint;this.m_polyNodes=new f.PolyNode;this.MiterLimit=b;this.ArcTolerance=d;this.m_lowest.X=-1};f.ClipperOffset.two_pi=6.28318530717959;f.ClipperOffset.def_arc_tolerance=.25;f.ClipperOffset.prototype.Clear=function(){f.Clear(this.m_polyNodes.Childs());this.m_lowest.X=-1};f.ClipperOffset.Round=f.Clipper.Round;f.ClipperOffset.prototype.AddPath=function(b,d,e){var k=b.length-1;if(!(0>k)){var n=
-new f.PolyNode;n.m_jointype=d;n.m_endtype=e;if(e==f.EndType.etClosedLine||e==f.EndType.etClosedPolygon)for(;0<k&&f.IntPoint.op_Equality(b[0],b[k]);)k--;n.m_polygon.push(b[0]);var p=0;d=0;for(var v=1;v<=k;v++)f.IntPoint.op_Inequality(n.m_polygon[p],b[v])&&(p++,n.m_polygon.push(b[v]),b[v].Y>n.m_polygon[d].Y||b[v].Y==n.m_polygon[d].Y&&b[v].X<n.m_polygon[d].X)&&(d=p);if(!(e==f.EndType.etClosedPolygon&&2>p)&&(this.m_polyNodes.AddChild(n),e==f.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest=
+new f.PolyNode;n.m_jointype=d;n.m_endtype=e;if(e==f.EndType.etClosedLine||e==f.EndType.etClosedPolygon)for(;0<k&&f.IntPoint.op_Equality(b[0],b[k]);)k--;n.m_polygon.push(b[0]);var p=0;d=0;for(var u=1;u<=k;u++)f.IntPoint.op_Inequality(n.m_polygon[p],b[u])&&(p++,n.m_polygon.push(b[u]),b[u].Y>n.m_polygon[d].Y||b[u].Y==n.m_polygon[d].Y&&b[u].X<n.m_polygon[d].X)&&(d=p);if(!(e==f.EndType.etClosedPolygon&&2>p)&&(this.m_polyNodes.AddChild(n),e==f.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest=
new f.IntPoint(this.m_polyNodes.ChildCount()-1,d);else if(b=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y],n.m_polygon[d].Y>b.Y||n.m_polygon[d].Y==b.Y&&n.m_polygon[d].X<b.X)this.m_lowest=new f.IntPoint(this.m_polyNodes.ChildCount()-1,d)}};f.ClipperOffset.prototype.AddPaths=function(b,d,e){for(var f=0,k=b.length;f<k;f++)this.AddPath(b[f],d,e)};f.ClipperOffset.prototype.FixOrientations=function(){if(0<=this.m_lowest.X&&!f.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var b=
0;b<this.m_polyNodes.ChildCount();b++){var d=this.m_polyNodes.Childs()[b];(d.m_endtype==f.EndType.etClosedPolygon||d.m_endtype==f.EndType.etClosedLine&&f.Clipper.Orientation(d.m_polygon))&&d.m_polygon.reverse()}else for(b=0;b<this.m_polyNodes.ChildCount();b++)d=this.m_polyNodes.Childs()[b],d.m_endtype!=f.EndType.etClosedLine||f.Clipper.Orientation(d.m_polygon)||d.m_polygon.reverse()};f.ClipperOffset.GetUnitNormal=function(b,d){var e=d.X-b.X,k=d.Y-b.Y;if(0==e&&0==k)return new f.DoublePoint(0,0);var n=
1/Math.sqrt(e*e+k*k);return new f.DoublePoint(k*n,-(e*n))};f.ClipperOffset.prototype.DoOffset=function(b){this.m_destPolys=[];this.m_delta=b;if(f.ClipperBase.near_zero(b))for(var d=0;d<this.m_polyNodes.ChildCount();d++){var e=this.m_polyNodes.Childs()[d];e.m_endtype==f.EndType.etClosedPolygon&&this.m_destPolys.push(e.m_polygon)}else{this.m_miterLim=2<this.MiterLimit?2/(this.MiterLimit*this.MiterLimit):.5;var k=3.14159265358979/Math.acos(1-(0>=this.ArcTolerance?f.ClipperOffset.def_arc_tolerance:this.ArcTolerance>
Math.abs(b)*f.ClipperOffset.def_arc_tolerance?Math.abs(b)*f.ClipperOffset.def_arc_tolerance:this.ArcTolerance)/Math.abs(b));this.m_sin=Math.sin(f.ClipperOffset.two_pi/k);this.m_cos=Math.cos(f.ClipperOffset.two_pi/k);this.m_StepsPerRad=k/f.ClipperOffset.two_pi;0>b&&(this.m_sin=-this.m_sin);for(d=0;d<this.m_polyNodes.ChildCount();d++){e=this.m_polyNodes.Childs()[d];this.m_srcPoly=e.m_polygon;var n=this.m_srcPoly.length;if(!(0==n||0>=b&&(3>n||e.m_endtype!=f.EndType.etClosedPolygon))){this.m_destPoly=
-[];if(1==n)if(e.m_jointype==f.JoinType.jtRound)for(var e=1,n=0,p=1;p<=k;p++){this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b)));var v=e,e=e*this.m_cos-this.m_sin*n,n=v*this.m_sin+n*this.m_cos}else for(n=e=-1,p=0;4>p;++p)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b))),0>e?e=1:0>n?n=1:e=-1;else{for(p=this.m_normals.length=0;p<n-1;p++)this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[p],
-this.m_srcPoly[p+1]));e.m_endtype==f.EndType.etClosedLine||e.m_endtype==f.EndType.etClosedPolygon?this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[n-1],this.m_srcPoly[0])):this.m_normals.push(new f.DoublePoint(this.m_normals[n-2]));if(e.m_endtype==f.EndType.etClosedPolygon)for(v=n-1,p=0;p<n;p++)v=this.OffsetPoint(p,v,e.m_jointype);else if(e.m_endtype==f.EndType.etClosedLine){v=n-1;for(p=0;p<n;p++)v=this.OffsetPoint(p,v,e.m_jointype);this.m_destPolys.push(this.m_destPoly);this.m_destPoly=
-[];v=this.m_normals[n-1];for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-v.X,-v.Y);v=0;for(p=n-1;0<=p;p--)v=this.OffsetPoint(p,v,e.m_jointype)}else{v=0;for(p=1;p<n-1;++p)v=this.OffsetPoint(p,v,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(p=n-1,v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X+this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y+this.m_normals[p].Y*b)),this.m_destPoly.push(v),
-v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X-this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y-this.m_normals[p].Y*b)),this.m_destPoly.push(v)):(p=n-1,v=n-2,this.m_sinA=0,this.m_normals[p]=new f.DoublePoint(-this.m_normals[p].X,-this.m_normals[p].Y),e.m_endtype==f.EndType.etOpenSquare?this.DoSquare(p,v):this.DoRound(p,v));for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-this.m_normals[1].X,
--this.m_normals[1].Y);v=n-1;for(p=v-1;0<p;--p)v=this.OffsetPoint(p,v,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*b)),this.m_destPoly.push(v),v=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*b)),this.m_destPoly.push(v)):(this.m_sinA=0,e.m_endtype==f.EndType.etOpenSquare?
+[];if(1==n)if(e.m_jointype==f.JoinType.jtRound)for(var e=1,n=0,p=1;p<=k;p++){this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b)));var u=e,e=e*this.m_cos-this.m_sin*n,n=u*this.m_sin+n*this.m_cos}else for(n=e=-1,p=0;4>p;++p)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b))),0>e?e=1:0>n?n=1:e=-1;else{for(p=this.m_normals.length=0;p<n-1;p++)this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[p],
+this.m_srcPoly[p+1]));e.m_endtype==f.EndType.etClosedLine||e.m_endtype==f.EndType.etClosedPolygon?this.m_normals.push(f.ClipperOffset.GetUnitNormal(this.m_srcPoly[n-1],this.m_srcPoly[0])):this.m_normals.push(new f.DoublePoint(this.m_normals[n-2]));if(e.m_endtype==f.EndType.etClosedPolygon)for(u=n-1,p=0;p<n;p++)u=this.OffsetPoint(p,u,e.m_jointype);else if(e.m_endtype==f.EndType.etClosedLine){u=n-1;for(p=0;p<n;p++)u=this.OffsetPoint(p,u,e.m_jointype);this.m_destPolys.push(this.m_destPoly);this.m_destPoly=
+[];u=this.m_normals[n-1];for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-u.X,-u.Y);u=0;for(p=n-1;0<=p;p--)u=this.OffsetPoint(p,u,e.m_jointype)}else{u=0;for(p=1;p<n-1;++p)u=this.OffsetPoint(p,u,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(p=n-1,u=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X+this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y+this.m_normals[p].Y*b)),this.m_destPoly.push(u),
+u=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[p].X-this.m_normals[p].X*b),f.ClipperOffset.Round(this.m_srcPoly[p].Y-this.m_normals[p].Y*b)),this.m_destPoly.push(u)):(p=n-1,u=n-2,this.m_sinA=0,this.m_normals[p]=new f.DoublePoint(-this.m_normals[p].X,-this.m_normals[p].Y),e.m_endtype==f.EndType.etOpenSquare?this.DoSquare(p,u):this.DoRound(p,u));for(p=n-1;0<p;p--)this.m_normals[p]=new f.DoublePoint(-this.m_normals[p-1].X,-this.m_normals[p-1].Y);this.m_normals[0]=new f.DoublePoint(-this.m_normals[1].X,
+-this.m_normals[1].Y);u=n-1;for(p=u-1;0<p;--p)u=this.OffsetPoint(p,u,e.m_jointype);e.m_endtype==f.EndType.etOpenButt?(u=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*b)),this.m_destPoly.push(u),u=new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*b)),this.m_destPoly.push(u)):(this.m_sinA=0,e.m_endtype==f.EndType.etOpenSquare?
this.DoSquare(0,1):this.DoRound(0,1))}}this.m_destPolys.push(this.m_destPoly)}}}};f.ClipperOffset.prototype.Execute=function(){var b=arguments;if(b[0]instanceof f.PolyTree)if(d=b[0],e=b[1],d.Clear(),this.FixOrientations(),this.DoOffset(e),b=new f.Clipper(0),b.AddPaths(this.m_destPolys,f.PolyType.ptSubject,!0),0<e)b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftPositive,f.PolyFillType.pftPositive);else if(e=f.Clipper.GetBounds(this.m_destPolys),k=new f.Path,k.push(new f.IntPoint(e.left-10,e.bottom+
10)),k.push(new f.IntPoint(e.right+10,e.bottom+10)),k.push(new f.IntPoint(e.right+10,e.top-10)),k.push(new f.IntPoint(e.left-10,e.top-10)),b.AddPath(k,f.PolyType.ptSubject,!0),b.ReverseSolution=!0,b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftNegative,f.PolyFillType.pftNegative),1==d.ChildCount()&&0<d.Childs()[0].ChildCount())for(b=d.Childs()[0],d.Childs()[0]=b.Childs()[0],d.Childs()[0].m_Parent=d,e=1;e<b.ChildCount();e++)d.AddChild(b.Childs()[e]);else d.Clear();else{var d=b[0],e=b[1];f.Clear(d);
this.FixOrientations();this.DoOffset(e);b=new f.Clipper(0);b.AddPaths(this.m_destPolys,f.PolyType.ptSubject,!0);if(0<e)b.Execute(f.ClipType.ctUnion,d,f.PolyFillType.pftPositive,f.PolyFillType.pftPositive);else{var e=f.Clipper.GetBounds(this.m_destPolys),k=new f.Path;k.push(new f.IntPoint(e.left-10,e.bottom+10));k.push(new f.IntPoint(e.right+10,e.bottom+10));k.push(new f.IntPoint(e.right+10,e.top-10));k.push(new f.IntPoint(e.left-10,e.top-10));b.AddPath(k,f.PolyType.ptSubject,!0);b.ReverseSolution=
@@ -185,597 +185,625 @@ f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[d].Y*this.m_delta))),d}
this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)));else switch(e){case f.JoinType.jtMiter:e=1+(this.m_normals[b].X*this.m_normals[d].X+this.m_normals[b].Y*this.m_normals[d].Y);e>=this.m_miterLim?this.DoMiter(b,d,e):this.DoSquare(b,d);break;case f.JoinType.jtSquare:this.DoSquare(b,d);break;case f.JoinType.jtRound:this.DoRound(b,d)}return b};f.ClipperOffset.prototype.DoSquare=function(b,d){var e=Math.tan(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+
this.m_normals[d].Y*this.m_normals[b].Y)/4);this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[d].X-this.m_normals[d].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[d].Y+this.m_normals[d].X*e))));this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[b].X+this.m_normals[b].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[b].Y-this.m_normals[b].X*
e))))};f.ClipperOffset.prototype.DoMiter=function(b,d,e){e=this.m_delta/e;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+(this.m_normals[d].X+this.m_normals[b].X)*e),f.ClipperOffset.Round(this.m_srcPoly[b].Y+(this.m_normals[d].Y+this.m_normals[b].Y)*e)))};f.ClipperOffset.prototype.DoRound=function(b,d){for(var e=Math.max(f.Cast_Int32(f.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+this.m_normals[d].Y*this.m_normals[b].Y)))),
-1),k=this.m_normals[d].X,n=this.m_normals[d].Y,p,v=0;v<e;++v)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+k*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+n*this.m_delta))),p=k,k=k*this.m_cos-this.m_sin*n,n=p*this.m_sin+n*this.m_cos;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)))};f.Error=function(b){try{throw Error(b);
+1),k=this.m_normals[d].X,n=this.m_normals[d].Y,p,u=0;u<e;++u)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+k*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+n*this.m_delta))),p=k,k=k*this.m_cos-this.m_sin*n,n=p*this.m_sin+n*this.m_cos;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*this.m_delta),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*this.m_delta)))};f.Error=function(b){try{throw Error(b);
}catch(d){alert(d.message)}};f.JS={};f.JS.AreaOfPolygon=function(b,d){d||(d=1);return f.Clipper.Area(b)/(d*d)};f.JS.AreaOfPolygons=function(b,d){d||(d=1);for(var e=0,k=0;k<b.length;k++)e+=f.Clipper.Area(b[k]);return e/(d*d)};f.JS.BoundsOfPath=function(b,d){return f.JS.BoundsOfPaths([b],d)};f.JS.BoundsOfPaths=function(b,d){d||(d=1);var e=f.Clipper.GetBounds(b);e.left/=d;e.bottom/=d;e.right/=d;e.top/=d;return e};f.JS.Clean=function(b,d){if(!(b instanceof Array))return[];var e=b[0]instanceof Array;b=
-f.JS.Clone(b);if("number"!=typeof d||null===d)return f.Error("Delta is not a number in Clean()."),b;if(0===b.length||1==b.length&&0===b[0].length||0>d)return b;e||(b=[b]);for(var k=b.length,n,p,v,F,E,H,K,I=[],ea=0;ea<k;ea++)if(p=b[ea],n=p.length,0!==n)if(3>n)v=p,I.push(v);else{v=p;F=d*d;E=p[0];for(K=H=1;K<n;K++)(p[K].X-E.X)*(p[K].X-E.X)+(p[K].Y-E.Y)*(p[K].Y-E.Y)<=F||(v[H]=p[K],E=p[K],H++);E=p[H-1];(p[0].X-E.X)*(p[0].X-E.X)+(p[0].Y-E.Y)*(p[0].Y-E.Y)<=F&&H--;H<n&&v.splice(H,n-H);v.length&&I.push(v)}!e&&
-I.length?I=I[0]:e||0!==I.length?e&&0===I.length&&(I=[[]]):I=[];return I};f.JS.Clone=function(b){if(!(b instanceof Array)||0===b.length)return[];if(1==b.length&&0===b[0].length)return[[]];var d=b[0]instanceof Array;d||(b=[b]);var e=b.length,f,k,p,v,F=Array(e);for(k=0;k<e;k++){f=b[k].length;v=Array(f);for(p=0;p<f;p++)v[p]={X:b[k][p].X,Y:b[k][p].Y};F[k]=v}d||(F=F[0]);return F};f.JS.Lighten=function(b,d){if(!(b instanceof Array))return[];if("number"!=typeof d||null===d)return f.Error("Tolerance is not a number in Lighten()."),
-f.JS.Clone(b);if(0===b.length||1==b.length&&0===b[0].length||0>d)return f.JS.Clone(b);b[0]instanceof Array||(b=[b]);var e,k,n,p,v,F,E,H,K,I,ea,U,W,V,Y,Ea=b.length,ja=d*d,aa=[];for(e=0;e<Ea;e++)if(n=b[e],F=n.length,0!=F){for(p=0;1E6>p;p++){v=[];F=n.length;n[F-1].X!=n[0].X||n[F-1].Y!=n[0].Y?(ea=1,n.push({X:n[0].X,Y:n[0].Y}),F=n.length):ea=0;I=[];for(k=0;k<F-2;k++){E=n[k];K=n[k+1];H=n[k+2];V=E.X;Y=E.Y;E=H.X-V;U=H.Y-Y;if(0!==E||0!==U)W=((K.X-V)*E+(K.Y-Y)*U)/(E*E+U*U),1<W?(V=H.X,Y=H.Y):0<W&&(V+=E*W,Y+=
-U*W);E=K.X-V;U=K.Y-Y;H=E*E+U*U;H<=ja&&(I[k+1]=1,k++)}v.push({X:n[0].X,Y:n[0].Y});for(k=1;k<F-1;k++)I[k]||v.push({X:n[k].X,Y:n[k].Y});v.push({X:n[F-1].X,Y:n[F-1].Y});ea&&n.pop();if(I.length)n=v;else break}F=v.length;v[F-1].X==v[0].X&&v[F-1].Y==v[0].Y&&v.pop();2<v.length&&aa.push(v)}b[0]instanceof Array||(aa=aa[0]);"undefined"==typeof aa&&(aa=[[]]);return aa};f.JS.PerimeterOfPath=function(b,d,e){if("undefined"==typeof b)return 0;var f=Math.sqrt,k=0,p,v,F,E,H=b.length;if(2>H)return 0;for(d&&(b[H]=b[0],
-H++);--H;)p=b[H],F=p.X,p=p.Y,v=b[H-1],E=v.X,v=v.Y,k+=f((F-E)*(F-E)+(p-v)*(p-v));d&&b.pop();return k/e};f.JS.PerimeterOfPaths=function(b,d,e){e||(e=1);for(var k=0,n=0;n<b.length;n++)k+=f.JS.PerimeterOfPath(b[n],d,e);return k};f.JS.ScaleDownPath=function(b,d){var e,f;d||(d=1);for(e=b.length;e--;)f=b[e],f.X/=d,f.Y/=d};f.JS.ScaleDownPaths=function(b,d){var e,f,k;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X/=d,k.Y/=d};f.JS.ScaleUpPath=function(b,d){var e,f,k=Math.round;d||(d=1);for(e=
-b.length;e--;)f=b[e],f.X=k(f.X*d),f.Y=k(f.Y*d)};f.JS.ScaleUpPaths=function(b,d){var e,f,k,p=Math.round;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X=p(k.X*d),k.Y=p(k.Y*d)};f.ExPolygons=function(){return[]};f.ExPolygon=function(){this.holes=this.outer=null};f.JS.AddOuterPolyNodeToExPolygons=function(b,d){var e=new f.ExPolygon;e.outer=b.Contour();var k=b.Childs(),n=k.length;e.holes=Array(n);var p,v,F,E,H;for(v=0;v<n;v++)for(p=k[v],e.holes[v]=p.Contour(),F=0,E=p.Childs(),H=E.length;F<
-H;F++)p=E[F],f.JS.AddOuterPolyNodeToExPolygons(p,d);d.push(e)};f.JS.ExPolygonsToPaths=function(b){var d,e,k,n,p=new f.Paths;d=0;for(k=b.length;d<k;d++)for(p.push(b[d].outer),e=0,n=b[d].holes.length;e<n;e++)p.push(b[d].holes[e]);return p};f.JS.PolyTreeToExPolygons=function(b){var d=new f.ExPolygons,e,k,n;e=0;k=b.Childs();for(n=k.length;e<n;e++)b=k[e],f.JS.AddOuterPolyNodeToExPolygons(b,d);return d}})();
-var CindyJS=function(){function p(k){if(0===ja)return console.error("Waiting for "+k+" after we finished waiting."),function(){};0>ja&&(ja=0);++ja;return function(){--ja;0>ja&&console.error("Wait count mismatch: "+k);if(0===ja)for(var p=0,E=Ca.length;p<E;)Ca[p++].startup()}}function E(k){var p=E.newInstance(k);0>=ja?p.startup():!1!==k.autostart&&Ca.push(p);return p}var ja=-1,Ca=[];"undefined"===typeof document||"undefined"===typeof window||"undefined"===typeof document.addEventListener||"undefined"!==
-typeof window.cindyDontWait&&!0===window.cindyDontWait||document.addEventListener("DOMContentLoaded",p("DOMContentLoaded"));var pa=null,Da=null,aa={};E.getBaseDir=function(){if(null!==pa)return pa;for(var k=document.getElementsByTagName("script"),p=0;p<k.length;++p){var E=k[p],U=E.src;if(U){var W=/Cindy\.js$/.exec(U);if(W)return pa=U.substr(0,W.index),console.log("Will load extensions from "+pa),Da=E,pa}}console.error("Could not find <script> tag for Cindy.js");return pa=Da=!1};E.addNewScript=function(k,
-p){p||console.error.bind(console);var K=E.getBaseDir();if(!1===K)return!1;var U=document.createElement("script");U.src=K+k;var K=Da.nextSibling,W=Da.parentElement;K?W.insertBefore(U,K):W.appendChild(U);return U};E.loadScript=function(k,p,K,U){if(window[k])return K(),!0;U||(U=console.error.bind(console));var W=aa[k];if(!W){W=E.addNewScript(p,U);if(!1===W)return U("Can't load additional components."),!1;aa[k]=W}W.addEventListener("load",K);W.addEventListener("error",U);return null};E._autoLoadingPlugin=
-{};E.autoLoadPlugin=function(k,p,K){if(E._pluginRegistry[k])return K(),!0;var U=E._autoLoadingPlugin[k];if(!U){p||(p=k+"-plugin.js");U=E._autoLoadingPlugin[k]=[];k=E.addNewScript(p);if(!1===k)return!1;k.addEventListener("error",console.error.bind(console))}U.push(K);return null};var k={ctype:"undefined"};E.waitFor=p;E._pluginRegistry={};E.instances=[];E.registerPlugin=function(k,p,K){if(1!==k)return console.error("Plugin API version "+k+" not supported"),!1;E._pluginRegistry[p]=K;(E._autoLoadingPlugin[p]||
-[]).forEach(function(k){k()})};var Oa=0;E.dumpState=function(k){k=E.instances[k||0].saveState();console.log(JSON.stringify(k))};E.debugState=function(k){E.instances.map(function(k){var p=k.config,p=JSON.parse(JSON.stringify(p)),F=k.saveState();console.log(JSON.stringify(F));for(var E in F)p[E]=F[E];k.shutdown();return p}).forEach(function(k){E(k)})};E.newInstance=function(p){function E(){ka.width=da=ka.clientWidth;ka.height=ca=ka.clientHeight;y.setTransform(1,0,0,1,0,0);z.setMat(25,0,0,25,250.5,250.5);
-if(yb)for(var a=0;a<yb.length;a++){var h=yb[a],c=Object.keys(h)[0];"scale"===c&&(Kb=h.scale,z[c](h.scale));if("translate"===c)z[c](h.translate[0],h.translate[1]);"scaleAndOrigin"===c&&(Kb=h[c][0]/25,z[c].apply(null,h[c]));"visibleRect"===c&&(z[c].apply(null,h[c]),Kb=z.drawingstate.initialmatrix.a/25)}z.createnewbackup();z.greset();a=1;"undefined"!==typeof window&&window.devicePixelRatio&&(a=window.devicePixelRatio);h=y.webkitBackingStorePixelRatio||y.mozBackingStorePixelRatio||y.msBackingStorePixelRatio||
-y.oBackingStorePixelRatio||y.backingStorePixelRatio||1;a!==h&&(a/=h,ka.width=da*a,ka.height=ca*a,y.scale(a,a))}function K(a){var h;if("canvas"!==a.tagName.toLowerCase())for(h=a,ka=document.createElement("canvas");h.firstChild;)h.removeChild(h.firstChild);else{ka=a;h=document.createElement("div");var c=null,r=null;Array.prototype.slice.call(ka.attributes).forEach(function(a){"width"===a.name?c=a.value:"height"===a.name?r=a.value:h.setAttributeNodeNS(ka.removeAttributeNode(a))});null===c||h.style.width||
-(h.style.width=c+"px");null===r||h.style.height||(h.style.height=r+"px");ka.parentNode.replaceChild(h,ka)}h.classList.add("CindyJS-widget");a=ka.style;a.position="absolute";a.border="none";a.margin=a.padding=a.left=a.top="0px";a.width=a.height="100%";a="static";window.getComputedStyle&&(a=window.getComputedStyle(h).getPropertyValue("position"),a=String(a||"static"));"static"===a&&(h.style.position="relative");h.appendChild(ka);return ka}function U(){var a=p.cinderella;if(!a||!a.version)return!1;for(var h=
-0;h<arguments.length;++h){var c=a.version[h],r=arguments[h];if(c!==r)return typeof c===typeof r&&c<r}return!1}function W(){ac=!0;if(0===Lb){if(p.exclusive)for(b=wa.instances.length;0<b;)wa.instances[--b].shutdown();void 0!==p.csconsole&&(ia=p.csconsole);ia=null===ia?new qa:!0===ia?new xb:"string"===typeof ia?new cb(ia):"object"===typeof ia&&"function"===typeof ia.appendChild?new cb(ia):new qa;ta=[100,100];var a=null;yb=p.transform;if(p.ports&&0<p.ports.length){b=p.ports[0];(a=b.element)||(a=document.getElementById(b.id));
-var a=K(a),h=a.parentNode.style;"window"===b.fill?(h.width="100vw",h.height="100vh"):"parent"===b.fill?(h.width="100%",h.height="100%"):b.width&&b.height&&(h.width=b.width+"px",h.height=b.height+"px");b.background&&(a.style.backgroundColor=b.background);void 0!==b.transform&&(yb=b.transform);Fa(b.grid)&&0<b.grid&&(Wa=b.grid);Fa(b.tgrid)&&0<b.tgrid&&(bc=b.tgrid);b.snap&&(cc=!0);b.axes&&(zb=!0)}a||(a=p.canvas,a||"undefined"===typeof document||(a=document.getElementById(p.canvasname))&&(a=K(a)));a&&
-(ka=a,y=a.getContext("2d"),E(),y.setLineDash||(y.setLineDash=function(){}),(p.animation?p.animation.controls:p.animcontrols)&&ja(p),p.animation&&Fa(p.animation.speed)&&(void 0===p.animation.accuracy&&U(2,9,1875)?sa(.5*p.animation.speed):sa(p.animation.speed)),p.animation&&Fa(p.animation.accuracy)&&(Mb=p.animation.accuracy));p.statusbar&&(dc="string"===typeof p.statusbar?document.getElementById(p.statusbar):p.statusbar);var c=p.scripts,r=null;"string"===typeof c&&c.search(/\*/)&&(r=c);"object"!==typeof c&&
-(c=null);"move keydown keyup keytyped keytype mousedown mouseup mousedrag mousemove mouseclick init tick draw simulationstep simulationstart simulationstop ondrop".split(" ").forEach(function(a){var h;if(null!==c&&c[a])h=c[a];else{h=a+"script";if(p[h])h=document.getElementById(p[h]);else if(r){if(h=document.getElementById(r.replace(/\*/,a)),!h)return}else return;h=h.text}h=Ra(h,!1);"error"===h.ctype?console.error("Error compiling "+a+" script: "+h.message):S[a]=h});U(2,9,1888)&&!S.keydown&&(S.keydown=
-S.keytyped,S.keytyped=S.keytype,S.keytype=void 0);Fa(p.grid)&&0<p.grid&&(Wa=p.grid);p.snap&&(cc=!0);u={};var b=0;Xa={};p.geometry||(p.geometry=[]);Md(p.geometry);p.behavior||(p.behavior=[]);"function"===typeof ec&&ec(p.behavior);for(var d in p.images)b=aa(p.images[d],!1),b!==k&&(Xa[d]=b);for(var g in p.videos)d=aa(p.videos[g],!0),d!==k&&(Xa[g]=d);oa.canvas=a;if(p.oninit)p.oninit(oa);wa.instances.push(oa);p.use&&p.use.forEach(function(a){t.use$1([w.wrap(a)],{})});Nc.convexhull3d$1&&pa("QuickHull3D",
-"QuickHull3D.js");V()}}function aa(a,h){var c;"string"===typeof a?(h?(c=document.createElement("video"),c.preload="auto",c.loop=!0,c.setAttribute("playsinline",""),enableInlineVideo(c)):c=new Image,c.src=a):c=a;if(!c.tagName)return console.error("Not a valid image element",c),k;var r={img:c,width:NaN,height:NaN,ready:!0,live:!1,generation:0,whenReady:f},b=c.tagName.toLowerCase(),d=[];if("img"===b)c.complete?(r.width=c.width,r.height=c.height):(r.ready=!1,c.addEventListener("load",function(){r.width=
-c.width;r.height=c.height;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("video"===b)r.live=!0,c.readyState>=c.HAVE_METADATA?(r.width=c.videoWidth,r.height=c.videoHeight):(r.ready=!1,c.addEventListener("loadedmetadata",function(){r.width=c.videoWidth;r.height=c.videoHeight;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("canvas"===b)r.width=c.width,r.height=c.height;else return console.error("Not a valid image element",b,c),k;return{ctype:"image",
-value:r}}function ja(a){function h(a,c){var h=document.createElement("button"),r=document.createElement("img");h.appendChild(r);l.appendChild(h);Ab(r,a);h.addEventListener("click",c);Sa[a]=function(a){a?h.classList.add("CindyJS-active"):h.classList.remove("CindyJS-active")}}function c(a){if(k){var c=e.getBoundingClientRect();sa(g*(a.clientX-c.left-e.clientLeft+.5)/c.width+b)}}var r=document.createElement("div");r.className="CindyJS-animcontrols";ka.parentNode.appendChild(r);var b=0,d=1,g=1;a.animation&&
-a.animation.speedRange&&Fa(a.animation.speedRange[0])&&Fa(a.animation.speedRange[1])&&(b=a.animation.speedRange[0],d=a.animation.speedRange[1],g=d-b);var e=document.createElement("div");e.className="CindyJS-animspeed";r.appendChild(e);var f=document.createElement("div");e.appendChild(f);H(e,"mousedown",function(a){k=!0;c(a)});H(e,"mousemove",c);H(ka.parentNode,"mouseup",function(a){k=!1},!0);var l=document.createElement("div");l.className="CindyJS-animbuttons";r.appendChild(l);h("play",I);h("pause",
-Ca);h("stop",Da);Sa.stop(!0);gc=function(a){a=(a-b)/g;a=Math.max(0,Math.min(1,a));a=.1*Math.round(1E3*a);f.style.width=a+"%"};var k=!1}function sa(a){Oc=a;gc&&gc(a)}function f(a){return a()}function pa(a,h){var c=null;p.plugins&&(c=p.plugins[a]);c||(c=wa._pluginRegistry[a]);c?t.use$1([w.wrap(a)],{}):(++Pc,wa.autoLoadPlugin(a,h,function(){t.use$1([w.wrap(a)],{});V()}))}function V(){0===--Pc&&(A(S.init),(p.animation||p).autoplay&&I(),oa.canvas&&Zb(oa.canvas,p))}function Y(){null!==Bb&&(ma.set(Bb.state),
-Object.keys(Bb.speeds).forEach(function(a){var h=u.csnames[a];"undefined"!==typeof h.behavior&&(a=Bb.speeds[a],h.behavior.vx=a[0],h.behavior.vy=a[1],h.behavior.vz=a[2],h.behavior.fx=0,h.behavior.fy=0,h.behavior.fz=0)}),Nd())}function I(){if(!Ya){if(Ob){var a=db.backup;a.set(ma);for(var h={},c=0;c<u.points.length;c++){var r=u.points[c];"undefined"!==typeof r.behavior&&(h[r.name]=[r.behavior.vx,r.behavior.vy,r.behavior.vz])}Bb={state:a,speeds:h};Cb=0;Ob=!1;Sa.stop(!1)}else Sa.pause(!1);hc=Date.now();
-Sa.play(!0);"function"===typeof ec&&ic&&Od();Ya=!0;A(S.simulationstart);e()}}function Ca(){Ya&&(Sa.play(!1),Sa.pause(!0),Ya=!1)}function Da(){Ob||(Ya?(A(S.simulationstop),Ya=!1,Sa.play(!1)):Sa.pause(!1),Sa.stop(!0),Ob=!0,Y())}function Qa(){if(!jc){jc=!0;for(var a=wa.instances.length;0<a;)if(wa.instances[--a]===oa){wa.instances.splice(a,1);break}for(a=jb.length;0<a;)try{jb[--a]()}catch(h){console.error(h)}}}function ab(a){this["in"]=function(a,c){console.log(a);c?this.append(this.createTextNode("span",
-"blue",a)):this.append(this.createTextNode("p","blue",a))};this.out=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.err=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.createTextNode=function(a,c,r){return"undefined"!==typeof document?(a=document.createElement(a),a.appendChild(document.createTextNode(r)),a.style.color=c,a):r+"\n"}}
-function xb(){var a=this,h,c=document.createElement("div"),r;c.innerHTML='<div id="console" style="border-top: 1px solid #333333; bottom: 0px; position: absolute; width: 100%;"><div id="log" style="height: 150px; overflow-y: auto;"></div><input id="cmd" type="text" style="box-sizing: border-box; height: 30px; width: 100%;"></div>';document.body.appendChild(c);h=document.getElementById("cmd");r=document.getElementById("log");h.onkeydown=function(c){13===c.keyCode&&""!==h.value&&(a["in"](h.value),c=
-t.parse$1([w.wrap(h.value)],[]),c=A(c),console.log(ba(c)),"undefined"!==c.ctype&&ia.out(ba(c)),h.value="",r.scrollTop=r.scrollHeight)};this.append=function(a){r.appendChild(a)};this.clear=function(){r.innerHTML=""}}function cb(a){var h=a;"string"===typeof a&&(h=document.getElementById(a));this.append=function(a){h.appendChild(a)};this.clear=function(){h.innerHTML=""}}function qa(){this.append=function(a){};this.clear=function(){}}function H(a,h,c,r){void 0===r&&(r=!1);jb.push(function(){a.removeEventListener(h,
-c,r)});a.addEventListener(h,c,r)}function Zb(a,h){function c(c){var h=a.getBoundingClientRect();c=z.to(c.clientX-h.left-a.clientLeft+.5,c.clientY-h.top-a.clientTop+.5);X.prevx=X.x;X.prevy=X.y;X.x=c[0];X.y=c[1];ta[0]=X.x;ta[1]=X.y;e()}function r(a){for(var c=a.changedTouches,h=!1,r=0;r<c.length;r++)c[r].identifier===Q&&(h=!0);h&&(Q=-1,X.down=!1,fa=void 0,A(S.mouseup),qb("mouseup"),e(),a.preventDefault())}var b=null;"undefined"!==typeof MutationObserver&&(b=MutationObserver);b||"undefined"===typeof WebKitMutationObserver||
-(b=WebKitMutationObserver);b?(b=new b(function(c){document.body.contains(a)||Qa()}),b.observe(document.documentElement,{childList:!0,subtree:!0}),jb.push(function(){b.disconnect()})):(H(a,"DOMNodeRemovedFromDocument",Qa),H(a,"DOMNodeRemoved",Qa));if(!0===h.keylistener)H(document,"keydown",function(a){N(a,S.keydown);return!1}),H(document,"keyup",function(a){N(a,S.keyup);return!1}),H(document,"keypress",function(a){N(a,S.keytyped);return!1});else if(S.keydown||S.keyup||S.keytyped)a.setAttribute("tabindex",
-"0"),H(a,"mousedown",function(){a.focus()}),H(a,"keydown",function(a){9!==a.keyCode&&(N(a,S.keydown),S.keytyped||a.preventDefault())}),H(a,"keyup",function(a){N(a,S.keyup);a.preventDefault()}),H(a,"keypress",function(a){9!==a.keyCode&&(N(a,S.keytyped),a.preventDefault())});H(a,"mousedown",function(a){X.button=a.which;c(a);A(S.mousedown);qb("mousedown");X.down=!0;a.preventDefault()});H(a,"mouseup",function(a){X.down=!1;fa=void 0;A(S.mouseup);qb("mouseup");e();a.preventDefault()});H(a,"mousemove",function(a){c(a);
-X.down?A(S.mousedrag):A(S.mousemove);qb("mousemove");a.preventDefault()});H(a,"click",function(a){c(a);A(S.mouseclick);a.preventDefault()});H(a,"dragenter",function(a){a.preventDefault()});H(a,"dragover",function(a){a.preventDefault()});H(a,"drop",function(c){function h(a,c){function g(){e.readyState===XMLHttpRequest.DONE&&(200!==e.status?(console.error("GET request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k)):b(c,e.responseText))}var Q=a.replace(/[?#][^]*/,""),Q=Q.replace(/[^]*\/([^\/])/,
-"$1");f[c]={type:"",name:Q};var e=new XMLHttpRequest;e.onreadystatechange=function(){if(e.readyState===XMLHttpRequest.DONE)if(200!==e.status)console.error("HEAD request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k);else{var h=e.getResponseHeader("Content-Type");f[c].type=h;/^image\//.test(h)?na(c,a):r(h)?(e=new XMLHttpRequest,e.onreadystatechange=g,e.open("GET",a),e.send()):d(c,k)}};e.open("HEAD",a);e.send()}function r(a){a=a.replace(/;[^]*/,"");return/^text\//.test(a)?1:"application/json"===
-a?2:0}function b(a,c){switch(r(f[a].type)){case 1:d(a,w.string(c));break;case 2:var h,na;try{h=JSON.parse(c),na=w.wrapJSON(h)}catch(g){console.error(g),na=k}d(a,na);break;default:d(a,k)}}function na(a,c){var h=new Image,r=!1;h.onload=function(){r||(r=!0,d(a,aa(h,!1)))};h.onerror=function(c){r||(r=!0,console.error(c),d(a,k))};h.src=c}function d(a,c,h){l[a]=g.turnIntoCSList([c,w.string(h||c.ctype),w.string(f[a].type),w.string(f[a].name)]);0===--m&&(a=p,kc=g.turnIntoCSList(l),lc=a,A(S.ondrop),lc=kc=
-k,e())}c.preventDefault();var Q=c.dataTransfer,f=Q.files,l=Array(f.length),m=f.length,n=c.currentTarget.getBoundingClientRect(),p=g.realVector(z.to(c.clientX-n.left-a.clientLeft+.5,c.clientY-n.top-a.clientTop+.5));if(0<f.length)Array.prototype.forEach.call(f,function(a,c){var h=new FileReader;r(a.type)?(h.onload=function(){b(c,h.result)},h.readAsText(a)):/^image\//.test(a.type)?(h.onload=function(){na(c,h.result)},h.readAsDataURL(a)):(console.log("Unknown MIME type: "+a.type),d(c,k))});else if(c=
-Q.getData("text/uri-list"))c=c.split("\n").filter(function(a){return!/^\s*(#|$)/.test(a)}),m=c.length,l=Array(m),f=Array(m),c.forEach(h)});var Q=-1;H(a,"touchstart",function(a){if(-1===Q){var h=a.changedTouches;0!==h.length&&(Q=h[0].identifier,c(a.targetTouches[0]),A(S.mousedown),X.down=!0,qb("mousedown"),a.preventDefault())}},!1);H(a,"touchmove",function(a){for(var h=a.changedTouches,r=!1,b=0;b<h.length;b++)h[b].identifier===Q&&(r=!0);r&&(c(a.targetTouches[0]),X.down?A(S.mousedrag):A(S.mousemove),
-qb("mousemove"),a.preventDefault())},!0);H(a,"touchend",r,!1);"undefined"!==typeof document&&document.body&&H(document.body,"touchcancel",r,!1);"undefined"!==typeof window&&H(window,"resize",function(){Pb(function(){E();e()})},!1);d(a.parentNode);e()}function b(a,h){var c=document.createElement("div");c.setAttribute("style",h);a.appendChild(c);return c}function d(a){function h(){r.scrollLeft=r.scrollTop=na.scrollLeft=na.scrollTop=1E5}function c(){if(d!==a.clientWidth||g!==a.clientHeight)d=a.clientWidth,
-g=a.clientHeight,f||(f=!0,Pb(function(){f=!1;E();e()}));h()}if("undefined"!==typeof document){var r=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(r,"position: absolute; transition: 0s; left: 0; top: 0; width: 100000px; height: 100000px");var na=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(na,"position: absolute; transition: 0s; left: 0; top: 0; width: 200%; height: 200%");
-h();var d=a.clientWidth,g=a.clientHeight,f=!1;r.addEventListener("scroll",c);na.addEventListener("scroll",c)}}function e(){mc||(mc=Pb(q))}function q(){mc=null;if(!jc){if(Ya){var a=Date.now(),h=Math.min(50,a-hc)*Oc*Pd;hc=a;a=Cb+h;ic&&"undefined"!==typeof ra&&ra.tick(h);Cb=a;Ya&&A(S.tick)}n();Ya&&e()}}function n(){z.reset();y.save();y.clearRect(0,0,da,ca);var a=z.drawingstate.matrix,h,c,r,b,d;if(0!==Wa){y.beginPath();y.strokeStyle="rgba(0,0,0,0.1)";y.lineWidth=1;y.lineCap="butt";h=Wa*a.a;for(b=Math.ceil(-a.tx/
-h);(d=b*h+a.tx)<da;){if(b||!zb)y.moveTo(d,0),y.lineTo(d,ca);b++}for(b=Math.floor(a.ty/h);(d=b*h-a.ty)<ca;){if(b||!zb)y.moveTo(0,d),y.lineTo(da,d);b++}y.stroke()}if(0!==bc){y.beginPath();y.strokeStyle="rgba(0,0,0,0.1)";y.lineWidth=1;y.lineCap="butt";h=bc*a.a;var e=Math.sqrt(3);c=a.ty/e;r=(ca+a.ty)/e;for(b=Math.ceil(-(a.tx+r)/h);(d=b*h+a.tx)+c<da;)y.moveTo(d+c,0),y.lineTo(d+r,ca),b++;for(b=Math.ceil(-(a.tx-c)/h);(d=b*h+a.tx)-r<da;)y.moveTo(d-c,0),y.lineTo(d-r,ca),b++;h*=.5*e;for(b=Math.floor(a.ty/h);(d=
-b*h-a.ty)<ca;){if(b||!zb)y.moveTo(0,d),y.lineTo(da,d);b++}y.stroke()}zb&&(y.beginPath(),y.strokeStyle="rgba(0,0,0,0.2)",y.lineWidth=3,y.lineCap="butt",y.lineJoin="miter",y.miterLimit=10,y.beginPath(),y.moveTo(0,-a.ty),y.lineTo(da-6,-a.ty),y.moveTo(da-13,-5-a.ty),y.lineTo(da-3,-a.ty),y.lineTo(da-13,5-a.ty),y.moveTo(a.tx,ca),y.lineTo(a.tx,6),y.moveTo(a.tx-5,13),y.lineTo(a.tx,3),y.lineTo(a.tx+5,13),y.stroke());Qd();z.greset();Rd();for(a=0;a<u.polygons.length;a++)h=u.polygons[a],h.isshowing&&!1!==h.visible&&
-(c={color:h.color,alpha:h.alpha,fillcolor:h.fillcolor,fillalpha:h.fillalpha,size:h.size,lineJoin:w.string("miter"),fillrule:w.string(h.fillrule)},D.drawpolygon([h.vertices],c,"D",!0));for(a=0;a<u.conics.length;a++)u.conics[a].isArc?(h=u.conics[a],h.isshowing&&!1!==h.visible&&(c={},c.color=h.color,c.alpha=h.alpha,c.size=h.size,D.drawarc(h,c,h.filled?"F":"D"))):(h=u.conics[a],h.isshowing&&!1!==h.visible&&(c={},c.color=h.color,c.alpha=h.alpha,c.size=h.size,D.drawconic(h.matrix,c)));for(a=0;a<u.lines.length;a++)a:if(h=
-u.lines[a],h.isshowing&&!1!==h.visible&&g._helper.isAlmostReal(h.homog))if("S"===h.kind)c={overhang:h.overhang,dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,arrow:h.arrow,arrowsize:h.arrowsize,arrowposition:h.arrowposition,arrowshape:h.arrowshape,arrowsides:h.arrowsides},0<=l.mult(h.startpos.value[2],l.conjugate(h.endpos.value[2])).value.real?t.draw$2([h.startpos,h.endpos],c):(x.handleModifs(c,x.lineModifs),x.drawRaySegment(h.startpos,h.endpos));else if("end"===h.clip.value&&"Join"===
-h.type)b=u.csnames[h.args[0]],c=u.csnames[h.args[1]],t.draw$2([b.homog,c.homog],{overhang:h.overhang,dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha});else{if("inci"===h.clip.value){b=[1E6,0];c=[-1E6,0];d=[1E6,0];r=[-1E6,0];for(e=0;e<h.incidences.length;e++){var f=u.csnames[h.incidences[e]].homog,k=f.value[0],m=f.value[1],n=f.value[2];l._helper.isAlmostZero(n)||(k=l.div(k,n),m=l.div(m,n),l._helper.isAlmostReal(k)&&l._helper.isAlmostReal(m)&&(k.value.real<b[0]&&(b=[k.value.real,f]),k.value.real>
-c[0]&&(c=[k.value.real,f]),m.value.real<d[0]&&(d=[m.value.real,f]),m.value.real>r[0]&&(r=[m.value.real,f])))}c[0]-b[0]>r[0]-d[0]?(b=b[1],c=c[1]):(b=d[1],c=r[1]);if(b!==c){t.draw$2([b,c],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,overhang:h.overhang});break a}}t.draw$1([h.homog],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha})}for(a=0;a<u.points.length;a++)h=u.points[a],h.isshowing&&!1!==h.visible&&g._helper.isAlmostReal(h.homog)&&(c=h.color,h.behavior&&(c=h.color),
-t.draw$1([h.homog],{size:h.size,color:c,alpha:h.alpha}),h.labeled&&!h.tmp&&(c=h.printname||h.name||"P",r=h.labelpos||{x:3,y:3},b=h.textsize||la.textsize,d=!0===h.textbold,e=!0===h.textitalics,f=h.text_fontfamily||la.fontFamily,k=r.x*r.x+r.y*r.y,m=1,0<k&&(m=1+h.size.value.real/Math.sqrt(k)),D.drawtext([h.homog,w.wrap(c)],{x_offset:w.wrap(m*r.x),y_offset:w.wrap(m*r.y),size:w.wrap(b),bold:w.wrap(d),italics:w.wrap(e),family:w.wrap(f)})));for(a=0;a<u.texts.length;a++)Sd(u.texts[a]);y.restore()}function N(a,
-h){var c=window.event?event:a,c=c.charCode?c.charCode:c.keyCode;Qc=String.fromCharCode(c);Rc=c;A(h);e()}function v(a){var h=a.value;a=h[0].value;var c=h[1].value,h=h[2].value;return g.turnIntoCSList([a[0],l.add(a[1],c[0]),l.add(a[2],h[0]),c[1],l.add(c[2],h[1]),h[2]])}function C(a){var h=!0;return function(c,r){h&&(console.error("Operator "+a+" is not supported yet."),h=!1);return k}}function ba(a){if("undefined"===typeof a)return"_??_";if(null===a)return"_???_";if("undefined"===a.ctype)return"___";
-if("number"===a.ctype)return l.niceprint(a);if("string"===a.ctype||"boolean"===a.ctype)return a.value;if("list"===a.ctype){for(var h="[",c=0;c<a.value.length;c++)h+=ba(A(a.value[c])),c!==a.value.length-1&&(h+=", ");return h+"]"}return"dict"===a.ctype?Ka.niceprint(a):"function"===a.ctype?"FUNCTION":"infix"===a.ctype?"INFIX":"modifier"===a.ctype?a.key+"->"+ba(a.value):"shape"===a.ctype?a.type:"error"===a.ctype?"Error: "+a.message:"variable"===a.ctype?ba(J.getvar(a.name)):"geo"===a.ctype?a.value.name:
-"image"===a.ctype?"IMAGE":"_?_"}function bb(a,h){var c="undefined"===a[0].ctype,r="undefined"===a[1].ctype,b=A(a[1]);if(c||r)return k;"variable"===a[0].ctype?J.setvar(a[0].name,b):"infix"===a[0].ctype?"_"===a[0].oper?D.assigntake(a[0],b):console.error("Can't use infix expression as lvalue"):"field"===a[0].ctype?D.assigndot(a[0],b):"function"===a[0].ctype&&"genList"===a[0].oper?"list"===b.ctype?D.assignlist(a[0].args,b.value):console.error("Expected list in rhs of assignment"):console.error("Left hand side of assignment is not a recognized lvalue");
-return b}function pb(a,h){var c=A(a[0]),r=A(a[1]);if(c.ctype===r.ctype){if("number"===c.ctype)return w.bool(c.value.real===r.value.real&&c.value.imag===r.value.imag);if("string"===c.ctype||"boolean"===c.ctype)return w.bool(c.value===r.value);if("list"===c.ctype)return g.equals(c,r);if("geo"===c.ctype)return w.bool(c.value===r.value)}return{ctype:"boolean",value:!1}}function Gc(a,h){return w.not(pb(a,h))}function Yb(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?{ctype:"boolean",
-value:l._helper.isAlmostEqual(c,r)}:"string"===c.ctype&&"string"===r.ctype||"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value===r.value}:"list"===c.ctype&&"list"===r.ctype?g.almostequals(c,r):{ctype:"boolean",value:!1}}function Hc(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value&&r.value}:k}function Ic(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value||r.value}:
-k}function Jc(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.add(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function $b(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.sub(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function Kc(a,h){var c=B(a[0]),r=B(a[1]),b=w.mult(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Lc(a,h){var c=
-B(a[0]),r=B(a[1]);"number"===r.ctype&&l._helper.isZero(r)&&ia.err("WARNING: Division by zero!");var b=w.div(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Mc(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?l.pow(c,r):k}function Sc(a,h){var c=M(a[0]),r=M(a[1]);if(c!==k&&r!==k){var b=g.cross(c,r);"Point"===c.usage&&"Point"===r.usage&&(b=w.withUsage(b,"Line"));"Line"===c.usage&&"Line"===r.usage&&
-(b=w.withUsage(b,"Point"));return b}return k}function nc(a){var h=a.length;if(0===h)return[];if(1===h)return[0];if(2===h)return a[0][0]+a[1][1]<=a[0][1]+a[1][0]?[0,1]:[1,0];if(4<h)return Td(a);for(var c=Ud[h],r=Number.POSITIVE_INFINITY,b=c[0],d=0;d<c.length;++d){for(var g=c[d],e=0,f=0;f<h;++f)e+=a[f][g[f]];e<r&&(r=e,b=g)}return b}function Td(a){function h(){return{matched:-1,prev:-1,start:-1,cost:0,used:!1,leaf:!1}}function c(a){for(var h=0;h<d;++h)0<k[a][h]||l[h].used||(l[h].used=!0,c(l[h].matched))}
-function r(a){for(var c=0;c<d;++c)0<k[c][a]||f[c].used||(f[c].used=!0,r(f[c].matched))}var b=Math.abs,d=a.length,g,e,f=Array(d),l=Array(d),k=Array(d);for(g=0;g<d;++g)k[g]=Array(d);for(g=0;g<d;++g)for(f[g]=h(),l[g]=h(),f[g].cost=a[g][0],e=1;e<d;++e)f[g].cost>a[g][e]&&(f[g].cost=a[g][e]);for(;;){for(g=0;g<d;++g)for(e=0;e<d;++e)k[g][e]=a[g][e]-f[g].cost-l[e].cost,k[g][e]<1E-14*(b(a[g][e])+b(f[g].cost)+b(l[e].cost))&&(k[g][e]=0);for(g=0;g<d;++g)f[g].matched=l[g].matched=-1;for(var m=0;;){for(g=0;g<d;++g)f[g].used=
-f[g].leaf=l[g].used=l[g].leaf=!1,-1===f[g].matched&&(f[g].start=g,f[g].used=f[g].leaf=!0,f[g].prev=-1);for(var n=!1,p=!1;!p;){for(g=0;g<d;++g)if(f[g].leaf)for(f[g].leaf=!1,e=0;e<d;++e)if(!(l[e].used||0<k[g][e])&&f[g].matched!==e&&(l[e].prev=g,l[e].start=f[g].start,l[e].used=l[e].leaf=!0,-1===l[e].matched)){f[l[e].start].prev=e;n=!0;break}if(n)break;p=!0;for(e=0;e<d;++e)l[e].leaf&&(l[e].leaf=!1,g=l[e].matched,f[g].used||(f[g].prev=e,f[g].start=l[e].start,f[g].used=f[g].leaf=!0,p=!1))}if(!n)break;for(n=
-0;n<d;++n)if(-1===f[n].matched&&-1!==f[n].prev){e=f[n].prev;do g=l[e].prev,l[e].matched=g,f[g].matched=e,e=f[g].prev;while(g!==n);++m}}if(m===d)break;for(g=0;g<d;++g)f[g].used=f[g].leaf=l[g].used=l[g].leaf=!1;for(g=0;g<d;++g)-1===f[g].matched&&c(g);for(e=0;e<d;++e)-1===l[e].matched&&r(e);for(g=0;g<d;++g)-1===f[g].matched||f[g].used||l[f[g].matched].used||(f[g].used=!0);m=Number.POSITIVE_INFINITY;for(g=0;g<d;++g)if(!f[g].used)for(e=0;e<d;++e)l[e].used||m>k[g][e]&&(m=k[g][e]);for(g=0;g<d;++g)f[g].used||
-(f[g].cost+=m),l[g].used&&(l[g].cost-=m)}a=Array(d);for(g=0;g<d;++g)e=f[g].matched,a[g]=e;return a}function oc(a,h){var c=A(a[0]),r=B(a[1]);"string"!==c.ctype&&(c=g.asList(c));if("number"===r.ctype){r=Math.floor(r.value.real);0>r&&(r=c.value.length+r+1);if(0<r&&r<c.value.length+1)return"list"===c.ctype?c.value[r-1]:{ctype:"string",value:c.value.charAt(r-1)};ia.err("WARNING: Index out of range!");return k}if("list"===r.ctype){for(var b=[],d=0;d<r.value.length;d++){var e=B(r.value[d]);b[d]=oc([c,e],
-[])}return g.turnIntoCSList(b)}return k}function Tc(a,h){var c=A(a[0]),r=A(a[1]);if("shape"===c.ctype&&"shape"===r.ctype)return D.shapeconcat(c,r);c=g.asList(c);r=g.asList(r);return"list"===c.ctype&&"list"===r.ctype?g.concat(c,r):k}function Uc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype&&"list"===r.ctype?g.set(g.common(c,r)):"shape"===c.ctype&&"shape"===r.ctype?D.shapecommon(c,r):k}function Vc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype&&"list"===r.ctype?g.remove(c,r):"shape"===c.ctype&&
-"shape"===r.ctype?D.shaperemove(c,r):k}function Wc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===c.ctype?g.append(c,r):k}function Xc(a,h){var c=A(a[0]),r=A(a[1]);return"list"===r.ctype?g.prepend(c,r):k}function pc(a,h){a|=0;h|=0;if(0===a&&0===h)return 0;for(;0!==h;){var c=a;a=h;h=c%h|0}return a}function Vd(a){return 1===a?0:1}function Yc(a,h,c,r,b,d,g){if(-1!==h.indexOf("\n")){var e=Infinity,f=-Infinity,l=Infinity,k=-Infinity;h.split("\n").forEach(function(h){h=Yc(a,h,c,r,b,d);e>h.left&&(e=h.left);
-f<h.right&&(f=h.right);l>h.top&&(l=h.top);k<h.bottom&&(k=h.bottom);r+=g});return{left:e,right:f,top:l,bottom:k}}var m=a.measureText(h);a.fillText(h,c-m.width*b,r);return{left:c-m.width*b,right:c+m.width*(1-b),top:r-.84*d,bottom:r+.36*d}}function La(a){return"image"===a.ctype?a.value:"string"===a.ctype&&Xa.hasOwnProperty(a.value)?Xa[a.value].value:null}function rb(a,h,c,r,b){var d=[];if(a.readPixels)d=a.readPixels(h,c,r,b);else{var g,e;if(a.img.getContext)e=a.img.getContext("2d"),g=e.getImageData(h,
-c,r,b).data;else try{Db||(Db=document.createElement("canvas")),Db.width=r,Db.height=b,e=Db.getContext("2d"),e.drawImage(a.img,h,c,r,b,0,0,r,b),g=e.getImageData(0,0,r,b).data}catch(f){console.log(f)}for(var l in g)d.push(g[l]/255)}return d}function Zc(a){return a.replace(/[^A-Za-z0-9 \u0080-\uffff]/ig,"\\$&")}function ha(a,h,c){var r=a;h&&(r=r+" at "+h.row+":"+h.col);c&&(r=r+": \u2018"+c+"\u2019");r=Error(r);r.name="CindyScriptParseError";r.description=a;r.location=h;r.text=c;return r}function kb(a){this.input=
-a;this.re=new RegExp($c,"g");for(var h=[],c=a.indexOf("\n")+1;c;)h.push(c),c=a.indexOf("\n",c)+1;h.push(a.length);this.bols=h;this.bol=this.pos=0;this.line=1}function Qb(a){var h=a[a.length-2],c=a[a.length-3],r=a[a.length-1];if(c){if(c.isSuperscript&&h.precedence<=c.precedence)throw ha("Operator not allowed after superscript",h.start,h.text);if(r){if(!h.op.infix)throw ha("Operator may not be used infix",h.start,h.text);}else if(!h.op.postfix)throw ha("Operator may not be used postfix",h.start,h.text);
-}else if(r){if(!h.op.prefix)throw ha("Operator may not be used prefix",h.start,h.text);}else if(!h.op.bare)throw ha("Operator without operands",h.start,h.text);h.ctype="infix";h.oper=h.op.sym;h.args=[c,r];a.splice(a.length-3,3,h)}function ad(a,h,c,r){a.length&1||a.push(null);for(c=xa[c];3<=a.length&&a[a.length-2].precedence<=c.precedence;)Qb(a);a.push({op:c,precedence:c.precedence+(c.rassoc?1:0),start:h.start,end:h.end,text:h.text,rawtext:h.rawtext});c="";for(var b=h.text,d=0;d<b.length;++d)c+="0123456789+-".charAt(r.indexOf(b.charAt(d)));
-h.ctype="number";h.value={real:+c,imag:0};a.push(h);Qb(a)}function bd(a,h){var c=[],r;a:for(;;)switch(r=a.next(),r.toktype){case "OP":var b=xa[r.text];"_"!==b.sym||!c.length||c.length&1||"OP"!==c[c.length-1].toktype||":="!==c[c.length-1].op.sym||(c.pop(),b=xa[":=_"],r.text=b.sym);r.op=b;r.precedence=b.precedence;for(c.length&1||c.push(null);3<=c.length&&c[c.length-2].precedence<=r.precedence;)Qb(c);b.rassoc&&r.precedence++;c.push(r);break;case "ID":r.ctype="variable";r.name=r.text;if(c.length&1)throw ha("Missing operator",
-r.start,r.text);c.push(r);break;case "NUM":r.ctype="number";r.value={real:+r.text,imag:0};if(c.length&1)throw ha("Missing operator",r.start,r.text);c.push(r);break;case "STR":r.ctype="string";r.value=r.raw.substring(1,r.raw.length-1);if(c.length&1)throw ha("Missing operator",r.start,r.text);c.push(r);break;case "SUB":ad(c,r,"_","\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u208a\u208b");break;case "SUP":ad(c,r,"^","\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079\u207a\u207b");
-c[c.length-1].isSuperscript=!0;break;case "BRA":b="[](){}||".indexOf(r.text);if(r.text===h||b&1)break a;var b="[](){}||".charAt(b+1),d=bd(a,b),g=d.closedBy;if(g.text!==b)throw ha("Opening "+r.text+" at "+r.start.row+":"+r.start.col+" closed by "+(g.text||"EOF")+" at "+g.start.row+":"+g.start.col);g=r.text+g.text;b=[];if(d=d.expr){for(;d&&"infix"===d.ctype&&","===d.oper;)b.push(d.args[0]),d=d.args[1];b.push(d)}if(c.length&1){if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);d=c[c.length-
-1];if("variable"!==d.ctype)throw ha("Function name must be an identifier",d.start);if(2<c.length&&c[c.length-2].precedence<cd)throw ha("Function call in indexing construct must be enclosed in parentheses",r.start);d.ctype="function";r=d.args=[];for(var g=d.modifs={},e=0;e<b.length;++e){var f=b[e];if(f&&"infix"===f.ctype&&"->"===f.oper){var l=f.args[0];if("variable"!==l.ctype)throw ha("Modifier name must be an identifier",f.start);g[l.name]=f.args[1]}else r.push(f)}d.oper=d.name.toLowerCase()+"$"+
-d.args.length}else if("||"===g)if(1===b.length)c.push({ctype:"function",oper:"abs_infix",args:b,modifs:{}});else if(2===b.length)c.push({ctype:"function",oper:"dist_infix",args:b,modifs:{}});else throw ha("Don't support |\u2026| with "+b.length+" arguments",r.start);else{if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);"[]"!==g&&1===b.length?c.push({ctype:"paren",args:b}):0===b.length?c.push({ctype:"list",value:[]}):c.push({ctype:"function",oper:"genList",args:b,modifs:{}})}break;
-case "EOF":break a}for(c.length&1||c.push(null);3<=c.length;)Qb(c);return{expr:c[0],closedBy:r}}function Eb(a){this.usedFunctions={};this.usedVariables={}}function A(a){if(void 0===a)return k;if("infix"===a.ctype)return a.impl(a.args,{},a);if("variable"===a.ctype)return A(J.getvar(a.name));if("function"===a.ctype)return D.evaluate(a.oper,a.args,a.modifs);if("void"===a.ctype)return k;if("field"===a.ctype){var h=A(a.obj);return"geo"===h.ctype?ya.getField(h.value,a.key):"list"===h.ctype?g.getField(h,
-a.key):k}return a}function B(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind)return ya.getField(h,"xy");if("V"===h.kind)return h.value}return a}function M(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind||"L"===h.kind)return ya.getField(h,"homog")}return g._helper.isNumberVecN(a,3)?a:g._helper.isNumberVecN(a,2)?(h=g.turnIntoCSList([a.value[0],a.value[1],l.real(1)]),a.usage&&(h=w.withUsage(h,a.usage)),h):k}function Ra(a){var h=new Eb;h.usedFunctions=Nc;h.infixmap=R;a=h.parse(a);
-for(var c in h.usedVariables)J.create(c);return a}function dd(){this._path=[];this._defs=["<defs>"];this._imgcache=[];this._body=[];this._saveStack=[""];this._clipIndex=0;this._stroke=this._fill="#000";this._strokeOpacity=this._fillOpacity=null;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10;this.globalAlpha=1}function ed(){this._body=[];this._yPos=this._xPos=NaN;this._extGState={Af255:"<< /ca 1 >>",As255:"<< /CA 1 >>"};this._objects=[["%PDF-1.4\n"]];
-this._offset=this._objects[0][0].length;this._nextIndex=5;this._imgcache=[];this._xobjects={};this._pathUsed=-1;this._fillAlpha=this._strokeAlpha=this._globalAlpha=1;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10}function fd(a,h){var c=a.width,r=a.height,b=document.createElement("canvas");b.setAttribute("width",c);b.setAttribute("height",r);b.setAttribute("style","display:none;");var d=oa.canvas;d.parentNode.insertBefore(b,d.nextSibling);try{return b.getContext("2d").drawImage(a,
-0,0,c,r),b.toDataURL(h||"image/png")}finally{b.parentNode.removeChild(b)}}function Wd(a){a=a.replace(RegExp("[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/]+","g"),"");var h=new Uint8Array(3*a.length>>2),c,r,b,d,g,e;for(r=c=0;c+3<a.length;c+=4)b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c)),d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1)),g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
-2)),e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+3)),h[r++]=b<<2|d>>4,h[r++]=d<<4|g>>2,h[r++]=g<<6|e;switch(a.length-c){case 0:break;case 2:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1));h[r++]=b<<2|d>>4;break;case 3:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
-1));g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2));h[r++]=b<<2|d>>4;h[r++]=d<<4|g>>2;break;default:throw Error("Malformed Base64 input: "+(a.length-c)+" chars left: "+a.substr(c));}if(r!==h.length)throw Error("Failed assertion: "+r+" should be "+h.length);return h}function Xd(a){function h(c){return(a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3])>>>0}if(57>a.length)throw Error("Too short to be a PNG file");if(2303741511!==h(0)||218765834!==h(4))throw Error("PNG signature missing");
-for(var c=[],r=8;r<a.length;){if(r+12>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var b=h(r);if(2147483648<=b)throw Error("Chunk too long");var d=r+12+b;if(d>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var g=a.subarray(r+4,r+8),g=String.fromCharCode.apply(String,g);c.push({len:b,type:g,data:a.subarray(r+8,r+8+b),crc:h(r+8+b)});r=d}return c}function Rb(a,h){var c;if(c=/^rgba\(([0-9]+), *([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],
-+c[4]);else if(c=/^rgb\(([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],1);else throw Error("Can't handle color style "+a);}function Yd(a){var h=1;Object.keys(Xa).forEach(function(c){var r=Xa[c].value.img;if(void 0===r.cachedDataURL&&r.src)if("data:"===r.src.substr(0,5))r.cachedDataURL=r.src;else{++h;r.cachedDataURL=null;var b=new XMLHttpRequest;b.responseType="blob";b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200===b.status){var c=new FileReader;c.onloadend=
-function(){r.cachedDataURL=c.result;console.log("Cached data for image "+r.src);0===--h&&a()};c.readAsDataURL(b.response)}else console.error("Failed to load "+r.src+": "+b.statusText),0===--h&&a()};b.open("GET",r.src,!0);b.send()}});0===--h&&a()}function lb(a,h,c){for(c||(c="0");a.length<h;)a=c+a;return a}function gd(){null!==Fb&&(window.URL.revokeObjectURL(Fb),Fb=null)}function hd(a){Yd(function(){var h=y;try{y=new a;y.width=da;y.height=ca;n();var c=y.toBlob();Fb=window.URL.createObjectURL(c);id(Fb)}finally{y=
-h}})}function Gb(a){var h=null,c=1E6,r;console.log("getElementAtMouse");for(var b=0;b<u.gslp.length;b++){var d=u.gslp[b];if(!d.pinned&&!1!==d.visible&&!0!==d.tmp){var e,f,k,m=z.drawingstate.matrix.sdet;if("P"===d.kind){var n=g.normalizeZ(d.homog);if(!g._helper.isAlmostReal(n))continue;e=n.value[0].value.real-a.x;f=n.value[1].value.real-a.y;k=Math.sqrt(e*e+f*f);d.narrow&k>20/m&&(k=1E4)}else if("C"===d.kind)f=u.csnames[d.args[0]],k=0,"undefined"!==typeof d.radius&&(k=d.radius.value.real),e=l.div(f.homog.value[0],
-f.homog.value[2]).value.real,f=l.div(f.homog.value[1],f.homog.value[2]).value.real,e-=a.x,f-=a.y,k=Math.sqrt(e*e+f*f)-k,f=e=0,0>k&&(k=-k),k+=30/m;else if("L"===d.kind||"S"===d.kind)e=d.homog,k=l,f=k.add(k.mult(e.value[0],k.conjugate(e.value[0])),k.mult(e.value[1],k.conjugate(e.value[1]))),f=g.scaldiv(k.sqrt(f),e),k=f.value[0].value.real*a.x+f.value[1].value.real*a.y+f.value[2].value.real,e=f.value[0].value.real*k,f=f.value[1].value.real*k,0>k&&(k=-k),k+=1;k<c+.2/m&&(c=k,h=d,r={x:e,y:f})}}return null===
-h?null:{mover:h,offset:r,prev:{x:a.x,y:a.y}}}function Ta(){return"P"+Zd++}function qb(a){var h=G[qc].actions;h[sb].event===a&&h[sb]["do"]()&&(e(),sb===h.length-1?(ua=[],sb=Ua=0):sb++)}function rc(a){return a&&.5>Math.abs(a.offset.x)&&.5>Math.abs(a.offset.y)&&!a.mover.tmp}function jd(a){return rc(a)&&"P"===a.mover.kind}function kd(a){return rc(a)&&("L"===a.mover.kind||"S"===a.mover.kind)}function sc(a){fa={mover:a,offset:{x:0,y:0},prev:{x:X.x,y:X.y}}}function mb(){var a=Gb(X);jd(a)?ua[Ua]=a.mover:
-(ua[Ua]={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]},Ha(ua[Ua]));Ua++}function ld(){var a=Gb(X);return kd(a)?(ua[Ua]=a.mover,Ua++,!0):!1}function md(){var a=Gb(X),h;(h=kd(a))||(h=rc(a)&&"C"===a.mover.kind);return h?(ua[Ua]=a.mover,Ua++,!0):!1}function tb(){var a=Gb(X);if(jd(a))for(Hb.args[1]=a.mover.name,a=0;a<u.gslp.length;a++){var h=u.gslp[a];!0===h.tmp&&nd(h.name)}else for(a=0;a<u.gslp.length;a++)h=u.gslp[a],!0===h.tmp&&(h.tmp=!1)}function Sb(a){var h={type:"Free",name:Ta(),labeled:!0,
-pos:[ta[0],ta[1],1],tmp:!0},h=Ha(h);Hb=Ha({type:a,name:Ta(),labeled:!0,args:[ua[0].name,h.name]});sc(h)}function $d(a){for(var h in a)null!==a[h]&&(la[h]=a[h])}function Md(a){Object.keys(m).forEach(function(a){var c=m[a];eb(c.signature||"_helper"===a,a+" has no signature");void 0!==c.updatePosition&&void 0===c.stateSize&&(c.stateSize=0)});u.gslp=[];u.csnames={};u.points=[];u.lines=[];u.conics=[];u.texts=[];u.free=[];u.polygons=[];a.forEach(od);pd()}function qd(a){"undefined"===typeof a.tracedim&&
-(a.tracedim=1);"undefined"===typeof a.tracelength&&(a.tracelength=100);"undefined"===typeof a.traceskip&&(a.traceskip=1);a._traces=Array(a.tracelength);a._traces_index=0;a._traces_tick=0}function ae(a){void 0===a.size&&(a.size=la.pointSize);a.size=l.real(a.size);!a.movable||a.pinned?(a.color=g.realVector(a.color||la.pointColor),a.color=g.scalmult(l.real(la.dimDependent),a.color)):a.color=g.realVector(a.color||la.pointColor);void 0===a.alpha&&(a.alpha=la.alpha);a.alpha=l.real(a.alpha);a.drawtrace&&
-qd(a)}function Tb(a){void 0===a.size&&(a.size=la.lineSize);a.size=l.real(a.size);a.color=g.realVector(a.color||la.lineColor);void 0===a.alpha&&(a.alpha=la.alpha);a.alpha=l.real(a.alpha);a.clip=w.string(a.clip||la.clip);void 0===a.overhang&&(a.overhang=la.overhangLine);a.overhang=l.real(a.overhang);a.dashtype&&(a.dashtype=w.wrap(a.dashtype))}function be(a){void 0===a.overhang&&(a.overhang=la.overhangSeg);a.arrow&&(a.arrow=w.bool(a.arrow));a.arrowsize&&(a.arrowsize=l.real(a.arrowsize));a.arrowposition&&
-(a.arrowposition=l.real(a.arrowposition));a.arrowshape&&(a.arrowshape=w.string(a.arrowshape));a.arrowsides&&(a.arrowsides=w.string(a.arrowsides));Tb(a);a.clip=w.string("end")}function ce(a){a.size=void 0!==a.textsize?a.textsize:void 0!==a.size?a.size:la.textsize;a.size=l.real(+a.size)}function de(a){a.filled=void 0!==a.filled?w.bool(a.filled):w.bool(!0);a.fillcolor=void 0===a.fillcolor?k:g.realVector(a.fillcolor);void 0===a.fillalpha&&(a.fillalpha=0);a.fillalpha=l.real(a.fillalpha);Tb(a)}function Ha(a){a=
-od(a);pd();return a}function od(a){var h;if(void 0!==u.csnames[a.name])return console.log("Element name '"+a.name+"' already exists"),h=u.csnames[a.name],m[h.type].isMovable&&"P"===m[h.type].kind&&Ia(h,a.pos,"homog"),{ctype:"geo",value:h};for(;tc.hasOwnProperty(a.type);)a.type=tc[a.type];if(h=rd[a.type]){var c=h(a),r=null;for(h=0;h<c.length;++h)r=Ha(c[h]);return r}var b=m[a.type],c=!1;if(!b)return console.error(a),console.error("Operation "+a.type+" not implemented yet"),null;if("**"!==b.signature)if(!Array.isArray(b.signature)&&
-"*"===b.signature.charAt(1))c=!0,a.args.forEach(function(c){if(u.csnames[c].kind!==b.signature.charAt(0))return console.error("Not all elements in set are of same type: "+a.name+" expects "+b.signature+" but "+c+" is of kind "+u.csnames[c].kind),"undefined"!==typeof window&&window.alert("Not all elements in set are of same type: "+a.name),null});else if(b.signature.length!==(a.args?a.args.length:0))return console.error("Wrong number of arguments for "+a.name+" of type "+a.type),"undefined"!==typeof window&&
-window.alert("Wrong number of arguments for "+a.name),null;if(a.args)for(h=0;h<a.args.length;++h){if(!u.csnames.hasOwnProperty(a.args[h]))return console.log("Dropping "+a.name+" due to missing argument "+a.args[h]),null;if("**"!==b.signature&&!c&&(r=u.csnames[a.args[h]].kind,b.signature[h]!==r&&("S"!==r||"L"!==b.signature[h])))return window.alert("Wrong argument kind "+r+" as argument "+h+" to element "+a.name+" of type "+a.type),null}b.signatureConstraints&&!b.signatureConstraints(a)&&window.alert("signature constraints violated for element "+
-a.name);u.gslp.push(a);u.csnames[a.name]=a;h=za.length;a.kind=b.kind;a.stateIdx=h;h+=b.stateSize;a.incidences=[];a.isshowing=!0;a.movable=!1;b.isMovable&&(a.movable=!0,u.free.push(a));"P"===a.kind&&(u.points.push(a),ae(a));"L"===a.kind&&(u.lines.push(a),Tb(a));"C"===a.kind&&(u.conics.push(a),Tb(a));"S"===a.kind&&(u.lines.push(a),be(a));"Text"===a.kind&&(u.texts.push(a),ce(a));"Poly"===a.kind&&(u.polygons.push(a),de(a));ee(h);ma=Ma=za;fb=!0;b.initialize&&(va=Aa=a.stateIdx,a.param=b.initialize(a),eb(Aa===
-a.stateIdx+b.stateSize,"State fully initialized"));va=Aa=a.stateIdx;b.updatePosition(a,!1);eb(va===a.stateIdx+b.stateSize,"State fully consumed");eb(Aa===a.stateIdx+b.stateSize,"State fully updated");fb=!1;ma=db["in"];ma.set(za);Ma=db.out;uc(a,b);Ub={};gb(a);return u.csnames[a.name]}function nd(a){var h,c;console.log("Remove element "+a);delete u.csnames[a];for(h=0;h<u.gslp.length;h++)c=u.gslp[h],c.name===a&&(console.log("Removed element from gslp "+a),u.gslp.splice(h,1));for(h=0;h<u.free.length;h++)c=
-u.free[h],c.name===a&&(console.log("Removed element from free "+a),u.free.splice(h,1));for(h=0;h<u.points.length;h++)c=u.points[h],c.name===a&&(console.log("Removed element from points "+a),u.points.splice(h,1));for(h=0;h<u.lines.length;h++)c=u.lines[h],c.name===a&&(console.log("Removed element from lines "+a),u.lines.splice(h,1));for(h=0;h<u.conics.length;h++)c=u.conics[h],c.name===a&&(console.log("Removed element from conics "+a),u.conics.splice(h,1));Ub={}}function sd(a,h){var c=u.csnames[h.args[0]].homog,
-r=u.csnames[h.args[1]].homog,b=a.homog,d=l.div(c.value[0],c.value[2]),c=l.div(c.value[1],c.value[2]),g=l.div(r.value[0],r.value[2]),r=l.div(r.value[1],r.value[2]),e=l.div(b.value[0],b.value[2]),b=l.div(b.value[1],b.value[2]);return l._helper.isAlmostReal(d)&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(g)&&l._helper.isAlmostReal(r)&&l._helper.isAlmostReal(e)&&l._helper.isAlmostReal(b)?(d=d.value.real,c=c.value.real,g=g.value.real,r=r.value.real,e=e.value.real,b=b.value.real,d=Math.sqrt((d-g)*
-(d-g)+(c-r)*(c-r))-Math.sqrt((d-e)*(d-e)+(c-b)*(c-b))-Math.sqrt((g-e)*(g-e)+(r-b)*(r-b)),1E-15>d*d):!1}function uc(a,h){a.isshowing=!0;if(a.args)for(var c=0;c<a.args.length;c++)if(!u.csnames[a.args[c]].isshowing){a.isshowing=!1;return}h.visiblecheck&&h.visiblecheck(a)}function Sd(a){a._bbox=null;if(a.isshowing&&!1!==a.visible){var h={size:a.size},c=a.homog,r=a.text,b=m[a.type].getText,r=b?b(a):r.replace(/@[$#]"([^"\\]|\\.)*"/g,function(a){var c,h;try{if(c=JSON.parse(a.substring(2)),h=u.csnames[c],
-!h)return"?"}catch(r){return"?"}switch(a.charAt(1)){case "$":return h.printname||c;case "#":return"V"!==h.kind?"?":ba(h.value)}}),b=null;if(a.html)var d=a._textCache||{text:!1},g=a.html,e=g.parentNode,f=e.parentNode,b=function(c,h,r,b,na){d.invisible&&f.style.removeProperty("display");if(c!==d.text||h!==d.font||r!==d.x||b!==d.y||na!==d.align){h!==d.font&&(g.style.font=h,g.style.lineHeight=la.lineHeight);c!==d.text&&!1!==c&&!1===td(g,c,h)&&(c=!1);f.style.left=r+"px";f.style.top=b+"px";if(na||e.style.transform)e.style.transform=
-"translateX("+-100*na+"%)";a._textCache={text:c,font:h,x:r,y:b,align:na}}};r=w.string(r);a.dock&&(a.dock.to?c=u.csnames[a.dock.to].homog:ud.hasOwnProperty(a.dock.corner)&&(c=t.screenbounds$0([],{}),c=c.value[ud[a.dock.corner]]),h.offset=a.dock.offset);a.align&&(h.align=w.string(a.align));c&&(a._bbox=D.drawtext([c,r],h,b))}else a.html&&(a.html.parentNode.parentNode.style.display="none",a._textCache={invisible:!0})}function Rd(){function a(){var a=e++/c._traces.length,h=c._traces[g];h&&(a*=r*a*a,t.draw$1([h],
-{size:l.real(b),color:c.color,alpha:l.real(a)}));b*=d}for(var h=0;h<u.points.length;h++){var c=u.points[h];if(c.drawtrace){c._traces_tick===c.traceskip?(c._traces[c._traces_index]=c.homog,c._traces_index=(c._traces_index+1)%c._traces.length,c._traces_tick=0):c._traces_tick++;var r=c.alpha.value.real,b=c.size.value.real,d=1;1!==c.tracedim&&(b*=c.tracedim,d=Math.pow(c.tracedim,-1/c._traces.length));var g,e=0;for(g=c._traces_index;g<c._traces.length;++g)a();for(g=0;g<c._traces_index;++g)a()}}}function eb(a,
-h){var c="Assertion failed: "+h;if(!a)throw console.log(c),Qa(),"undefined"!==typeof alert&&alert(c),Error(c);}function ee(a){if(a!==za.length){var h,c,r=vc.length;hb.length<a*r?(h=2*a,hb=new Float64Array(r*h)):h=hb.length/r|0;for(c=0;c<r;++c)db[vc[c]]=hb.subarray(c*h,c*h+a);a=za;ma=db["in"];Ma=db.out;za=db.good;za.set(a)}}function ub(){za.set(ma);Ja=!1;vd(!1);for(var a=za.length,h=Math.abs,c=0;c<a;c+=2)h(za[c])>1E12*h(za[c+1])&&(za[c+1]=0)}function Vb(){if(vb)Ja=!0;else throw wd;}function xd(a,h,
-c,r,b){return w.add(r,w.mult(c,w.sub(b,r)))}function Qd(){L&&(L.currentMouseAndScripts=[]);wc=!0;if(fa){var a=fa.mover,h=g.realVector([X.x+fa.offset.x,X.y+fa.offset.y,1]);yd(a,h,"mouse");fa.prev.x=X.x;fa.prev.y=X.y}A(S.move);A(S.draw);Ja||ub();wc=!1;L&&(L.fullLog.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMouseAndScripts)])),L.length>L.logLength&&L.splice(0,L.length-L.logLength),L.currentMouseAndScripts=null,L.postMouseHooks.forEach(function(a){a()}))}function Ia(a,h,c){yd(a,h,c);wc||Ja||ub()}
-function yd(a,h,c){L&&L.currentMouseAndScripts&&(L.currentMover=[]);a===zd?(ma.set(za),Ja=!1):(zd=a,ub());Ma.set(ma);var r=1E4,b;b=Ub[a.name];if(!b){var d={},e=0;b=[];d[a.name]=a;for(var f=u.gslp,k=0;k<f.length;++k){var n=f[k],p=n.args;if(p)for(var q=0;q<p.length;++q)d.hasOwnProperty(p[q])&&(d[n.name]=n,b[e++]=n)}Ub[a.name]=b}var d=-1,e=.9,t,v,x,f=m[a.type],k=f.parameterPath||xd;va=a.stateIdx;n=f.getParamFromState(a);va=Aa=a.stateIdx;p=f.getParamForInput(a,h,c);for(q=d+e;d!==q;){var y=q*q,z=.5/(1+
-y),z=l.complex(2*q*z+.5,(1-y)*z);vb=d+.5*e<=d||0===r;0===r&&console.log("tracing limit Reached");y=!1;L&&L.currentMouseAndScripts&&(L.currentStep=[]);try{va=Aa=a.stateIdx;var A=k(a,q,z,n,p);L&&(L.currentParam=A);z=Ma;Ma=ma;f.putParamToState(a,A);Ma=z;Aa=a.stateIdx;L&&(L.currentElement=a);f.updatePosition(a,!0);eb(va===a.stateIdx+f.stateSize,"State fully consumed");eb(Aa===a.stateIdx+f.stateSize,"State fully updated");for(t=0;t<b.length;++t)v=b[t],x=m[v.type],va=Aa=v.stateIdx,L&&(L.currentElement=
-v),x.updatePosition(v,!1),eb(va===v.stateIdx+x.stateSize,"State fully consumed"),eb(Aa===v.stateIdx+x.stateSize,"State fully updated");L&&(L.currentElement=null);d=q;e*=1.25;q+=e;1<=q&&(q=1);Ma=ma;ma=z}catch(B){if(B!==wd)throw B;e*=.5;q=d+e;--r;y=!0}L&&L.currentMouseAndScripts&&(L.currentMover.push(g.turnIntoCSList([g.turnIntoCSList(L.currentStep),w.wrap(y),w.wrap(d),w.wrap(q),w.wrap(L.currentParam)])),L.currentStep=null,L.currentParam=null)}vd(Ja);for(t=0;t<b.length;++t)v=b[t],x=m[v.type],uc(v,x);
-L&&L.currentMouseAndScripts&&(L.currentMouseAndScripts.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMover),w.wrap(Ja),w.wrap(a.name),h,w.wrap(c),n,p])),L.currentMover=null)}function Nd(){ub();vb=!0;for(var a=u.gslp,h=0;h<a.length;h++){var c=a[h],r=m[c.type];va=Aa=c.stateIdx;r.updatePosition(c,!1);uc(c,r)}a=Ma;Ma=ma;ma=a;ub()}function vd(a){var h=p.tracingStateReport;"string"===typeof h&&(document.getElementById(h).textContent=a?"BAD":"GOOD")}function fe(){return g.turnIntoCSList(L.fullLog.slice())}
-function ge(a){var h=JSON.stringify(L.fullLog);a=new Blob([h],{type:a?"application/octet-stream":"application/json"});return window.URL.createObjectURL(a)}function wb(){var a=va;va+=2;return l.complex(ma[a],ma[a+1])}function Z(a){for(var h=Array(a),c=0;c<a;++c)h[c]=wb();return g.turnIntoCSList(h)}function Va(a){Ma[Aa]=a.value.real;Ma[Aa+1]=a.value.imag;Aa+=2}function T(a){for(var h=0,c=a.value.length;h<c;++h)Va(a.value[h])}function Na(a,h){var c=Z(3),r=Z(3),c=Ad(a,h,c,r);T(c[0]);T(c[1]);return g.turnIntoCSList(c)}
-function Ad(a,h,c,r){if(fb)return[a,h];var b=g.projectiveDistMinScal(c,a),d=g.projectiveDistMinScal(c,h),e=g.projectiveDistMinScal(r,a),f=g.projectiveDistMinScal(r,h),l=g.projectiveDistMinScal(c,r),m=g.projectiveDistMinScal(a,h),n=b+f,p=d+e,q;n>p?(q=[h,a],n=p):q=[a,h];p=function(){};if(L&&L.currentStep){var t=[L.labelTracing2,w.wrap(L.currentElement.name),g.turnIntoCSList(q),g.turnIntoCSList([c,r]),g.realMatrix([[b,d],[e,f]]),w.wrap(n),w.wrap(l),w.wrap(m),k];L.currentStep.push(g.turnIntoCSList(t));
-p=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));t[t.length-1]=L[a]}}g._helper.isNaN(a)||g._helper.isNaN(h)?(p("Tracing failed due to NaNs."),Ja=!0):l>3*n&&m>3*n?p("Normal case, everything all right."):1E-5>m?1E-5>l?p("Staying inside singularity."):(p("Moved into singularity."),Ja=!0):1E-5>l?p("Moved out of singularity."):(vb?p("Reached refinement limit, giving up."):p("Need to refine."),Vb());return q}function xc(a,h,c,r){var b=Z(3),d=Z(3),e=Z(3),f=Z(3);a=he(a,h,c,r,b,d,e,f);T(a[0]);T(a[1]);T(a[2]);
-T(a[3]);return g.turnIntoCSList(a)}function he(a,h,c,r,b,d,e,f){var l=function(){};b=[b,d,e,f];a=[a,h,c,r];if(fb)return a;d=0;r=Array(4);for(c=0;4>c;c++)for(r[c]=Array(4),f=0;4>f;f++)e=g.projectiveDistMinScal(b[c],a[f]),r[c][f]=e;e=nc(r);h=Array(4);for(c=0;4>c;++c)h[c]=a[e[c]],d+=r[c][e[c]];var m=1*d,n=Infinity,p=Infinity;for(c=0;4>c;c++){if(g._helper.isNaN(a[c]))return l("Tracing failed due to NaNs."),Ja=!0,h;for(f=c+1;4>f;f++)e=g.projectiveDistMinScal(b[c],b[f]),n>e&&(n=e),e=g.projectiveDistMinScal(h[c],
-h[f]),p>e&&(p=e)}if(L&&L.currentStep){var q=[L.labelTracing4,w.wrap(L.currentElement.name),g.turnIntoCSList(h),g.turnIntoCSList(b),g.realMatrix(r),w.wrap(d),w.wrap(n),w.wrap(p),k];L.currentStep.push(g.turnIntoCSList(q));l=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));q[q.length-1]=L[a]}}n>m&&p>m||(1E-5>p?1E-5>n?l("Staying inside singularity."):(l("Moved into singularity."),Ja=!0):1E-5>n?l("Moved out of singularity."):(vb?l("Reached refinement limit, giving up."):l("Need to refine."),Vb()));return h}
-function Bd(a){var h=a.length,c,r;if(fb){for(c=0;c<h;++c)va+=2*a[c].value.length,T(a[c]);return a}var b=Array(h),d=Array(h),e=Array(h),f=99,l=99,m=Array(h);for(c=0;c<h;++c)b[c]=Z(a[c].value.length),d[c]=g.normSquared(b[c]).value.real,e[c]=g.normSquared(a[c]).value.real,m[c]=Array(h);var n;for(c=0;c<h;++c){for(r=0;r<h;++r)n=g.sesquilinearproduct(b[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(d[c]*e[r]),m[c][r]=1-n;for(r=c+1;r<h;++r)n=g.sesquilinearproduct(b[c],b[r]).value,n=(n.real*n.real+n.imag*
-n.imag)/(d[c]*d[r]),f>1-n&&(f=1-n),n=g.sesquilinearproduct(a[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(e[c]*e[r]),l>1-n&&(l=1-n)}n=nc(m);r=Array(h);d=0;e=!1;for(c=0;c<h;++c){var d=d+m[c][n[c]],p=r[c]=a[n[c]];T(p);e|=g._helper.isNaN(p)}e|=isNaN(d);a=function(){};if(L&&L.currentStep){var q=[L.labelTracingSesq,w.wrap(L.currentElement.name),g.turnIntoCSList(r),g.turnIntoCSList(b),g.realMatrix(m),w.wrap(d),w.wrap(f),w.wrap(l),k];L.currentStep.push(g.turnIntoCSList(q));a=function(a){L.hasOwnProperty(a)||
-(L[a]=w.wrap(a));q[q.length-1]=L[a]}}e?(a("Tracing failed due to NaNs."),Ja=!0):f>3*d&&l>3*d?a("Normal case, everything all right."):1E-5>l?1E-5>f?a("Staying inside singularity."):(a("Moved into singularity."),Ja=!0):1E-5>f?a("Moved out of singularity."):(vb?a("Reached refinement limit, giving up."):a("Need to refine."),Vb());return r}function gb(a){if(gb.hasOwnProperty(a.kind))gb[a.kind](a)}function Cd(a,h){return function(){a.incidences.push(h.name);h.incidences.push(a.name)}}function Dd(a,h){return{toString:function(){return"point "+
-a.name+" incident line "+h.name},apply:Cd(a,h),holds:function(){var c=g.scaldiv(g.abs(a.homog),a.homog),r=g.scaldiv(g.abs(h.homog),h.homog);return 1E-13>l.abs(g.scalproduct(c,r)).value.real}}}function Ed(a,h){return{toString:function(){return"point "+a.name+" incident conic "+h.name},apply:Cd(a,h),holds:function(){var c=w.mult(h.matrix,a.homog),c=w.mult(a.homog,c),c=l.abs(c);1E-13>c.value.real&&(a.incidences.push(h.name),h.incidences.push(a.name))}}}function pd(){if(0!==ib.length){for(var a=0;a<ib.length;++a)ib[a].apply();
-ib=[]}}function yc(a,h,c){var r=document.createElement("div"),b=document.createElement("img");b.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAPoCAQAAAC1v1zVAAAAGklEQVR42u3BMQEAAADCoPVPbQ0PoAAAgHcDC7gAAVI8ZnwAAAAASUVORK5CYII=";r.className="CindyJS-baseline";r.appendChild(b);b=document.createElement("div");b.className="CindyJS-button";r.appendChild(b);for(var d=2;d<arguments.length;++d)b.appendChild(arguments[d]);ka.parentNode.appendChild(r);a.html=arguments[arguments.length-1];Fa(a.fillalpha)||
-(a.fillalpha=1);a.fillcolor&&(a.html.style.backgroundColor=x.makeColor(a.fillcolor,a.fillalpha));r=e;if(a.script)var g=Ra(a.script),r=function(){A(g);e()};c.addEventListener(h,r);!p.keylistener&&(S.keydown||S.keyup||S.keytyped)&&(c.addEventListener("keydown",function(a){9!==a.keyCode&&N(a,S.keydown)}),c.addEventListener("keyup",function(a){N(a,S.keyup)}),c.addEventListener("keypress",function(a){9!==a.keyCode&&N(a,S.keytyped)}));m.Text.initialize(a)}function Pa(){}function ie(a){if(!/^Select/.test(a.type)&&
-!m[a.type].isMovable)return null;var h=w.unwrap,c=l.add;switch(a.kind){case "P":case "L":case "Text":return h(a.homog);case "C":return a=a.matrix.value,{xx:h(a[0].value[0]),yy:h(a[1].value[1]),zz:h(a[2].value[2]),xy:h(c(a[0].value[1],a[1].value[0])),xz:h(c(a[0].value[2],a[2].value[0])),yz:h(c(a[1].value[2],a[2].value[1]))};default:return null}}function je(a){var h={};h.offset=w.unwrap(a.offset);a.to&&(h.to=a.to);a.corner&&(h.corner=a.corner);return h}function ke(a){var h={};le.forEach(function(c){if(a.hasOwnProperty(c)){var b=
-w.unwrap(a[c]);null!==b&&void 0!==b&&(h[c]=b)}});if("P"===a.kind&&(!a.movable||a.pinned)&&h.color){var c=l.real(1/la.dimDependent);h.color=w.unwrap(g.scalmult(c,a.color))}if(c=ie(a))h.pos=c;a.dock&&(h.dock=je(a.dock));return h}function me(){var a=[];u.gslp.forEach(function(h){h.tmp||a.push(ke(h))});return a}function Od(){Ba.forEach(function(a){var h=(a.geo||[]).map(function(a){return u.csnames[a]});O[a.type].reset(a,h[0],h)})}function ec(a){ic=0!==a.length;Ba=[];ga=[];zc=[];O.Environment.init({});
-a.forEach(function(a){a.behavior?(a.name&&(a.behavior.geo=[a.name]),a=a.behavior,a.gravity&&(a.gravity=-a.gravity)):c=a.geo;var c=(a.geo||[]).map(function(a){return u.csnames[a]}),r=c[0],b=O[a.type];b?(b.init&&b.init(a,r,c),r&&(r.behavior=a,"Mass"===a.type?ga.push(r):"Spring"===a.type&&zc.push(r)),Ba.push(a)):(console.error(a),console.error("Behavior "+a.type+" not implemented yet"))})}var wa=this,ia,S={},Ya=!1,Ob=!0,Cb=0,Oc=.5,hc=0,Mb=10,Fd=5/360,Pd=.32/Fd/1E3*2,Kb=1,Wa=0,bc=0,cc=!1,zb=!1,ka,yb,
-Fa=Number.isFinite||function(a){return"number"===typeof a&&isFinite(a)},ta,y,da,ca,u,Xa,kc=k,lc=k,Sa={play:Pa,pause:Pa,stop:Pa},gc=null,Ab=function(a,h){var c=[];Ab=function(a,h){c.push({img:a,id:h})};Ab(a,h);var r=wa.getBaseDir()+"images/Icons.svg",b=new XMLHttpRequest;b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200!==b.status)console.error("Failed to load CindyJS Icons.svg from "+r+": "+b.statusText);else{var a=b.responseXML,h=a.documentElement,d={},g,e;for(g=h.firstChild;g;g=
-e)e=g.nextSibling,g.nodeType===Node.ELEMENT_NODE&&"http://www.w3.org/2000/svg"===g.namespaceURI&&"g"===g.localName.toLowerCase()&&(h.removeChild(g),g.setAttribute("style","display:inline"),d[g.getAttribute("id")]=g);var f=new XMLSerializer;Ab=function(c,r){if(d.hasOwnProperty(r)){var b=d[r];h.appendChild(b);var g;try{g=f.serializeToString(a)}finally{h.removeChild(b)}c.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(g)}};c.forEach(function(a){Ab(a.img,a.id)});c=null}};b.responseType="document";
-b.open("GET",r);b.send()},Pc=1,Bb=null,jb=[],jc=!1,oa={config:p,startup:W,shutdown:Qa,evokeCS:function(a){a=Ra(a,!1);console.log(a);A(a);e()},play:I,pause:Ca,stop:Da,evalcs:function(a){return A(Ra(a,!1))},parse:function(a){return Ra(a)},niceprint:ba,canvas:null},ac=!1,Lb=0;p.use&&p.use.forEach(function(a){var h=null;p.plugins&&(h=p.plugins[a]);h||(h=wa._pluginRegistry[a]);h||(++Lb,console.log("Loading script for plugin "+a),wa.loadScript(a+"-plugin",a+"-plugin.js",function(){console.log("Successfully loaded plugin "+
-a);0===--Lb&&ac&&W()},function(){console.error("Failed to auto-load plugin "+a);0===--Lb&&ac&&W()}))});xb.prototype=new ab;cb.prototype=new ab;qa.prototype=new ab;var X={},fa,Qc="",Rc=0,Pb;Pb=p.isNode?process.nextTick:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,0)};var mc=null,ne=[0,8,4,0,"gbb244ca"],l={_helper:{}};l._helper.roundingfactor=1E4;l._helper.angleroundingfactor=
-10;l._helper.niceround=function(a,h){return Math.round(a*h)/h};l.niceprint=function(a,h){h=h||l._helper.roundingfactor;if("Angle"===a.usage)return l._helper.niceangle(a);var c=l._helper.niceround(a.value.real,h),r=l._helper.niceround(a.value.imag,h);return 0===r?""+c:0<r?""+c+" + i*"+r:""+c+" - i*"+-r};var Ac=p.angleUnit||"\u00b0",oe=Ac.replace(/\s+/g,""),Gd=2*Math.PI,pe=1/Gd,qe={rad:Gd,"\u00b0":360,deg:360,degree:360,gra:400,grad:400,turn:1,cyc:1,rev:1,rot:1,"\u03c0":2,pi:2,quad:4};l._helper.niceangle=
-function(a){var h=qe[oe];if(!h)return l.niceprint(w.withUsage(a,null));if("function"===typeof h)return h(a);a=l.niceprint(l.realmult(h*pe,a),200<h?l._helper.angleroundingfactor:null);return-1===a.indexOf("i*")?a+Ac:"("+a+")"+Ac};l.complex=function(a,h){return{ctype:"number",value:{real:a,imag:h}}};l.real=function(a){return{ctype:"number",value:{real:a,imag:0}}};l.zero=l.real(0);l.one=l.real(1);l.infinity=l.complex(Infinity,Infinity);l.nan=l.complex(NaN,NaN);l._helper.input=function(a){return"object"===
-typeof a?l.complex(+a.r,+a.i):l.real(+a)};l.argmax=function(a,h){return a.value.real*a.value.real+a.value.imag*a.value.imag<h.value.real*h.value.real+h.value.imag*h.value.imag?h:a};l.max=function(a,h){return{ctype:"number",value:{real:Math.max(a.value.real,h.value.real),imag:Math.max(a.value.imag,h.value.imag)}}};l.min=function(a,h){return{ctype:"number",value:{real:Math.min(a.value.real,h.value.real),imag:Math.min(a.value.imag,h.value.imag)}}};l.add=function(a,h){return{ctype:"number",value:{real:a.value.real+
-h.value.real,imag:a.value.imag+h.value.imag}}};l.sub=function(a,h){return{ctype:"number",value:{real:a.value.real-h.value.real,imag:a.value.imag-h.value.imag}}};l.neg=function(a){return{ctype:"number",value:{real:-a.value.real,imag:-a.value.imag}}};l.re=function(a){return{ctype:"number",value:{real:a.value.real,imag:0}}};l.im=function(a){return{ctype:"number",value:{real:a.value.imag,imag:0}}};l.conjugate=function(a){return{ctype:"number",value:{real:a.value.real,imag:-a.value.imag}}};l.round=function(a){return{ctype:"number",
-value:{real:Math.round(a.value.real),imag:Math.round(a.value.imag)}}};l.ceil=function(a){return{ctype:"number",value:{real:Math.ceil(a.value.real),imag:Math.ceil(a.value.imag)}}};l.floor=function(a){return{ctype:"number",value:{real:Math.floor(a.value.real),imag:Math.floor(a.value.imag)}}};l.mult=function(a,h){return{ctype:"number",value:{real:a.value.real*h.value.real-a.value.imag*h.value.imag,imag:a.value.real*h.value.imag+a.value.imag*h.value.real}}};l.realmult=function(a,h){return{ctype:"number",
-value:{real:a*h.value.real,imag:a*h.value.imag}}};l.multiMult=function(a){var h=a[0];if("number"!==h.ctype)return k;for(var c=1;c<a.length;c++){if("number"!==a[c].ctype)return k;h=l.mult(h,a[c])}return h};l.abs2=function(a,h){return{ctype:"number",value:{real:a.value.real*a.value.real+a.value.imag*a.value.imag,imag:0}}};l.abs=function(a){return l.sqrt(l.abs2(a))};l.inv=function(a){var h=a.value.real*a.value.real+a.value.imag*a.value.imag;return{ctype:"number",value:{real:a.value.real/h,imag:-a.value.imag/
-h}}};l.div=function(a,h){var c=a.value.real,r=a.value.imag,b=h.value.real,d=h.value.imag,g=b*b+d*d;return{ctype:"number",value:{real:(c*b+r*d)/g,imag:(r*b-c*d)/g}}};l.eps=1E-10;l.epsbig=1E-6;l.snap=function(a){var h=a.value.real;a=a.value.imag;Math.floor(h+l.eps)!==Math.floor(h-l.eps)&&(h=Math.round(h));Math.floor(a+l.eps)!==Math.floor(a-l.eps)&&(a=Math.round(a));return{ctype:"number",value:{real:h,imag:a}}};l.exp=function(a){var h=Math.exp(a.value.real);return{ctype:"number",value:{real:h*Math.cos(a.value.imag),
-imag:h*Math.sin(a.value.imag)}}};l.cos=function(a){var h=a.value.real;a=a.value.imag;var c=Math.exp(a),r=c*Math.sin(-h),b=c*Math.cos(-h),c=Math.exp(-a);return{ctype:"number",value:{real:(b+c*Math.cos(h))/2,imag:(r+c*Math.sin(h))/2}}};l.sin=function(a){var h=a.value.real;a=a.value.imag;var c=Math.exp(a),r=c*Math.sin(-h),b=c*Math.cos(-h),c=Math.exp(-a);return{ctype:"number",value:{real:-(r-c*Math.sin(h))/2,imag:(b-c*Math.cos(h))/2}}};l.tan=function(a){var h=l.sin(a);a=l.cos(a);return l.div(h,a)};l.arccos=
-function(a){var h=l.mult(a,l.neg(a)),h=l.sqrt(l.add(l.real(1),h));a=l.add(l.mult(a,l.complex(0,1)),h);a=l.add(l.mult(l.log(a),l.complex(0,1)),l.real(.5*Math.PI));return w.withUsage(a,"Angle")};l.arcsin=function(a){var h=l.mult(a,l.neg(a)),h=l.sqrt(l.add(l.real(1),h));a=l.add(l.mult(a,l.complex(0,1)),h);a=l.mult(l.log(a),l.complex(0,-1));return w.withUsage(a,"Angle")};l.arctan=function(a){var h=l.log(l.add(l.mult(a,l.complex(0,-1)),l.real(1)));a=l.log(l.add(l.mult(a,l.complex(0,1)),l.real(1)));h=l.mult(l.sub(h,
-a),l.complex(0,.5));return w.withUsage(h,"Angle")};l.arctan2=function(a,h){var c;if(void 0===h)c=l.real(Math.atan2(a.value.imag,a.value.real));else if(l._helper.isReal(a)&&l._helper.isReal(h))c=l.real(Math.atan2(h.value.real,a.value.real));else{c=l.add(a,l.mult(l.complex(0,1),h));var r=l.sqrt(l.add(l.mult(a,a),l.mult(h,h)));c=l.mult(l.complex(0,-1),l.log(l.div(c,r)))}return w.withUsage(c,"Angle")};l.sqrt=function(a){var h=a.value.real,c=a.value.imag;a=Math.sqrt(Math.sqrt(h*h+c*c));h=Math.atan2(c,
-h);return{ctype:"number",value:{real:a*Math.cos(h/2),imag:a*Math.sin(h/2)}}};l.powRealExponent=function(a,h){var c=a.value.real,r=a.value.imag,b=Math.pow(Math.sqrt(c*c+r*r),h),c=Math.atan2(r,c);return{ctype:"number",value:{real:b*Math.cos(c*h),imag:b*Math.sin(c*h)}}};l.log=function(a){var h=a.value.real;a=a.value.imag;var c=Math.sqrt(h*h+a*a),r=Math.atan2(a,h);0>a&&(r+=2*Math.PI);0===a&&0>h&&(r=Math.PI);r>Math.PI&&(r-=2*Math.PI);return l.snap({ctype:"number",value:{real:Math.log(c),imag:r}})};l.pow=
-function(a,h){return l._helper.isZero(h)?l.one:l._helper.isZero(a)?l.zero:l._helper.isReal(h)?l.powRealExponent(a,h.value.real):l.exp(l.mult(l.log(a),h))};l.mod=function(a,h){var c=a.value.real,r=h.value.real,b=a.value.imag,d=h.value.imag,c=c-Math.floor(c/r)*r,b=b-Math.floor(b/d)*d;0===r&&(c=0);0===d&&(b=0);return l.snap({ctype:"number",value:{real:c,imag:b}})};l._helper.seed="NO";l._helper.seedrandom=function(a){a-=Math.floor(a);l._helper.seed=.8*a+.1};l._helper.rand=function(){if("NO"===l._helper.seed)return Math.random();
-var a=l._helper.seed,a=1E3*Math.sin(1E3*a),a=a-Math.floor(a);return l._helper.seed=a};l._helper.randnormal=function(){var a=l._helper.rand(),h=l._helper.rand();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*h)};l._helper.isEqual=function(a,h){return a.value.real===h.value.real&&a.value.imag===h.value.imag};l._helper.isLessThan=function(a,h){return a.value.real<h.value.real||a.value.real===h.value.real&&a.value.imag<h.value.imag};l._helper.compare=function(a,h){return l._helper.isLessThan(a,h)?
--1:l._helper.isEqual(a,h)?0:1};l._helper.isAlmostEqual=function(a,h,c){var r=l.eps;"undefined"!==typeof c&&(r=c);c=a.value.real-h.value.real;a=a.value.imag-h.value.imag;return c<r&&c>-r&&a<r&&a>-r};l._helper.isZero=function(a){return 0===a.value.real&&0===a.value.imag};l._helper.isAlmostZero=function(a){var h=a.value.real;a=a.value.imag;return h<l.eps&&h>-l.eps&&a<l.eps&&a>-l.eps};l._helper.isReal=function(a){return 0===a.value.imag};l._helper.isAlmostReal=function(a){a=a.value.imag;return a<l.epsbig&&
-a>-l.epsbig};l._helper.isNaN=function(a){return isNaN(a.value.real)||isNaN(a.value.imag)};l._helper.isFinite=function(a){return isFinite(a.value.real)&&isFinite(a.value.imag)};l._helper.isAlmostImag=function(a){a=a.value.real;return a<l.epsbig&&a>-l.epsbig};l._helper.z3a=l.complex(-.5,.5*Math.sqrt(3));l._helper.z3b=l.complex(-.5,-.5*Math.sqrt(3));l._helper.cub1={ctype:"list",value:[l.one,l.one,l.one]};l._helper.cub2={ctype:"list",value:[l._helper.z3a,l.one,l._helper.z3b]};l._helper.cub3={ctype:"list",
-value:[l._helper.z3b,l.one,l._helper.z3a]};l.solveCubic=function(a,h,c,r){a=l._helper.solveCubicHelper(a,h,c,r);return[g.scalproduct(l._helper.cub1,a),g.scalproduct(l._helper.cub2,a),g.scalproduct(l._helper.cub3,a)]};l._helper.solveCubicHelper=function(a,h,c,r){var b=a.value.real;a=a.value.imag;var d=h.value.real;h=h.value.imag;var e=c.value.real,f=c.value.imag,k=r.value.real,m=r.value.imag,n=b*e-a*f;c=b*f+a*e;r=4*n-(d*d-h*h);var p=4*c-2*d*h,q=b*d-a*h,t=b*h+a*d,v=r*e-p*f-18*(q*k-t*m),p=r*f+p*e-18*
-(q*m+t*k);r=27*(b*b-a*a);var u=54*a*b,w=r*k-u*m,x=r*m+u*k,z=d*d-h*h,y=2*d*h,A=z*d-y*h,B=z*h+y*d,C=w+4*A,u=x+4*B;r=27*(v*e-p*f+C*k-u*m);p=27*(v*f+p*e+C*m+u*k);C=Math.sqrt(Math.sqrt(r*r+p*p));u=Math.atan2(p,r);p=C*Math.sin(u/2);r=C*Math.cos(u/2);A=-2*A+9*(q*e-t*f)-w+(r*b-p*a);B=-2*B+9*(q*f+t*e)-x+(r*a+p*b);r=Math.exp(Math.log(Math.sqrt(A*A+B*B))/3);e=Math.atan2(B,A);u=r*Math.sin(e/3);p=r*Math.cos(e/3);r*=r;e*=2;n=2*z-6*n;c=2*y-6*c;y=-1.5874010519681996*(d*p-h*u);d=-1.5874010519681996*(d*u+h*p);h=1.2599210498948732*
-r*Math.cos(e/3);e=1.2599210498948732*r*Math.sin(e/3);r=4.762203155904599*(p*b-u*a);p=4.762203155904599*(p*a+u*b);b=r*r+p*p;u=(-n*p+c*r)/b;n=(n*r+c*p)/b;c=u;u=(-y*p+d*r)/b;y=(y*r+d*p)/b;d=u;u=(-h*p+e*r)/b;h=(h*r+e*p)/b;e=u;return g.turnIntoCSList([l.complex(n,c),l.complex(y,d),l.complex(h,e)])};var g={_helper:{},turnIntoCSList:function(a){return{ctype:"list",value:a}}};g.EMPTY=g.turnIntoCSList([]);g.asList=function(a){return"list"===a.ctype?a:"number"===a.ctype||"boolean"===a.ctype||"geo"===a.ctype?
-g.turnIntoCSList([a]):g.EMPTY};g.realVector=function(a){for(var h=[],c=0;c<a.length;c++)h[c]={ctype:"number",value:{real:a[c],imag:0}};return{ctype:"list",value:h}};g._helper.unitvector=function(a,h){var c=g.zerovector(a);c.value[Math.floor(h.value.real-1)]=l.real(1);return c};g.idMatrix=function(a){for(var h=g.zeromatrix(a,a),c=l.real(1),r=0;r<a.value.real;r++)h.value[r].value[r]=c;return h};g._helper.flippedidMatrix=function(a){for(var h=g.zeromatrix(a,a),c=l.real(1),r=0;r<a.value.real;r++)h.value[r].value[a.value.real-
-r-1]=c;return h};g.println=function(a){for(var h=[],c=0;c<a.value.length;c++)if("number"===a.value[c].ctype)h[c]=l.niceprint(a.value[c]);else if("list"===a.value[c].ctype)g.println(a.value[c]);else return k;"number"===a.value[0].ctype&&console.log(h)};g.matrix=function(a){return g.turnIntoCSList(a.map(g.turnIntoCSList))};g.realMatrix=function(a){for(var h=a.length,c=Array(h),r=0;r<h;r++)c[r]=g.realVector(a[r]);return g.turnIntoCSList(c)};g.ex=g.realVector([1,0,0]);g.ey=g.realVector([0,1,0]);g.ez=
-g.realVector([0,0,1]);g.linfty=g.realVector([0,0,1]);g.ii=g.turnIntoCSList([l.complex(1,0),l.complex(0,1),l.complex(0,0)]);g.jj=g.turnIntoCSList([l.complex(1,0),l.complex(0,-1),l.complex(0,0)]);g.fundDual=g.realMatrix([[1,0,0],[0,1,0],[0,0,0]]);g.fund=g.realMatrix([[0,0,0],[0,0,0],[0,0,1]]);g.sequence=function(a,h){for(var c=[],r=0,b=Math.round(a.value.real);b<Math.round(h.value.real)+1;b++)c[r]={ctype:"number",value:{real:b,imag:0}},r++;return{ctype:"list",value:c}};g.pairs=function(a){for(var h=
-[],c=0;c<a.value.length-1;c++)for(var r=c+1;r<a.value.length;r++)h.push({ctype:"list",value:[a.value[c],a.value[r]]});return{ctype:"list",value:h}};g.triples=function(a){for(var h=[],c=0;c<a.value.length-2;c++)for(var r=c+1;r<a.value.length-1;r++)for(var b=r+1;b<a.value.length;b++)h.push({ctype:"list",value:[a.value[c],a.value[r],a.value[b]]});return{ctype:"list",value:h}};g.cycle=function(a){for(var h=[],c=0;c<a.value.length-1;c++)h[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};h.push({ctype:"list",
-value:[a.value[a.value.length-1],a.value[0]]});return{ctype:"list",value:h}};g.consecutive=function(a){for(var h=[],c=0;c<a.value.length-1;c++)h[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};return{ctype:"list",value:h}};g.reverse=function(a){for(var h=Array(a.value.length),c=a.value.length-1,r=0;0<=c;c--,r++)h[r]=a.value[c];return{ctype:"list",value:h}};g.directproduct=function(a,h){for(var c=[],r=0;r<a.value.length;r++)for(var b=0;b<h.value.length;b++)c.push({ctype:"list",value:[a.value[r],
-h.value[b]]});return{ctype:"list",value:c}};g.concat=function(a,h){for(var c=[],r=0;r<a.value.length;r++)c.push(a.value[r]);for(r=0;r<h.value.length;r++)c.push(h.value[r]);return{ctype:"list",value:c}};g.prepend=function(a,h){var c=[];c[0]=a;for(var r=0;r<h.value.length;r++)c[r+1]=h.value[r];return{ctype:"list",value:c}};g.append=function(a,h){for(var c=[],r=0;r<a.value.length;r++)c[r]=a.value[r];c.push(h);return{ctype:"list",value:c}};g.contains=function(a,h){for(var c=0;c<a.value.length;c++)if(D.equals(a.value[c],
-h).value)return{ctype:"boolean",value:!0};return{ctype:"boolean",value:!1}};g.common=function(a,h){for(var c=[],r=0,b=0;b<a.value.length;b++){for(var d=!1,g=a.value[b],e=0;e<h.value.length;e++)d=d||D.equals(g,h.value[e]).value;d&&(c[r]=a.value[b],r++)}return{ctype:"list",value:c}};g.remove=function(a,h){for(var c=[],r=0,b=0;b<a.value.length;b++){for(var d=!1,g=a.value[b],e=0;e<h.value.length;e++)d=d||D.equals(g,h.value[e]).value;d||(c[r]=a.value[b],r++)}return{ctype:"list",value:c}};g.sort1=function(a){a=
-a.value.slice();a.sort(w.compare);return g.turnIntoCSList(a)};g._helper.isEqual=function(a,h){return g.equals(a,h).value};g._helper.isLessThan=function(a,h){for(var c=a.value.length,r=h.value.length,b=0;!(b>=c||b>=r)&&w.isEqual(a.value[b],h.value[b]);)b++;return b===c&&b<r?!0:b===r&&b<c||b===c&&b===r?!1:w.isLessThan(a.value[b],h.value[b])};g._helper.compare=function(a,h){return g._helper.isLessThan(a,h)?-1:g._helper.isEqual(a,h)?0:1};g.equals=function(a,h){if(a.value.length!==h.value.length)return{ctype:"boolean",
-value:!1};for(var c=!0,r=0;r<a.value.length;r++)var b=a.value[r],d=h.value[r],c="list"===b.ctype&&"list"===d.ctype?c&&g.equals(b,d).value:c&&pb([b,d],[]).value;return{ctype:"boolean",value:c}};g.almostequals=function(a,h){if(a.value.length!==h.value.length)return{ctype:"boolean",value:!1};for(var c=!0,r=0;r<a.value.length;r++)var b=a.value[r],d=h.value[r],c="list"===b.ctype&&"list"===d.ctype?c&&g.almostequals(b,d).value:c&&Yb([b,d],[]).value;return{ctype:"boolean",value:c}};g._helper.isAlmostReal=
-function(a){for(var h=!0,c=0;c<a.value.length;c++)var r=a.value[c],h="list"===r.ctype?h&&g._helper.isAlmostReal(r):h&&l._helper.isAlmostReal(r);return h};g._helper.isAlmostZero=function(a){for(var h=0;h<a.value.length;h++){var c=a.value[h];if("list"===c.ctype){if(!g._helper.isAlmostZero(c))return!1}else if(!l._helper.isAlmostZero(c))return!1}return!0};g._helper.isNaN=function(a){for(var h=!1,c=0;c<a.value.length;c++)var r=a.value[c],h="list"===r.ctype?h||g._helper.isNaN(r):h||l._helper.isNaN(r);return h};
-g.set=function(a){var h=[],c=0;a=a.value.slice();a.sort(w.compare);for(var r=0;r<a.length;r++)0!==r&&pb([h[h.length-1],a[r]],[]).value||(h[c]=a[r],c++);return{ctype:"list",value:h}};g.maxval=function(a){for(var h=l.zero,c=0;c<a.value.length;c++){var r=a.value[c];"number"===r.ctype&&(h=l.argmax(h,r));"list"===r.ctype&&(h=l.argmax(h,g.maxval(r)))}return h};g.maxIndex=function(a,h,c){var r=0;void 0!==c&&(r=c);c=r;for(var b=h(a.value[r]).value.real;r<a.value.length;++r){var d=h(a.value[r]).value.real;
-d>b&&(c=r,b=d)}return c};g.normalizeMax=function(a){var h=l.inv(g.maxval(a));return l._helper.isFinite(h)?g.scalmult(h,a):a};g.normalizeZ=function(a){var h=l.inv(a.value[2]);return g.scalmult(h,a)};g.dehom=function(a){a=a.value.slice();var h=a.length-1,c=l.inv(a[h]);a.length=h;for(var r=0;r<h;++r)a[r]=l.mult(c,a[r]);return g.turnIntoCSList(a)};g.normalizeAbs=function(a){var h=l.inv(g.abs(a));return g.scalmult(h,a)};g.max=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<
-a.value.length;r++)c[r]=w.max(a.value[r],h.value[r]);return{ctype:"list",value:c}};g.min=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++)c[r]=w.min(a.value[r],h.value[r]);return{ctype:"list",value:c}};g.scaldiv=function(a,h){if("number"!==a.ctype)return k;for(var c=[],r=0;r<h.value.length;r++){var b=h.value[r];c[r]="number"===b.ctype?w.div(b,a):"list"===b.ctype?g.scaldiv(a,b):k}return{ctype:"list",value:c}};g.scalmult=function(a,h){if("number"!==a.ctype)return k;
-for(var c=[],r=0;r<h.value.length;r++){var b=h.value[r];c[r]="number"===b.ctype?w.mult(b,a):"list"===b.ctype?g.scalmult(a,b):k}return{ctype:"list",value:c}};g.add=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++){var b=a.value[r],d=h.value[r];c[r]="number"===b.ctype&&"number"===d.ctype?w.add(b,d):"list"===b.ctype&&"list"===d.ctype?g.add(b,d):k}return{ctype:"list",value:c}};g.sub=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],r=
-0;r<a.value.length;r++){var b=a.value[r],d=h.value[r];c[r]="number"===b.ctype&&"number"===d.ctype?l.sub(b,d):"list"===b.ctype&&"list"===d.ctype?g.sub(b,d):k}return{ctype:"list",value:c}};g.abs2=function(a){for(var h=0,c=0;c<a.value.length;c++){var r=a.value[c];if("number"===r.ctype)h+=l.abs2(r).value.real;else if("list"===r.ctype)h+=g.abs2(r).value.real;else return k}return{ctype:"number",value:{real:h,imag:0}}};g.abs=function(a){return l.sqrt(g.abs2(a))};g.normalizeMaxXX=function(a){for(var h=-1E4,
-c=l.real(1),r=0;r<a.value.length;r++){var b=l.abs(a.value[r]);b.value.real>h&&(c=a.value[r],h=b.value.real)}return g.scaldiv(c,a)};g.recursive=function(a,h){for(var c=[],r=0;r<a.value.length;r++){var b=B(a.value[r]);c[r]="number"===b.ctype?l[h](b):"list"===b.ctype?g[h](b):k}return{ctype:"list",value:c}};g.re=function(a){return g.recursive(a,"re")};g.neg=function(a){return g.recursive(a,"neg")};g.im=function(a){return g.recursive(a,"im")};g.conjugate=function(a){return g.recursive(a,"conjugate")};
-g.transjugate=function(a){return g.transpose(g.conjugate(a))};g.round=function(a){return g.recursive(a,"round")};g.ceil=function(a){return g.recursive(a,"ceil")};g.floor=function(a){return g.recursive(a,"floor")};g._helper.colNumb=function(a){if("list"!==a.ctype)return-1;for(var h=-1,c=0;c<a.value.length;c++){if("list"!==a.value[c].ctype)return-1;if(0===c)h=a.value[c].value.length;else if(h!==a.value[c].value.length)return-1}return h};g._helper.isNumberVecN=function(a,h){if("list"!==a.ctype||a.value.length!==
-h)return!1;for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return!1;return!0};g.isNumberVector=function(a){if("list"!==a.ctype)return{ctype:"boolean",value:!1};for(var h=0;h<a.value.length;h++)if("number"!==a.value[h].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};g.isNumberVectorN=function(a,h){if("list"!==a.ctype)return{ctype:"boolean",value:!1};if(a.value)for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",
-value:!0}};g.isNumberMatrix=function(a){if(-1===g._helper.colNumb(a))return{ctype:"boolean",value:!1};for(var h=0;h<a.value.length;h++)if(!g.isNumberVector(a.value[h]).value)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};g._helper.isNumberMatrixMN=function(a,h,c){return g.isNumberMatrix(a).value&&a.value.length===h&&a.value[0].value.length===c};g.scalproduct=function(a,h){if(a.value.length!==h.value.length)return k;for(var c={ctype:"number",value:{real:0,imag:0}},r=0;r<h.value.length;r++){var b=
-a.value[r],d=h.value[r];if("number"===b.ctype&&"number"===d.ctype)c=l.add(l.mult(b,d),c);else return k}return c};g.sesquilinearproduct=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=0,r=0,b=0;b<h.value.length;b++)var d=a.value[b].value,g=h.value[b].value,c=c+(d.real*g.real+d.imag*g.imag),r=r+(d.real*g.imag-d.imag*g.real);return l.complex(c,r)};g.normSquared=function(a){for(var h=0,c=0;c<a.value.length;c++)var r=a.value[c].value,h=h+(r.real*r.real+r.imag*r.imag);return l.real(h)};
-g.productMV=function(a,h){if(a.value[0].value.length!==h.value.length)return k;for(var c=[],r=0;r<a.value.length;r++){for(var b={ctype:"number",value:{real:0,imag:0}},d=a.value[r],e=0;e<h.value.length;e++){var f=d.value[e],m=h.value[e];if("number"===f.ctype&&"number"===m.ctype)b=l.add(l.mult(f,m),b);else return k}c[r]=b}return g.turnIntoCSList(c)};g.productVM=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=[],b=0;b<h.value[0].value.length;b++){for(var d={ctype:"number",value:{real:0,
-imag:0}},e=0;e<a.value.length;e++){var f=a.value[e],m=h.value[e].value[b];if("number"===f.ctype&&"number"===m.ctype)d=l.add(l.mult(f,m),d);else return k}c[b]=d}return g.turnIntoCSList(c)};g.productMM=function(a,h){if(a.value[0].value.length!==h.value.length)return k;for(var c=[],b=0;b<a.value.length;b++){var d=g.productVM(a.value[b],h);c[b]=d}return g.turnIntoCSList(c)};g.mult=function(a,h){return a.value.length===h.value.length&&g.isNumberVector(a).value&&g.isNumberVector(h).value?g.scalproduct(a,
-h):g.isNumberMatrix(a).value&&h.value.length===a.value[0].value.length&&g.isNumberVector(h).value?g.productMV(a,h):g.isNumberMatrix(h).value&&a.value.length===h.value.length&&g.isNumberVector(a).value?g.productVM(a,h):g.isNumberMatrix(a).value&&g.isNumberMatrix(h).value&&h.value.length===a.value[0].value.length?g.productMM(a,h):k};g.projectiveDistMinScal=function(a,h){var c=g.abs(a),b=g.abs(h);if(0===c.value.real||0===b.value.real)return 0;var d=g.conjugate(h),d=g.scalproduct(a,d),d=l._helper.isAlmostZero(d)?
-l.real(1):l.div(d,l.abs(d)),c=g.scaldiv(c,a),b=g.scaldiv(b,h),b=g.scalmult(d,b),d=g.abs(g.add(c,b)),b=g.abs(g.sub(c,b));return Math.min(d.value.real,b.value.real)};g.conicDist=function(a,h){var c=v(a),b=v(h);console.log(ba(c),ba(b));return g.projectiveDistMinScal(c,b)};g.crossOperator=function(a){var h=a.value[0],c=a.value[1];a=a.value[2];return g.turnIntoCSList([g.turnIntoCSList([l.zero,l.neg(a),c]),g.turnIntoCSList([a,l.zero,l.neg(h)]),g.turnIntoCSList([l.neg(c),h,l.zero])])};g.cross=function(a,
-h){var c=l.sub(l.mult(a.value[1],h.value[2]),l.mult(a.value[2],h.value[1])),b=l.sub(l.mult(a.value[2],h.value[0]),l.mult(a.value[0],h.value[2])),d=l.sub(l.mult(a.value[0],h.value[1]),l.mult(a.value[1],h.value[0]));return g.turnIntoCSList([c,b,d])};g.crossratio3harm=function(a,h,c,b,d){var e=g.det3(a,c,d),f=g.det3(h,b,d);a=g.det3(a,b,d);h=g.det3(h,c,d);e=l.mult(e,f);f=l.mult(a,h);return g.turnIntoCSList([e,f])};g.crossratio3=function(a,h,c,b,d){a=g.crossratio3harm(a,h,c,b,d);return l.div(a.value[0],
-a.value[1])};g.veronese=function(a){var h=l.mult(a.value[0],a.value[0]),c=l.mult(a.value[1],a.value[1]),b=l.mult(a.value[2],a.value[2]),d=l.mult(a.value[0],a.value[1]),e=l.mult(a.value[0],a.value[2]);a=l.mult(a.value[1],a.value[2]);return g.turnIntoSCList([h,c,b,d,e,a])};g.matrixFromVeronese=function(a){var h=a.value[0],c=a.value[1],b=a.value[2],d=l.realmult(.5,a.value[3]),e=l.realmult(.5,a.value[4]);a=l.realmult(.5,a.value[5]);return g.turnIntoCSList([g.turnIntoCSList([h,d,e]),g.turnIntoCSList([d,
-c,a]),g.turnIntoCSList([e,a,b])])};g.det2=function(a,h){var c=l.mult(a.value[0],h.value[1]);return c=l.sub(c,l.mult(a.value[1],h.value[0]))};g.det3=function(a,h,c){return l.complex(a.value[0].value.real*h.value[1].value.real*c.value[2].value.real-a.value[0].value.imag*h.value[1].value.imag*c.value[2].value.real-a.value[0].value.imag*h.value[1].value.real*c.value[2].value.imag-a.value[0].value.real*h.value[1].value.imag*c.value[2].value.imag+a.value[2].value.real*h.value[0].value.real*c.value[1].value.real-
-a.value[2].value.imag*h.value[0].value.imag*c.value[1].value.real-a.value[2].value.imag*h.value[0].value.real*c.value[1].value.imag-a.value[2].value.real*h.value[0].value.imag*c.value[1].value.imag+a.value[1].value.real*h.value[2].value.real*c.value[0].value.real-a.value[1].value.imag*h.value[2].value.imag*c.value[0].value.real-a.value[1].value.imag*h.value[2].value.real*c.value[0].value.imag-a.value[1].value.real*h.value[2].value.imag*c.value[0].value.imag-a.value[0].value.real*h.value[2].value.real*
-c.value[1].value.real+a.value[0].value.imag*h.value[2].value.imag*c.value[1].value.real+a.value[0].value.imag*h.value[2].value.real*c.value[1].value.imag+a.value[0].value.real*h.value[2].value.imag*c.value[1].value.imag-a.value[2].value.real*h.value[1].value.real*c.value[0].value.real+a.value[2].value.imag*h.value[1].value.imag*c.value[0].value.real+a.value[2].value.imag*h.value[1].value.real*c.value[0].value.imag+a.value[2].value.real*h.value[1].value.imag*c.value[0].value.imag-a.value[1].value.real*
-h.value[0].value.real*c.value[2].value.real+a.value[1].value.imag*h.value[0].value.imag*c.value[2].value.real+a.value[1].value.imag*h.value[0].value.real*c.value[2].value.imag+a.value[1].value.real*h.value[0].value.imag*c.value[2].value.imag,-a.value[0].value.imag*h.value[1].value.imag*c.value[2].value.imag+a.value[0].value.imag*h.value[1].value.real*c.value[2].value.real+a.value[0].value.real*h.value[1].value.real*c.value[2].value.imag+a.value[0].value.real*h.value[1].value.imag*c.value[2].value.real-
-a.value[2].value.imag*h.value[0].value.imag*c.value[1].value.imag+a.value[2].value.imag*h.value[0].value.real*c.value[1].value.real+a.value[2].value.real*h.value[0].value.real*c.value[1].value.imag+a.value[2].value.real*h.value[0].value.imag*c.value[1].value.real-a.value[1].value.imag*h.value[2].value.imag*c.value[0].value.imag+a.value[1].value.imag*h.value[2].value.real*c.value[0].value.real+a.value[1].value.real*h.value[2].value.real*c.value[0].value.imag+a.value[1].value.real*h.value[2].value.imag*
-c.value[0].value.real+a.value[0].value.imag*h.value[2].value.imag*c.value[1].value.imag-a.value[0].value.imag*h.value[2].value.real*c.value[1].value.real-a.value[0].value.real*h.value[2].value.real*c.value[1].value.imag-a.value[0].value.real*h.value[2].value.imag*c.value[1].value.real+a.value[2].value.imag*h.value[1].value.imag*c.value[0].value.imag-a.value[2].value.imag*h.value[1].value.real*c.value[0].value.real-a.value[2].value.real*h.value[1].value.real*c.value[0].value.imag-a.value[2].value.real*
-h.value[1].value.imag*c.value[0].value.real+a.value[1].value.imag*h.value[0].value.imag*c.value[2].value.imag-a.value[1].value.imag*h.value[0].value.real*c.value[2].value.real-a.value[1].value.real*h.value[0].value.real*c.value[2].value.imag-a.value[1].value.real*h.value[0].value.imag*c.value[2].value.real)};g.det4m=function(a){var h=a.value,c=h[0].value,b=c[0].value,d=+b.real,g=+b.imag,b=c[1].value,e=+b.real,f=+b.imag,b=c[2].value,k=+b.real,m=+b.imag,b=c[3].value,n=+b.real,p=+b.imag,c=h[1].value,
-b=c[0].value,q=+b.real,t=+b.imag,b=c[1].value,u=+b.real,v=+b.imag,b=c[2].value,w=+b.real,x=+b.imag,b=c[3].value,c=+b.real,b=+b.imag;a=d*u-g*v-e*q+f*t;var y=d*v+g*u-e*t-f*q,z=d*w-g*x-k*q+m*t,A=d*x+g*w-k*t-m*q,B=d*c-g*b-n*q+p*t,C=d*b+g*c-n*t-p*q,D=e*w-f*x-k*u+m*v,E=e*x+f*w-k*v-m*u,F=e*c-f*b-n*u+p*v,G=e*b+f*c-n*v-p*u,H=k*c-m*b-n*w+p*x,L=k*b+m*c-n*x-p*w,c=h[2].value,b=c[0].value,d=+b.real,g=+b.imag,b=c[1].value,e=+b.real,f=+b.imag,b=c[2].value,k=+b.real,m=+b.imag,b=c[3].value,n=+b.real,p=+b.imag,c=h[3].value,
-b=c[0].value,q=+b.real,t=+b.imag,b=c[1].value,u=+b.real,v=+b.imag,b=c[2].value,w=+b.real,x=+b.imag,b=c[3].value,c=+b.real,b=+b.imag,h=d*u-g*v-e*q+f*t,J=d*v+g*u-e*t-f*q,I=d*w-g*x-k*q+m*t,K=d*x+g*w-k*t-m*q,M=d*c-g*b-n*q+p*t,d=d*b+g*c-n*t-p*q,g=e*w-f*x-k*u+m*v,q=e*x+f*w-k*v-m*u,t=e*c-f*b-n*u+p*v,e=e*b+f*c-n*v-p*u,f=k*c-m*b-n*w+p*x,k=k*b+m*c-n*x-p*w;return l.complex(a*f-y*k-z*t+A*e+B*g-C*q+D*M-E*d-F*I+G*K+H*h-L*J,a*k+y*f-z*e-A*t+B*q+C*g+D*d+E*M-F*K-G*I+H*J+L*h)};g.eucangle=function(a,h){var c=g.cross(a,
-g.linfty),b=g.cross(h,g.linfty),d=g.det3(g.ez,c,g.ii),c=g.det3(g.ez,c,g.jj),e=g.det3(g.ez,b,g.ii),b=g.det3(g.ez,b,g.jj),d=l.div(l.mult(d,b),l.mult(e,c)),d=l.log(d);return d=l.mult(d,l.complex(0,.5))};g.zerovector=function(a){a=Math.floor(a.value.real);for(var h=Array(a),c=0;c<a;c++)h[c]=0;return g.realVector(h)};g.zeromatrix=function(a,h){for(var c=Math.floor(a.value.real),b=Array(c),d=0;d<c;d++)b[d]=g.zerovector(h);return g.turnIntoCSList(b)};g.vandermonde=function(a){for(var h=a.value.length,c=
-g.zeromatrix(h,h),b=0;b<h;b++)for(var d=0;d<h;d++)c.value[b].value[d]=l.pow(a.value[b],l.real(d-1));return c};g.transpose=function(a){for(var h=[],c=a.value[0].value.length,b=a.value.length,d=0;d<c;d++){for(var e=[],f=0;f<b;f++)e[f]=a.value[f].value[d];h[d]=g.turnIntoCSList(e)}return g.turnIntoCSList(h)};g.column=function(a,h){for(var c=[],b=a.value.length,d=Math.floor(h.value.real-1),e=0;e<b;e++)c[e]=a.value[e].value[d];return g.turnIntoCSList(c)};g.row=function(a,h){for(var c=[],b=a.value[0].value.length,
-d=Math.floor(h.value.real-1),e=0;e<b;e++)c[e]=a.value[d].value[e];return g.turnIntoCSList(c)};g.adjoint2=function(a){var h=a.value[0].value[0],c=a.value[1].value[0],b=Array(2);b[0]=g.turnIntoCSList([a.value[1].value[1],l.neg(a.value[0].value[1])]);b[1]=g.turnIntoCSList([l.neg(c),h]);return b=g.turnIntoCSList(b)};g.adjoint3=function(a){var h,c,b,d,g,e,f,k,l,m,n,p,q,t,u,v,w;h=a.value[0].value;c=h[0].value;b=c.real;d=c.imag;c=h[1].value;g=c.real;e=c.imag;c=h[2].value;f=c.real;k=c.imag;h=a.value[1].value;
-c=h[0].value;l=c.real;m=c.imag;c=h[1].value;n=c.real;p=c.imag;c=h[2].value;q=c.real;t=c.imag;h=a.value[2].value;c=h[0].value;a=c.real;u=c.imag;c=h[1].value;v=c.real;w=c.imag;c=h[2].value;h=c.real;c=c.imag;return{ctype:"list",value:[{ctype:"list",value:[{ctype:"number",value:{real:n*h-q*v-p*c+t*w,imag:n*c-q*w-v*t+h*p}},{ctype:"number",value:{real:-g*h+f*v+e*c-k*w,imag:-g*c+f*w+v*k-h*e}},{ctype:"number",value:{real:g*q-f*n-e*t+k*p,imag:g*t-f*p-n*k+q*e}}]},{ctype:"list",value:[{ctype:"number",value:{real:-l*
-h+q*a+m*c-t*u,imag:-l*c+q*u+a*t-h*m}},{ctype:"number",value:{real:b*h-f*a-d*c+k*u,imag:b*c-f*u-a*k+h*d}},{ctype:"number",value:{real:-b*q+f*l+d*t-k*m,imag:-b*t+f*m+l*k-q*d}}]},{ctype:"list",value:[{ctype:"number",value:{real:l*v-n*a-m*w+p*u,imag:l*w-n*u-a*p+v*m}},{ctype:"number",value:{real:-b*v+g*a+d*w-e*u,imag:-b*w+g*u+a*e-v*d}},{ctype:"number",value:{real:b*n-g*l-d*p+e*m,imag:b*p-g*m-l*e+n*d}}]}]}};g.inverse=function(a){var h=a.value.length;if(h!==a.value[0].value.length)return console.log("Inverse works only for square matrices"),
-k;if(2===h)return g.scaldiv(g.det(a),g.adjoint2(a));if(3===h)return g.scaldiv(g.det(a),g.adjoint3(a));h=g.LUdecomp(a);a=a.value.length;var c=l.real(0),b=l.real(1),d=g.zerovector(l.real(a));d.value[0]=b;for(var e=Array(a),f=0;f<a;f++)e[f]=g._helper.LUsolve(h,d),d.value[f]=c,d.value[f+1]=b;e=g.turnIntoCSList(e);return e=g.transpose(e)};g.linearsolve=function(a,h){return 2===a.value.length?g.linearsolveCramer2(a,h):3===a.value.length?g.linearsolveCramer3(a,h):g.LUsolve(a,h)};g.getDiag=function(a){if(a.value.length!==
-a.value[0].value.length)return k;for(var h=Array(a.value.length),c=0;c<a.value.length;c++)h[c]=a.value[c].value[c];return g.turnIntoCSList(h)};g.getSubDiag=function(a){if(a.value.length!==a.value[0].value.length)return k;for(var h=Array(a.value.length-1),c=0;c<a.value.length-1;c++)h[c]=a.value[c+1].value[c];return g.turnIntoCSList(h)};g.eig2=function(a){var h=l.add(a.value[0].value[0],a.value[1].value[1]);a=g.det2(a.value[0],a.value[1]);var c=l.mult(h,h),b=h=l.mult(h,l.real(.5));a=l.sqrt(l.sub(l.div(c,
-l.real(4)),a));h=l.add(h,a);b=l.sub(b,a);return g.turnIntoCSList([h,b])};g.eig=function(a,h){var c=h||!0,b=a,d=l.real(b.value.length),e=d.value.real;l.real(0);var b=g._helper.QRIteration(b)[0],b=g.getDiag(b),b=g.sort1(b),d=g.idMatrix(d,d),f=Array(e),f=g.turnIntoCSList(f);if(c){for(var k,m,n,p=0,q=!1,c=0;c<e;c++)q?m=k.value[p]:(k=b.value[c],k=g.sub(a,g.scalmult(k,d)),k=g.nullSpace(k),m=k.value[0],void 0!==m&&(n=m)),void 0===m&&(m=n),1E-8>g.abs(m).value.real&&0===p&&(m=g._helper.inverseIteration(a,
-b.value[c])),f.value[c]=g._helper.isAlmostZeroVec(m)?m:g.scaldiv(g.abs(m),m),c<e-1&&((q=1E-6>l.abs(l.sub(b.value[c],b.value[c+1])).value.real)?p++:p=0);f=g.transpose(f)}return g.turnIntoCSList([b,f])};g._helper.isNormalMatrix=function(a){return 1E-10>g.abs(g.sub(a,g.transjugate(a))).value.real};g._helper.QRIteration=function(a,h){var c,b=a;c=l.real(b.value.length);var d=c.value.real,e=c.value.real;l.real(0);var f;g.idMatrix(c,c);var k=g.zeromatrix(c,c),m=g.idMatrix(c,c),n=h?h:2500,p,q,t,u=0,v=Array(e);
-for(c=0;c<n;c++){f=g._helper.getBlock(b,[e-2,e-1],[e-2,e-1]);p=g.eig2(f);f=p.value[0];p=p.value[1];g.abs(f);g.abs(p);q=b.value[e-1].value[e-1];t=l.abs(l.sub(q,f)).value.real;q=l.abs(l.sub(q,p)).value.real;p=t<q?f:p;f=g.idMatrix(l.real(e),l.real(e));p=g.scalmult(p,f);f=g.QRdecomp(g.sub(b,p));b=w.mult(f.R,f.Q);b=g.add(b,p);f.Q=g._helper.buildBlockMatrix(f.Q,g.idMatrix(l.real(u),l.real(u)));m=w.mult(m,f.Q);if(1E-48>l.abs2(b.value[b.value.length-1].value[b.value[0].value.length-2]).value.real&&1<e){v[d-
-u-1]=b.value[e-1].value[e-1];for(c=0;c<e;c++)k.value[e-1].value[c]=b.value[e-1].value[c],k.value[c].value[e-1]=b.value[c].value[e-1];b=g._helper.getBlock(b,[0,e-2],[0,e-2]);u++;e--}if(1===e){k.value[0].value[0]=b.value[0].value[0];break}if(g._helper.isUpperTriangular(b)){for(c=0;c<e;c++)k.value[c].value[c]=b.value[c].value[c];break}}return[k,m]};g.rank=function(a,h){return g.RRQRdecomp(a,h).rank};g._helper.isAlmostZeroVec=function(a){for(var h=a.value.length,c=0;c<h;c++)if(!l._helper.isAlmostZero(a.value[c]))return!1;
-return!0};g._helper.isLowerTriangular=function(a){for(var h=a.value.length,c=a.value[0].value.length,b=0;b<h;b++)for(var d=b+1;d<c;d++)if(!l._helper.isAlmostZero(a.value[b].value[d]))return!1;return!0};g._helper.isUpperTriangular=function(a){return g._helper.isLowerTriangular(g.transpose(a))};g._helper.isAlmostId=function(a){var h=a.value.length,c=l.real(h);if(h!==a.value[0].value.length)return!1;a=g.sub(a,g.idMatrix(c),c);for(c=0;c<h;c++)for(var b=0;b<h;b++)if(1E-16<l.abs(a.value[c].value[b]).value.real)return!1;
-return!0};g.nullSpace=function(a,h){var c=a.value.length,b=g.RRQRdecomp(g.transjugate(a),h),d=g.transpose(b.Q),b=c-b.rank.value.real,e=Array(b);d.value.reverse();for(var f,k=0;k<b;k++)f=d.value[k],e[k]=g.scaldiv(g.abs(f),f);e=g.turnIntoCSList(e);return 0<e.value.length?e:g.turnIntoCSList([g.zerovector(l.real(c))])};g._helper.isAlmostDiagonal=function(a){var h=a.value.length;l.real(h);l.real(0);if(h!==a.value[0].value.length)return!1;for(var c=0;c<h;c++)for(var b=0;b<h;b++)if(c!==b&&1E-16<l.abs(a.value[c].value[b]).value.real)return!1;
-return!0};g._helper.inverseIteration=function(a,h){console.log("warning: code untested");for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=2*Math.random()-.5;for(var b=g.realVector(b),c=g.idMatrix(l.real(c),l.real(c)),d=l.add(h,l.real(.1*Math.random()-.5)),e=0;100>e;e++)b=g.scaldiv(g.abs(b),b),b=g.LUsolve(g.sub(a,g.scalmult(d,c)),JSON.parse(JSON.stringify(b)));return g.scaldiv(g.abs(b),b)};g._helper.toHessenberg=function(a){var h=JSON.parse(JSON.stringify(a)),c=h.value.length,b=l.real(c-1),d=l.real(c);
-l.real(1);if(g._helper.isUpperTriangular(h))return[g.idMatrix(b,b),a];var e;a=g.idMatrix(d,d);for(var f,d=1;d<c-1;d++)e=g.column(h,l.real(d)),e.value=e.value.splice(d),f=g.abs2(e).value.real,1E-16<f&&(e=g._helper.getHouseHolder(e),a=w.mult(a,e),h=w.mult(w.mult(e,h),e)),b.value.real--;return[a,h]};g._helper.swapEl=function(a,h,c){var b;"[object Array]"===Object.prototype.toString.call(a)?(b=a[h],a[h]=a[c],a[c]=b):"list"===a.ctype&&(b=a.value[h],a.value[h]=a.value[c],a.value[c]=b)};g.RRQRdecomp=function(a,
-h){var c=Math.sqrt(l.eps);void 0!==h&&(c=.1*h.value.real);var c=c*c,b,d=a.value.length,e=l.real(d),f=l.real(1),k=g._helper.unitvector(l.real(a.value.length),f),m=g.idMatrix(e,e),n=JSON.parse(JSON.stringify(a)),p=g.transpose(a),q=Array(d);for(b=0;b<d;b++)q[b]=g.abs2(p.value[b]);q=g.turnIntoCSList(q);p=Array(d);for(b=0;b<d;b++)p[b]=b;b=g.maxIndex(q,l.abs);for(var t=q.value[b],u=0,v=0;1E-16<l.abs2(t).value.real;v++){u++;g._helper.swapColumn(n,v,b);g._helper.swapEl(q,v,b);g._helper.swapEl(p,v,b);b=g._helper.getBlock(n,
-[v],[v]);b=g.column(b,f);t=g.abs2(b).value.real;1E-8<t&&(b=g._helper.getHouseHolder(b),b=g._helper.buildBlockMatrix(g.idMatrix(l.real(v),l.real(v)),b),m=w.mult(m,g.transjugate(b)),n=w.mult(b,n));for(b=v+1;b<d;b++)q.value[b]=l.sub(q.value[b],l.mult(n.value[v].value[b],l.conjugate(n.value[v].value[b])));b=g.maxIndex(q,l.abs2,v+1);t=q.value[b];if(v+2===d){l.abs(t).value.real>c&&u++;break}e=l.sub(e,f);k.value=k.value.splice(0,k.value.length-1)}return{Q:m,R:n,P:g.turnIntoCSList(p),rank:l.real(u)}};g._helper.getHouseHolder=
-function(a){var h=l.real(a.value.length);if(1E-16>g.abs2(a))return g.idMatrix(h,h);var c,b=l.real(1),d=g._helper.unitvector(l.real(a.value.length),b);c=g._helper.QRgetAlpha(a,0);c=g.sub(a,g.scalmult(c,d));c=g.scaldiv(g.abs(c),c);a=l.div(g.sesquilinearproduct(a,c),g.sesquilinearproduct(c,a));h=g.idMatrix(h,h);return h=g.sub(h,g.scalmult(l.add(b,a),g._helper.transposeMult(c,g.conjugate(c))))};g._helper.reOrderbyPivots=function(a,h){for(var c=a.value.length.length,b=g.transpose(a),c=Array(c),d=0;d<h.length;d++)c[h[d]]=
-b.value[d];c=g.turnIntoCSList(c);return g.transpose(c)};g.QRdecomp=function(a){var h,c=a.value.length,b=l.real(c);if(g._helper.isUpperTriangular(a))return{Q:g.idMatrix(b,b),R:a};var d=l.real(1),e=g._helper.unitvector(l.real(a.value.length),d),f,k=g.idMatrix(b,b);a=JSON.parse(JSON.stringify(a));for(var m=0;;m++){h=g._helper.getBlock(a,[m],[m]);h=g.column(h,d);f=g.abs2(h).value.real;1E-8<f&&(h=g._helper.getHouseHolder(h),h=g._helper.buildBlockMatrix(g.idMatrix(l.real(m),l.real(m)),h),k=w.mult(k,g.transjugate(h)),
-a=w.mult(h,a));if(m+2===c)break;b=l.sub(b,d);e.value=e.value.splice(0,e.value.length-1)}return{Q:k,R:a}};g._helper.swapColumn=function(a,h,c){for(var b,d=0;d<a.value.length;d++)b=a.value[d].value[h],a.value[d].value[h]=a.value[d].value[c],a.value[d].value[c]=b};g._helper.buildBlockMatrix=function(a,h){if(0===a.value.length)return h;if(0===h.value.length)return a;for(var c=a.value.length,b=a.value[0].value.length,d=b+h.value[0].value.length,d=g.zeromatrix(l.real(c+h.value.length),l.real(d)),e=0;e<
-a.value.length;e++)for(var f=0;f<a.value[0].value.length;f++)d.value[e].value[f]=a.value[e].value[f];for(e=0;e<h.value.length;e++)for(f=0;f<h.value[0].value.length;f++)d.value[c+e].value[b+f]=h.value[e].value[f];return d};g._helper.getBlock=function(a,h,c){a=JSON.parse(JSON.stringify(a));var b=h[0],d=c[0];h=void 0===h[1]?a.value.length:h[1];c=void 0===c[1]?a.value[0].value.length:c[1];h++;c++;a.value=a.value.slice(b,h);for(b=0;b<a.value.length;b++)a.value[b].value=a.value[b].value.slice(d,c);return a};
-g._helper.setBlock=function(a,h,c){a=JSON.parse(JSON.stringify(a));var b=c[0];c=c[1];for(var d=h.value.length,g=h.value[0].value.length,e=0;e<d;e++)for(var f=0;f<g;f++)a.value[b+e].value[c+f]=h.value[e].value[f];return a};g._helper.transposeMult=function(a,h){if(a.value.length!==h.value.length)return k;for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=g.scalmult(a.value[d],h);return g.turnIntoCSList(b)};g._helper.QRgetAlpha=function(a,h){return 0>a.value[h].value.real?g.abs(a):l.neg(g.abs(a))};
-g.LUdecomp=function(a){a=JSON.parse(JSON.stringify(a));var h,c,b,d,g,e=0,f,k=a.value.length,m=k-1,n=Array(k);for(b=0;b<k;++b){g=b;d=a.value[b];f=l.abs(d.value[b]).value.real;for(c=b+1;c<k;++c)h=l.abs(a.value[c].value[b]),f<h.value.real&&(f=h.value.real,g=c);f<l.eps&&console.log("Warning: singular matrix!");n[b]=g;g!==b&&(a.value[b]=a.value[g],a.value[g]=d,d=a.value[b],e++);c=d.value[b];for(h=b+1;h<k;++h)a.value[h].value[b]=l.div(a.value[h].value[b],c);for(h=b+1;h<k;++h){g=a.value[h];for(c=b+1;c<m;++c)g.value[c]=
-l.sub(g.value[c],l.mult(g.value[b],d.value[c])),++c,g.value[c]=l.sub(g.value[c],l.mult(g.value[b],d.value[c]));c===m&&(g.value[c]=l.sub(g.value[c],l.mult(g.value[b],d.value[c])))}}return{LU:a,P:n,TransPos:e}};g.LUsolve=function(a,h){var c=g.LUdecomp(a);return g._helper.LUsolve(c,h)};g._helper.LUsolve=function(a,h){var c=JSON.parse(JSON.stringify(h)),b,d=a.LU,g=d.value.length,e=JSON.parse(JSON.stringify(c)),f=a.P,k;for(b=g-1;-1!==b;--b)e.value[b]=c.value[b];for(b=0;b<g;++b)for(c=f[b],f[b]!==b&&(k=
-e.value[b],e.value[b]=e.value[c],e.value[c]=k),k=d.value[b],c=0;c<b;++c)e.value[b]=l.sub(e.value[b],l.mult(e.value[c],k.value[c]));for(b=g-1;0<=b;--b){k=d.value[b];for(c=b+1;c<g;++c)e.value[b]=l.sub(e.value[b],l.mult(e.value[c],k.value[c]));e.value[b]=l.div(e.value[b],k.value[b])}return e};g.linearsolveCramer2=function(a,h){var c=g.column(a,l.real(1)),b=g.column(a,l.real(2)),d=g.det2(c,b);l._helper.isZero(d)&&console.log("A is not regular!");b=g.det2(h,b);b=l.div(b,d);c=g.det2(c,h);c=l.div(c,d);return g.turnIntoCSList([b,
-c])};g.linearsolveCramer3=function(a,h){var c=g.column(a,l.real(1)),b=g.column(a,l.real(2)),d=g.column(a,l.real(3)),e=g.det3(c,b,d);l._helper.isZero(e)&&console.log("A is not regular!");var f=g.det3(h,b,d),d=g.det3(c,h,d),c=g.det3(c,b,h),f=g.turnIntoCSList([f,d,c]);return f=g.scaldiv(e,f)};g.linearsolveCGNR=function(a,h){var c=g.transpose(a),b=w.mult(c,a),c=w.mult(c,h);return g.linearsolveCG(b,c)};g.linearsolveCG=function(a,h){var c,b,d,e,f,k;e=h;b=c=g.sub(h,w.mult(a,h));for(var m=Math.ceil(1.2*a.value.length),
-n=0;n<m;){n++;f=w.mult(a,b);k=d=g.scalproduct(c,c);d=l.div(d,g.scalproduct(b,f));e=g.add(e,w.mult(d,b));c=g.sub(c,w.mult(d,f));if(g.abs(c).value.real<l.eps)break;d=g.scalproduct(c,c);d=l.div(d,k);b=g.add(c,w.mult(d,b))}n>=m&&console.log("CG did not converge");return e};g.det=function(a){if(1===a.value.length)return a.value[0].value[0];if(2===a.value.length)return g.det2(a.value[0],a.value[1]);if(3===a.value.length)return g.det3(a.value[0],a.value[1],a.value[2]);if(4===a.value.length)return g.det4m(a);
-var h=a.value.length,c=l.real(1),b,d,e=JSON.parse(JSON.stringify(a)),f,k,m,n;for(a=0;a<h-1;a++){d=a;for(b=a+1;b<h;b++)l.abs(e.value[b].value[a]).value.real>l.abs(e.value[d].value[a]).value.real&&(d=b);d!==a&&(b=e.value[d],e.value[d]=e.value[a],e.value[a]=b,c=l.neg(c));f=e.value[a];for(b=a+1;b<h;b++){k=e.value[b];m=l.div(k.value[a],f.value[a]);for(d=a+1;d<h-1;d+=2)n=d+1,k.value[d]=l.sub(k.value[d],l.mult(f.value[d],m)),k.value[n]=l.sub(k.value[n],l.mult(f.value[n],m));d!==h&&(k.value[d]=l.sub(k.value[d],
-l.mult(f.value[d],m)))}if(l._helper.isZero(f.value[a]))return l.real(0);c=l.mult(c,f.value[a])}return l.mult(c,e.value[a].value[a])};g.LUdet=function(a){a=g.LUdecomp(a);for(var h=a.LU,c=h.value.length,b=h.value[0].value[0],d=1;d<c;d++)b=l.mult(b,h.value[d].value[d]);1===a.TransPos%2&&(b=l.neg(b));return b};g.getField=function(a,h){var c;if("homog"===h){if(g._helper.isNumberVecN(a,3))return a;if(g._helper.isNumberVecN(a,2))return g.turnIntoCSList([a.value[0],a.value[1],l.real(1)])}if("xy"===h){if(g._helper.isNumberVecN(a,
-2))return a;if(g._helper.isNumberVecN(a,3))return g.turnIntoCSList([l.div(a.value[0],a.value[2]),l.div(a.value[1],a.value[2])])}if("x"===h&&g.isNumberVector(a)){c=a.value.length;if(0<c&&3!==c)return a.value[0];if(3===c)return"Point"===a.usage?l.div(a.value[0],a.value[2]):a.value[0]}if("y"===h&&g.isNumberVector(a)){c=a.value.length;if(1<c&&3!==c)return a.value[1];if(3===c)return"Point"===a.usage?l.div(a.value[1],a.value[2]):a.value[1]}return"z"===h&&g.isNumberVector(a)&&(c=a.value.length,2<c)?a.value[2]:
-k};g.nil=g.turnIntoCSList([]);g.ofGeos=function(a){return g.turnIntoCSList(a.map(function(a){return{ctype:"geo",value:a}}))};var Ka={key:function(a){if("string"===a.ctype)return"s"+a.value.length+":"+a.value+";";if("number"===a.ctype)return"n"+a.value.real+","+a.value.imag+";";if("list"===a.ctype)return"l"+a.value.length+":"+a.value.map(Ka.key).join(",")+";";if("boolean"===a.ctype)return"b"+a.value+";";if("dict"===a.ctype)return a=Object.keys(a.value).sort(),"d"+a.length+":"+a.join(",")+";";"undefined"!==
-a.ctype&&ia.err("Bad dictionary key: "+ba(a));return"undef"},create:function(){return{ctype:"dict",value:{}}},clone:function(a){var h=Ka.create(),c;for(c in a.value)a.value.hasOwnProperty(c)&&(h.value[c]=a.value[c]);return h},put:function(a,h,c){a.value[Ka.key(h)]={key:h,value:c}},get:function(a,h,c){return(a=a.value[Ka.key(h)])?a.value:c},niceprint:function(a){return"{"+Object.keys(a.value).sort().map(function(h){h=a.value[h];return ba(h.key)+":"+ba(h.value)}).join(", ")+"}"}},w={_helper:{},order:{undefined:0,
-"boolean":1,number:2,term:3,atomic:4,variable:5,geo:6,string:7,list:8},string:function(a){return{ctype:"string",value:a}},bool:function(a){return{ctype:"boolean",value:a}},not:function(a){return w.bool(!a.value)},isLessThan:function(a,h){return-1===w.compare(a,h)},isEqual:function(a,h){return 0===w.compare(a,h)},compareResults:function(a,h){return w.compare(a.result,h.result)},compare:function(a,h){if(a.ctype!==h.ctype)return w.order[a.ctype]-w.order[h.ctype];if("number"===a.ctype)return l._helper.compare(a,
-h);if("list"===a.ctype)return g._helper.compare(a,h);if("geo"===a.ctype)return a.value.name===h.value.name?0:a.value.name<h.value.name?-1:1;if("string"===a.ctype)return a.value===h.value?0:a.value<h.value?-1:1;if("boolean"===a.ctype)return a.value===h.value?0:!1===a.value?-1:1},add:function(a,h){return"void"===a.ctype&&"number"===h.ctype||"void"===a.ctype&&"list"===h.ctype?h:"number"===a.ctype&&"number"===h.ctype?l.add(a,h):"string"===a.ctype||"string"===h.ctype?{ctype:"string",value:ba(a)+ba(h)}:
-"list"===a.ctype&&"list"===h.ctype?g.add(a,h):k},sub:function(a,h){return"void"===a.ctype&&"number"===h.ctype?l.neg(h):"void"===a.ctype&&"list"===h.ctype?g.neg(h):"number"===a.ctype&&"number"===h.ctype?l.sub(a,h):"list"===a.ctype&&"list"===h.ctype?g.sub(a,h):k},mult:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.mult(a,h):"number"===a.ctype&&"list"===h.ctype?g.scalmult(a,h):"list"===a.ctype&&"number"===h.ctype?g.scalmult(h,a):"list"===a.ctype&&"list"===h.ctype?g.mult(a,h):k},div:function(a,
-h){return"number"===a.ctype&&"number"===h.ctype?l.div(a,h):"list"===a.ctype&&"number"===h.ctype?g.scaldiv(h,a):k},max:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.max(a,h):"list"===a.ctype&&"list"===h.ctype?g.max(a,h):k},min:function(a,h){return"number"===a.ctype&&"number"===h.ctype?l.min(a,h):"list"===a.ctype&&"list"===h.ctype?g.min(a,h):k},wrap:function(a){if("number"===typeof a)return l.real(a);if("object"===typeof a&&void 0!==a.length){for(var h=[],c=0;c<a.length;c++)h[c]=w.wrap(a[c]);
-return g.turnIntoCSList(h)}return"string"===typeof a?{ctype:"string",value:a}:"boolean"===typeof a?{ctype:"boolean",value:a}:k},unwrap:function(a){if("object"!==typeof a||null===a)return a;if(Array.isArray(a))return a.map(w.unwrap);switch(a.ctype){case "string":case "boolean":return a.value;case "number":return 0===a.value.imag?a.value.real:{r:a.value.real,i:a.value.imag};case "list":return a.value.map(w.unwrap);default:return null}},withUsage:function(a,h){return{ctype:a.ctype,value:a.value,usage:h}},
-wrapJSON:function(a){switch(typeof a){case "number":return l.real(a);case "string":return w.string(a);case "boolean":return w.bool(a);case "object":if(null===a)return k;if(Array.isArray(a))return g.turnIntoCSList(a.map(w.wrapJSON));var h=Ka.create(),c;for(c in a)Ka.put(h,w.string(c),w.wrapJSON(a[c]));return h;default:return console.log("Failed to convert "+typeof a+" to CindyJS data type"),k}},identity:function(a){return a}},Za={},R={};R[":"]=C(":");R["\u00b0"]=function(a,h){var c=B(a[0]);return"number"===
-c.ctype&&"void"===a[1].ctype?w.withUsage(l.realmult(Math.PI/180,c),"Angle"):k};R._=oc;R["^"]=Mc;R["\u221a"]=function(a,h){return"void"===a[0].ctype?t.sqrt$1([a[1]],h):k};R["*"]=Kc;R["\u00d7"]=Sc;R["/"]=Lc;R["+"]=Jc;R["-"]=$b;R["!"]=function(a,h){var c=B(a[1]);return"void"===a[0].ctype&&"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};R["=="]=pb;R["~="]=Yb;R["~<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?
-{ctype:"boolean",value:c.value.real-b.value.real<=-l.eps}:k};R["~>"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>=l.eps}:k};R["=:="]=C("=:=");R[">="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>=b.value.real}:"string"===c.ctype&&"string"===
-b.ctype?{ctype:"boolean",value:c.value>=b.value}:k};R["<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<=b.value}:k};R["~>="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-
-b.value.real>-l.eps}:k};R["~<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real<l.eps}:k};R[">"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>b.value}:
-k};R["<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<b.value}:k};R["<>"]=Gc;R["\u2208"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?g.contains(b,c):k};R["\u2209"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?w.not(g.contains(b,c)):k};R["&"]=Hc;R["%"]=Ic;
-R["!="]=Gc;R["~!="]=function(a,h){return w.not(Yb(a,h))};R[".."]=function(a,h){var c=A(a[0]),b=A(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.sequence(c,b):k};R["++"]=Tc;R["--"]=Vc;R["~~"]=Uc;R[":>"]=Wc;R["<:"]=Xc;R["="]=bb;R[":="]=function(a,h,c){h="undefined"===a[1].ctype;if("undefined"===a[0].ctype||h)return k;if("function"===a[0].ctype){h=a[0].oper;var b=a[0].args,d=a[1],g=1;if(Za.hasOwnProperty(h)){g=Za[h];if(g.definer===c)return k;g=g.generation+1}Za[h]={oper:h,body:d,arglist:b,definer:c,
-generation:g}}"variable"===a[0].ctype&&J.setvar(a[0].name,a[1]);return k};R[":=_"]=function(a,h){if("void"!==a[1].ctype)return k;"function"===a[0].ctype&&delete Za[a[0].oper];return k};R["::="]=C("::=");R[";"]=function(a,h){var c="void"===a[0].ctype,b="void"===a[1].ctype;if(c&&b)return k;if(!c&&b)return A(a[0]);c||b||A(a[0]);return b?k:A(a[1])};var t={},D={evaluate:function(a,h,c){if(Za.hasOwnProperty(a)){a=Za[a];if(void 0===a)h=k;else{var b=[];for(c=0;c<a.arglist.length;c++)b[c]=A(h[c]);for(c=0;c<
-a.arglist.length;c++)J.newvar(a.arglist[c].name),J.setvar(a.arglist[c].name,b[c]);J.pushVstack("*");h=A(a.body);J.cleanVstack();for(c=0;c<a.arglist.length;c++)J.removevar(a.arglist[c].name)}return h}if(b=t[a])return b(h,c);var d=a.lastIndexOf("$");if(-1!==d&&(d=a.substr(0,d),b=t[d]))return b(h,c);ia.err("Called undefined function "+d+" (as "+a+")");return k},equals:function(a,h){return"number"===a.ctype&&"number"===h.ctype?{ctype:"boolean",value:a.value.real===h.value.real&&a.value.imag===h.value.imag}:
-"string"===a.ctype&&"string"===h.ctype||"boolean"===a.ctype&&"boolean"===h.ctype?{ctype:"boolean",value:a.value===h.value}:"list"===a.ctype&&"list"===h.ctype?g.equals(a,h):"geo"===a.ctype&&"geo"===h.ctype?{ctype:"boolean",value:a.value===h.value}:{ctype:"boolean",value:!1}}},J={};J.vars=function(){var a={pi:l.real(Math.PI),"\u03c0":l.real(Math.PI),i:l.complex(0,1),"true":w.bool(!0),"false":w.bool(!1),"#":k,nil:g.turnIntoCSList([]),newline:w.string("\n"),tab:w.string("\t")},h=[],c;for(c in a)h[c]=
-[a[c]];return h}();J.isVariable=function(a){return this.vars.hasOwnProperty(a)};J.create=function(a){if(this.vars.hasOwnProperty(a))return this.vars[a];var h=[null];return this.vars[a]=h};J.newvar=function(a){a=this.vars[a];a.push(k);return a};J.removevar=function(a){var h=this.vars[a];0===h.length&&console.error("Removing non-existing "+a);h.pop();0===h.length&&console.warn("Removing last "+a)};J.setvar=function(a,h){var c=this.vars[a];0===c.length&&console.error("Setting non-existing variable "+
-a);void 0===h&&(console.error("Setting variable "+a+" to undefined value"),h=k);if("undefined"===h.ctype)c[c.length-1]=h;else{var b=h;null===b&&(b=k);c[c.length-1]=b}};J.undefinedWarning={};J.getvar=function(a){var h=this.vars[a];0===h.length&&console.error("Getting non-existing variable "+a);h=h[h.length-1];if(null===h){if(u.csnames.hasOwnProperty(a))return{ctype:"geo",value:u.csnames[a]};console&&console.log&&void 0===this.undefinedWarning[a]&&(this.undefinedWarning[a]=!0,console.log("Warning: Accessing undefined variable: "+
-a));return k}return h};J.dump=function(a){var h=this.vars[a];console.log("*** Dump "+a);for(a=0;a<h.length;a++)console.log(a+":> "+ba(h[a]))};J.vstack=[];J.pushVstack=function(a){this.vstack.push(a)};J.popVstack=function(){this.vstack.pop()};J.cleanVstack=function(){for(var a=this.vstack;0<a.length&&"*"!==a[a.length-1];)this.removevar(a[a.length-1]),a.pop();0<a.length&&a.pop()};var ya={generalFields:{color:"color",colorhsb:"",size:"size",alpha:"alpha",fillcolor:"fillcolor",fillalpha:"fillalpha",isshowing:"isshowing",
-visible:"visible",name:"name",caption:"caption",trace:"",tracelength:"",selected:"",labeled:"labeled",labelled:"labeled"},getGeoField:function(a,h){return"undefined"!==typeof u.csnames[a]?ya.getField(u.csnames[a],h):k},setGeoField:function(a,h,c){return"undefined"!==typeof u.csnames[a]?ya.setField(u.csnames[a],h,c):k},getField:function(a,h){var c;if("P"===a.kind){if("xy"===h)return c=g.dehom(a.homog),w.withUsage(c,"Point");if("homog"===h)return w.withUsage(a.homog,"Point");if("x"===h)return l.div(a.homog.value[0],
-a.homog.value[2]);if("y"===h)return l.div(a.homog.value[1],a.homog.value[2])}if("L"===a.kind||"S"===a.kind){if("homog"===h)return w.withUsage(a.homog,"Line");if("angle"===h)return c=g.eucangle(g.ey,a.homog),w.withUsage(c,"Angle");if("slope"===h)return l.neg(l.div(a.homog.value[0],a.homog.value[1]))}if("Tr"===a.kind&&"matrix"===h)return a.matrix;if("C"===a.kind){if("radius"===h){var b=a.matrix;c=b.value[0].value[0];var d=b.value[0].value[2],e=b.value[1].value[2],b=b.value[2].value[2];l.mult(c,c);d=
-l.div(d,c);e=l.div(e,c);c=l.div(b,c);return c=l.sqrt(l.sub(l.add(l.mult(d,d),l.mult(e,e)),c))}if("size"===h)return a.size;if("matrix"===h)return a.matrix;if("center"===h)return c=m._helper.CenterOfConic(a.matrix),c=g.dehom(c),w.withUsage(c,"Point");if("dualMatrix"===h)return g.normalizeMax(g.adjoint3(a.matrix))}if("Text"===a.kind){if("pressed"===h)return a.checkbox?w.bool(a.checkbox.checked):w.bool(!1);if("xy"===h)return c=g.dehom(a.homog),w.withUsage(c,"Point");if("homog"===h)return w.withUsage(a.homog,
-"Point");if("x"===h)return l.div(a.homog.value[0],a.homog.value[2]);if("y"===h)return l.div(a.homog.value[1],a.homog.value[2])}if("trace"===h)return w.bool(!!a.drawtrace);if(ya.generalFields[h])return(c=a[ya.generalFields[h]])&&c.ctype?c:"object"!==typeof c?w.wrap(c):k;if(a.behavior){if("mass"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.mass);if("radius"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.radius);if("charge"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.charge);
-if("friction"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.friction);if("vx"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.vx);if("vy"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.vy);if("v"===h&&"Mass"===a.behavior.type)return g.realVector([a.behavior.vx,a.behavior.vy]);if("fx"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.fx);if("fy"===h&&"Mass"===a.behavior.type)return l.real(a.behavior.fy);if("f"===h&&"Mass"===a.behavior.type)return g.realVector([a.behavior.fx,
-a.behavior.fy])}c=m[a.type]["get_"+h];return"function"===typeof c?c(a):k},setField:function(a,h,c){"color"===h&&g._helper.isNumberVecN(c,3)&&(a.color=c);"size"===h&&"number"===c.ctype&&(a.size=c);"alpha"===h&&"number"===c.ctype&&(a.alpha=c);"fillcolor"===h&&g._helper.isNumberVecN(c,3)&&(a.fillcolor=c);"fillalpha"===h&&"number"===c.ctype&&(a.fillalpha=c);"visible"===h&&"boolean"===c.ctype&&(a.visible=c.value);"pinned"===h&&"boolean"===c.ctype&&(a.pinned=c.value);"labeled"!==h&&"labelled"!==h||"boolean"!==
-c.ctype||(a.labeled=c.value);"printlabel"===h&&(a.printname=ba(c));"trace"===h&&"boolean"===c.ctype&&(c.value&&!a.drawtrace?(a.drawtrace=!0,qd(a)):a.drawtrace=c.value);"P"===a.kind&&a.movable&&("xy"===h&&g._helper.isNumberVecN(c,2)&&Ia(a,g.turnIntoCSList([c.value[0],c.value[1],l.real(1)]),"homog"),"xy"===h&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog"),"x"===h&&"number"===c.ctype&&Ia(a,g.turnIntoCSList([l.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]),"homog"),"y"===h&&"number"===c.ctype&&
-Ia(a,g.turnIntoCSList([a.homog.value[0],l.mult(c,a.homog.value[2]),a.homog.value[2]]),"homog"),"homog"===h&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog"));"homog"===h&&"L"===a.kind&&a.movable&&g._helper.isNumberVecN(c,3)&&Ia(a,c,"homog");"Text"===a.kind&&("pressed"===h&&"boolean"===c.ctype&&a.checkbox&&(a.checkbox.checked=c.value),a.movable&&("xy"===h?g._helper.isNumberVecN(c,2)?a.homog=g.turnIntoCSList([c.value[0],c.value[1],l.real(1)]):g._helper.isNumberVecN(c,3)&&(a.homog=c):"homog"===h&&g._helper.isNumberVecN(c,
-3)?a.homog=c:"x"===h&&"number"===c.ctype?a.homog=g.turnIntoCSList([l.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]):"y"===h&&"number"===c.ctype&&(a.homog=g.turnIntoCSList([a.homog.value[0],l.mult(c,a.homog.value[2]),a.homog.value[2]]))));a.behavior&&("mass"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"mass"===h&&"Sun"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"friction"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&
-(a.behavior.friction=c.value.real),"charge"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.charge=c.value.real),"radius"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.radius=c.value.real),"vx"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vx=c.value.real),"vy"===h&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vy=c.value.real),"v"===h&&"Mass"===a.behavior.type&&g._helper.isNumberVecN(c,2)&&(a.behavior.vx=c.value[0].value.real,a.behavior.vy=
-c.value[1].value.real));h=m[a.type]["set_"+h];if("function"===typeof h)return h(a,c)}};t.version$0=function(a,h){var c=["CindyJS"].concat(ne);return g.turnIntoCSList(c.map(w.wrap))};t.clearconsole$0=function(a,h){ia.clear()};t.err$1=function(a,h){var c="",b;"variable"===a[0].ctype?(c=a[0].name,b=J.getvar(a[0].name)):b=a[0];b=c+" ===> "+ba(A(b));ia.err(b);return k};t.errc$1=function(a,h){var c;"variable"===a[0].ctype?(c=A(J.getvar(a[0].name)),console.log(a[0].name+" ===> "+ba(c))):(c=A(a[0]),console.log(" ===> "+
-ba(c)));return k};t.print$1=function(a,h){ia.out(ba(A(a[0])),!0);return k};t.println$1=function(a,h){ia.out(ba(A(a[0])));return k};t.assert$2=function(a,h){var c=A(a[0]);if("boolean"===c.ctype){if(!1===c.value)return t.println$1([a[1]],h)}else ia.err("Condition for assert is not boolean");return k};t.dump$1=function(a,h){console.log(JSON.stringify(a[0]));return k};t.repeat$2=function(a,h){return t.repeat$3([a[0],null,a[1]],h)};t.repeat$3=function(a,h){var c=B(a[0]),b="#";null!==a[1]&&"variable"===
-a[1].ctype&&(b=a[1].name);if("number"!==c.ctype)return k;var c=Math.round(c.value.real),d=1,g=1,e=c+1,f=!1,l=!1,m=!1,n;void 0!==h.start&&(n=A(h.start),"number"===n.ctype&&(f=!0,g=n.value.real));void 0!==h.step&&(n=A(h.step),"number"===n.ctype&&(m=!0,d=n.value.real));void 0!==h.stop&&(n=A(h.stop),"number"===n.ctype&&(l=!0,e=n.value.real));!f||l||m||(e=d*c+g);f||!l||m||(g=-d*(c-1)+e,e+=d);f||l||!m||(e=d*c+g);f&&l&&!m&&(d=(e-g)/(c-1),e+=d);f&&!l&&m&&(e=d*c+g);!f&&l&&m&&(g=-d*(c-1)+e,e+=d);f&&l&&m&&(e+=
-d);(g<=e&&0<d||g>=e&&0>d)&&f&&l&&m&&(c=Math.floor((e-g)/d));J.newvar(b);e=k;for(f=0;f<c;f++)J.setvar(b,{ctype:"number",value:{real:f*d+g,imag:0}}),e=A(a[2]);J.removevar(b);return e};t.while$2=function(a,h){for(var c=a[1],b=a[0],d=A(b),e=k;"list"!==d.ctype&&d.value;)e=A(c),d=A(b);return e};t.apply$2=function(a,h){return t.apply$3([a[0],null,a[1]],h)};t.apply$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);
-for(var e=0;e<c.length;e++)J.setvar(b,c[e]),d[e]=A(a[2]);J.removevar(b);return{ctype:"list",value:d}};t.forall$2=function(a,h){return t.forall$3([a[0],null,a[1]],h)};t.forall$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);c=c.value;J.newvar(b);for(var d,e=0;e<c.length;e++)J.setvar(b,c[e]),d=A(a[2]);J.removevar(b);return d};t.select$2=function(a,h){return t.select$3([a[0],null,a[1]],h)};t.select$3=function(a,h){var c=B(a[0]);
-if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);for(var e=0,g=0;g<c.length;g++){J.setvar(b,c[g]);var f=A(a[2]);"boolean"===f.ctype&&!0===f.value&&(d[e]=c[g],e++)}J.removevar(b);return{ctype:"list",value:d}};t.flatten$1=function(a,h){function c(a,h){return-1===h||"list"!==a.ctype?a:[].concat.apply([],a.value.map(function(a){return c(a,h-1)}))}var b=B(a[0]);if("list"!==b.ctype)return b;var d=h.levels;void 0===d?d=1:(d=A(d),d=
-"number"===d.ctype?d.value.real:"string"===d.ctype&&"all"===d.value?-2:1);return{ctype:"list",value:c(b,d)}};t.createvar$1=function(a,h){"variable"===a[0].ctype&&J.newvar(a[0].name);return k};t.local=function(a,h){for(var c=0;c<a.length;c++)"variable"===a[c].ctype&&J.newvar(a[c].name);return k};t.removevar$1=function(a,h){var c=A(a[0]);"variable"===a[0].ctype&&J.removevar(a[0].name);return c};t.release=function(a,h){if(0===a.length)return k;for(var c=A(a[a.length-1]),b=0;b<a.length;b++)"variable"===
-a[b].ctype&&J.removevar(a[b].name);return c};t.regional=function(a,h){for(var c=0;c<a.length;c++)if("variable"===a[c].ctype){var b=a[c].name;J.newvar(b);J.pushVstack(b)}return k};t.genList=function(a,h){return g.turnIntoCSList(a.map(A))};D.assigntake=function(a,h){var c=a.args[0],b=A(c),d=B(a.args[1]),e=k;if("list"===b.ctype||"string"===b.ctype)d=Math.floor(d.value.real),0>d&&(d=b.value.length+d+1),0<d&&d<=b.value.length&&("list"===b.ctype?(b=b.value.slice(),b[d-1]=A(h),e=g.turnIntoCSList(b)):(b=
-b.value,b=b.substring(0,d-1)+ba(A(h))+b.substring(d,b.length),e=w.string(b)));bb([c,e])};D.assigndot=function(a,h){var c=A(a.obj),b=a.key;"geo"===c.ctype&&b&&ya.setField(c.value,b,B(h));return k};D.assignlist=function(a,h){var c=a.length,b=h.length;b<c&&(c=b);for(b=0;b<c;b++)bb([a[b],h[b]],[])};t.if$2=function(a,h){return t.if$3(a,h)};t.if$3=function(a,h){var c=B(a[0]);if("boolean"===c.ctype){if(!0===c.value)return A(a[1]);if(3===a.length)return A(a[2])}else ia.err("Condition for if is not boolean");
-return k};t.and$2=Hc;t.or$2=Ic;t.xor$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"boolean"===c.ctype&&"boolean"===b.ctype?{ctype:"boolean",value:c.value!==b.value}:k};t.not$1=function(a,h){var c=B(a[0]);return"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};D.genericListMathGen=function(a,h,c){t[a+"$1"]=function(a,b){var d=A(a[0]);if("list"!==d.ctype)return k;d=d.value;if(0===d.length)return c;for(var r=d[0],e=1;e<d.length;e++)r=h(r,d[e]);return r};var b=a+"$3";t[a+"$2"]=function(a,c){return t[b]([a[0],
-null,a[1]])};t[b]=function(a,b){var d=B(a[0]);if("list"!==d.ctype)return k;d=d.value;if(0===d.length)return c;var r="#";null!==a[1]&&"variable"===a[1].ctype&&(r=a[1].name);J.newvar(r);J.setvar(r,d[0]);for(var e=A(a[2]),g=1;g<d.length;g++){J.setvar(r,d[g]);var f=A(a[2]),e=h(e,f)}J.removevar(r);return e}};D.genericListMathGen("product",w.mult,l.real(1));D.genericListMathGen("sum",w.add,l.real(0));D.genericListMathGen("max",w.max,k);D.genericListMathGen("min",w.min,k);t.max$2=function(a,h){var c=B(a[0]);
-if("list"===c.ctype)return t.max$3([c,null,a[1]]);var b=B(a[1]);return t.max$1([g.turnIntoCSList([c,b])])};t.min$2=function(a,h){var c=B(a[0]);if("list"===c.ctype)return t.min$3([c,null,a[1]]);var b=B(a[1]);return t.min$1([g.turnIntoCSList([c,b])])};t.add$2=Jc;t.sub$2=$b;t.mult$2=Kc;t.div$2=Lc;t.mod$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.mod(c,b):k};t.pow$2=Mc;t.exp$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.exp(c):k};t.sin$1=function(a,
-h){var c=B(a[0]);return"number"===c.ctype?l.sin(c):k};t.sqrt$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.sqrt(c):k};D.laguerre=function(a,h,c){if("list"!==a.ctype)return k;var b=a.value.length-1,d;for(d=0;d<=b;d++)if("number"!==a.value[d].ctype)return k;if("number"!==h.ctype)return k;for(var e=[1,.3141,.5926,.5358,.9793,.2385,.6264,.3383,.2795,.0288],g,f,m,n=1;n<=c;n++){f=m=l.zero;g=a.value[b];for(d=b-1;0<=d;d--)m=l.add(f,l.mult(m,h)),f=l.add(g,l.mult(f,h)),g=l.add(a.value[d],l.mult(g,
-h));if(l._helper.isLessThan(l.abs(g),l.real(1E-14)))break;d=l.div(f,g);f=l.mult(d,d);g=l.sub(f,l.div(l.mult(l.real(2),m),g));m=l.sqrt(l.mult(l.real(b-1),l.sub(l.mult(l.real(b),g),f)));g=l.add(d,m);d=l.sub(d,m);l._helper.isLessThan(l.abs(g),l.abs(d))&&(g=d);d=l._helper.isLessThan(l.real(1E-14),l.abs(g))?l.div(l.real(b),g):l.mult(l.add(l.abs(h),l.one),l.complex(Math.cos(n),Math.sin(n)));if(l._helper.isLessThan(l.abs(d),l.real(1E-14)))break;0===n%20&&n<c-19&&(d=l.mult(d,l.real(e[Math.floor(n/20)])));
-h=l.sub(h,d)}return h};D.quadratic_roots=function(a){if("list"!==a.ctype)return k;var h=a.value[2],c=a.value[1];a=a.value[0];if(l._helper.isZero(a))return[l.zero,l.neg(l.div(c,h))];var b=l.sqrt(l.sub(l.mult(c,c),l.mult(l.real(4),l.mult(h,a))));0<=l.re(c)&&(b=l.neg(b));return[l.div(l.sub(b,c),l.mult(l.real(2),h)),l.div(l.mult(l.real(2),a),l.sub(b,c))]};D.roots=function(a){var h=[],c=a,b=a.value.length-1;if(0>=b)return g.turnIntoCSList([]);if(l._helper.isZero(a.value[b]))return h=D.roots(g.turnIntoCSList(a.value.slice(0,
-b))),g.append(h,l.infinity);if(1===b)h[0]=l.neg(l.div(a.value[0],a.value[1]));else if(2===b)h=D.quadratic_roots(a);else{for(var d=0;d<b-2;d++){h[d]=D.laguerre(a,l.zero,200);h[d]=D.laguerre(c,h[d],1);var e=[];e[b-d]=a.value[b-d];for(var f=b-d;0<f;f--)e[f-1]=l.add(a.value[f-1],l.mult(e[f],h[d]));e.shift();a=g.turnIntoCSList(e)}a=D.quadratic_roots(a);h[b-2]=a[0];h[b-1]=a[1]}return g.turnIntoCSList(h)};t.roots$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){for(var b=0;b<c.value.length;b++)if("number"!==
-c.value[b].ctype)return k;c=D.roots(c);return g.sort1(c)}return k};t.autodiff$3=function(a,h){var c="x",b;if("function"===a[0].ctype)b=Za[a[0].oper].body,c=a[0].args[0].name;else if("function"===typeof a[0].impl)b=a[0];else return console.log("could not parse function"),k;var d=B(a[1]),e=B(a[2]);if(1>e.value.real)return console.log("grade cant be < 1"),k;e=l.add(e,l.real(1));return P.autodiff(b,c,d,e)};t.cos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.cos(c):k};t.tan$1=function(a,h){var c=
-B(a[0]);return"number"===c.ctype?l.tan(c):k};t.arccos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arccos(c):k};t.arcsin$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arcsin(c):k};t.arctan$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arctan(c):k};t.arctan2$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.arctan2(c,b):k};t.arctan2$1=function(a,h){var c=B(a[0]);if("list"===c.ctype&&2===c.value.length){if(c=c.value,"number"===c[0].ctype&&
-"number"===c[1].ctype)return t.arctan2$2(c,h)}else if("number"===c.ctype)return l.arctan2(c);return k};t.log$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.log(c):k};D.recursiveGen=function(a){var h=l[a],c=g[a];t[a+"$1"]=function(a,b){var d=B(a[0]);return"number"===d.ctype?h(d):"list"===d.ctype?c(d):k}};D.recursiveGen("im");D.recursiveGen("re");D.recursiveGen("conjugate");D.recursiveGen("round");D.recursiveGen("ceil");D.recursiveGen("floor");D.recursiveGen("abs");t.abs_infix=t.abs$1;t.random$0=
-function(a,h){return l.real(l._helper.rand())};t.random$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.complex(c.value.real*l._helper.rand(),c.value.imag*l._helper.rand()):k};t.seedrandom$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&l._helper.seedrandom(c.value.real);return k};t.randomnormal$0=function(a,h){return l.real(l._helper.randnormal())};t.randominteger$1=function(a,h){var c=B(a[0]);if("number"===c.ctype){var b=c.value.real|0,c=c.value.imag|0,b=b*l._helper.rand()|0,c=c*l._helper.rand()|
-0;return l.complex(b,c)}return k};t.randomint$1=t.randominteger$1;t.randombool$0=function(a,h){return.5<l._helper.rand()?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isreal$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isinteger$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&c.value.real===Math.floor(c.value.real)?{ctype:"boolean",value:!0}:{ctype:"boolean",
-value:!1}};t.iseven$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&c.value.real/2===Math.floor(c.value.real/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isodd$1=function(a,h){var c=A(a[0]);return"number"===c.ctype&&l._helper.isAlmostReal(c)&&(c.value.real-1)/2===Math.floor((c.value.real-1)/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscomplex$1=function(a,h){return"number"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",
-value:!1}};t.isstring$1=function(a,h){return"string"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.islist$1=function(a,h){return"list"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismatrix$1=function(a,h){var c=A(a[0]);return-1!==g._helper.colNumb(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscircle$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"C"===c.value.kind&&"Circle"===c.value.matrix.usage?{ctype:"boolean",value:!0}:
-{ctype:"boolean",value:!1}};t.isconic$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"C"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isline$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"L"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ispoint$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&"P"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isgeometric$1=function(a,h){return"geo"===A(a[0]).ctype?{ctype:"boolean",
-value:!0}:{ctype:"boolean",value:!1}};t.isnumbermatrix$1=function(a,h){var c=A(a[0]);return g.isNumberMatrix(c)};t.isnumbervector$1=function(a,h){var c=A(a[0]);return g.isNumberVector(c)};t.issun$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Sun"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismass$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Mass"===c.value.behavior.type?{ctype:"boolean",value:!0}:
-{ctype:"boolean",value:!1}};t.isspring$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Spring"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isbouncer$1=function(a,h){var c=A(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Bouncer"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isundefined$1=function(a,h){return"undefined"===A(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};
-var Hd={ArcBy3:"Arc",CenterOfConic:"Center",ConicBy1p4l:"Conic1P4L",ConicBy4p1l:"Conic4P1L",ConicBy5lines:"Conic5L",ConicBy2Foci1P:"ConicFoci",ConicFromPrincipalDirections:"ConicPrincipleDirs",Free:"FreePoint",PolarOfLine:"PolarLine",PolarOfPoint:"PolarPoint",PointOnSegment:"PointOnLine",Button:"Text",ToggleButton:"Text",TrReflectionL:"TrReflection",TrReflectionP:"TrReflection",TrReflectionC:"TrReflection",TrTranslation:"TrProjection",TrSimilarity:"TrProjection",TrAffine:"TrProjection",TransformP:"Transform",
-TransformL:"Transform",TransformSegment:"Transform",TransformS:"Transform",TransformPolygon:"Transform",TransformArc:"Transform",TransformConic:"Transform",TransformC:"Transform",TrMoebiusP:"Transform",TrMoebiusL:"Transform",TrMoebiusSegment:"Transform",TrMoebiusS:"Transform",TrMoebiusPolygon:"Transform",TrMoebiusArc:"Transform",TrMoebiusCircle:"Transform",TrMoebiusC:"Transform",TrInverseMoebius:"TrInverse",Perp:"Orthogonal",Para:"Parallel",AngleBisector:"AngularBisector",IntersectLC:"IntersectionConicLine",
-IntersectCirCir:"IntersectionCircleCircle",OtherPointOnCircle:"PointOnCircle"};t.algorithm$1=function(a,h){var c=A(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=B(h.compatibility);"string"===d.ctype&&/^cinderella$/i.test(d.value)&&(/^Select/.test(b)&&(c=u.csnames[c.args[0]],b=c.type),Hd.hasOwnProperty(b)?b=Hd[b]:"CircleMr"===b&&(b=c.pinned?"CircleByFixedRadius":"CircleByRadius"));return w.string(b)}return k};t.inputs$1=function(a,h){var c=A(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=
-[];c.args&&(d=c.args.map(function(a){return{ctype:"geo",value:u.csnames[a]}}));if(/^Select/.test(b)||m[b].isMovable)switch(c.kind){case "P":case "L":d.push(c.homog);break;case "C":d.push(c.matrix)}return g.turnIntoCSList(d)}return k};t.moveto$2=function(a,h){var c=A(a[0]),b=B(a[1]);"geo"===c.ctype&&(c=c.value,g._helper.isNumberVecN(b,2)?ya.setField(c,"xy",b):g._helper.isNumberVecN(b,3)&&ya.setField(c,"homog",b));return k};t.continuefromhere$0=function(a,h){ub();return k};t.matrixrowcolumn$1=function(a,
-h){var c=A(a[0]);return-1!==g._helper.colNumb(c)?g.realVector([c.value.length,c.value[0].value.length]):k};t.rowmatrix$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.turnIntoCSList([c]):k};t.columnmatrix$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.turnIntoCSList(c.value.map(function(a){return g.turnIntoCSList([a])})):k};t.submatrix$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);if("list"===c.ctype&&"number"===b.ctype&&"number"===d.ctype){var e=Math.round(b.value.real),b=Math.round(d.value.real),
-c=c.value.slice();0<b&&b<=c.length&&c.splice(b-1,1);var f=!0,c=c.map(function(a){if("list"!==a.ctype)f=!1;else return a=a.value.slice(),0<e&&e<=a.length&&a.splice(e-1,1),g.turnIntoCSList(a)});return f?g.turnIntoCSList(c):k}return k};t.complex$1=function(a,h){var c,b,d;d=B(a[0]);if("list"===d.ctype&&g.isNumberVector(d)){if(2===d.value.length)return c=d.value[0],b=d.value[1],l.complex(c.value.real-b.value.imag,b.value.real+c.value.imag);if(3===d.value.length)return c=d.value[0],b=d.value[1],d=d.value[2],
-c=l.div(c,d),b=l.div(b,d),l.complex(c.value.real-b.value.imag,b.value.real+c.value.imag)}return k};t.gauss$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.realVector([c.value.real,c.value.imag]):k};t.cross$2=Sc;t.crossratio$4=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]),e=A(a[3]),f=M(c),m=M(b),n=M(d),p=M(e);return f!==k&&m!==k&&n!==k&&p!==k?g.crossratio3(f,m,n,p,g.ii):"number"===c.ctype&&"number"===b.ctype&&"number"===d.ctype&&"number"===e.ctype?l.div(l.mult(l.sub(c,d),l.sub(b,e)),l.mult(l.sub(c,
-e),l.sub(b,d))):k};t.para$2=function(a,h){var c=B(a[0]),b=B(a[1]),d=M(c),e=M(b);if(c!==k&&b!==k){var b=b.usage,f=d,l=e;if("Line"===c.usage||"Point"===b)f=e,l=d;c=g.cross(g.cross(g.linfty,l),f);return w.withUsage(c,"Line")}return k};t.perp$2=function(a,h){var c=B(a[0]),b=B(a[1]),d=M(c),e=M(b);if(c!==k&&b!==k){var f=b.usage||e.usage,b=d,m=e;if("Line"===(c.usage||d.usage)||"Point"===f)b=e,m=d;c=g.turnIntoCSList([m.value[0],m.value[1],l.zero]);c=g.cross(c,b);return w.withUsage(c,"Line")}return k};t.perp$1=
-function(a,h){var c=B(a[0]);return g._helper.isNumberVecN(c,2)?g.turnIntoCSList([l.neg(c.value[1]),c.value[0]]):k};t.parallel$2=t.para$2;t.perpendicular$2=t.perp$2;t.perpendicular$1=t.perp$1;t.meet$2=function(a,h){var c=M(a[0]),b=M(a[1]);return c!==k&&b!==k?(c=g.cross(c,b),w.withUsage(c,"Point")):k};t.join$2=function(a,h){var c=M(a[0]),b=M(a[1]);return c!==k&&b!==k?(c=g.cross(c,b),w.withUsage(c,"Line")):k};t.dist$2=function(a,h){var c=B(a[0]),b=B(a[1]),c=$b([c,b],[]);return t.abs$1([c],[])};t.dist_infix=
-t.dist$2;t.point$1=function(a,h){var c=A(a[0]);return g._helper.isNumberVecN(c,3)||g._helper.isNumberVecN(c,2)?w.withUsage(c,"Point"):c};t.line$1=function(a,h){var c=A(a[0]);return g._helper.isNumberVecN(c,3)?w.withUsage(c,"Line"):c};t.det$3=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]);if(c!==k&&b!==k&&d!==k)return g.det3(c,b,d)};t.det$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.det(c)}return k};t.eig$1=function(a,h){var c=
-B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c)}return k};t.eigenvalues$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c,!1).value[0]}return k};t.rank$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.rank(c,h.precision)}return k};t.kernel$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);
-if(-1!==b&&b===c.value.length)return c=g.nullSpace(c,h.precision),g.transpose(c)}return k};t.eigenvectors$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.eig(c).value[1]}return k};t.area$3=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]);if(c!==k&&b!==k&&d!==k){var e=c.value[2],f=b.value[2],m=d.value[2];if(!l._helper.isAlmostZero(e)&&!l._helper.isAlmostZero(f)&&!l._helper.isAlmostZero(m))return c=g.scaldiv(e,c),b=g.scaldiv(f,b),d=
-g.scaldiv(m,d),c=g.det3(c,b,d),l.realmult(.5,c)}return k};t.inverse$1=function(a,h){var c=B(a[0]);if("list"===c.ctype){var b=g._helper.colNumb(c);if(-1!==b&&b===c.value.length)return g.inverse(c)}return k};t.linearsolve$2=function(a,h){var c=B(a[0]),b=B(a[1]);if("list"===c.ctype){var d=g._helper.colNumb(c);if(-1!==d&&d===c.value.length&&g._helper.isNumberVecN(b,d))return g.linearsolve(c,b)}return k};var Ud=[[[]],[[0]],[[0,1],[1,0]],[[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]],[[0,1,2,3],[0,1,
-3,2],[0,2,1,3],[0,2,3,1],[0,3,1,2],[0,3,2,1],[1,0,2,3],[1,0,3,2],[1,2,0,3],[1,2,3,0],[1,3,0,2],[1,3,2,0],[2,0,1,3],[2,0,3,1],[2,1,0,3],[2,1,3,0],[2,3,0,1],[2,3,1,0],[3,0,1,2],[3,0,2,1],[3,1,0,2],[3,1,2,0],[3,2,0,1],[3,2,1,0]]];t.mincostmatching$1=function(a,h){var c=A(a[0]);if(g.isNumberMatrix(c).value){var b=c.value.length,d=g._helper.colNumb(c),e=b<d?d:b,f,m,n=Array(e);for(f=0;f<e;++f)for(n[f]=Array(e),m=0;m<e;++m)n[f][m]=f<b&&m<d?c.value[f].value[m].value.real:0;c=nc(n);e=Array(b);for(f=0;f<b;++f)m=
-c[f],e[f]=m<d?l.real(m+1):l.real(0);return g.turnIntoCSList(e)}return k};t.take$2=oc;t.length$1=function(a,h){var c=A(a[0]);return"list"===c.ctype||"string"===c.ctype?l.real(c.value.length):k};t.pairs$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.pairs(c):k};t.triples$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.triples(c):k};t.cycle$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.cycle(c):k};t.consecutive$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.consecutive(c):
-k};t.reverse$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.reverse(c):k};t.directproduct$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===c.ctype&&"list"===b.ctype?g.directproduct(c,b):k};t.concat$2=Tc;t.common$2=Uc;t.remove$2=Vc;t.append$2=Wc;t.prepend$2=Xc;t.contains$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===c.ctype?g.contains(c,b):k};t.sort$2=function(a,h){return t.sort$3([a[0],null,a[1]],h)};t.sort$3=function(a,h){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";
-null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);var e;for(e=0;e<c.length;e++)J.setvar(b,c[e]),d[e]={val:c[e],result:A(a[2])};J.removevar(b);d.sort(w.compareResults);b=[];for(e=0;e<c.length;e++)b[e]=d[e].val;return{ctype:"list",value:b}};t.sort$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.sort1(c):k};t.set$1=function(a,h){var c=A(a[0]);return"list"===c.ctype?g.set(c):k};t.combinations$2=function(a,h){function c(a,h){a===f?n.push(g.turnIntoCSList(m.slice())):
-h<e&&(m[a]=b.value[h],c(a+1,h+1),c(a,h+1))}var b=A(a[0]),d=A(a[1]),e,f,m,n;if("number"===d.ctype){f=d.value.real|0;if("number"===b.ctype){e=b.value.real|0;e-f<f&&(f=e-f);if(0>f)return l.real(0);if(0===f)return l.real(1);if(1===f)return b;for(var p=d=1,q=1;q<=f;++q)var t=e-f+q|0,v=q|0,u=pc(t,v)|0,t=t/u|0,v=v/u|0,u=pc(d,v)|0,d=d/u|0,v=v/u|0,u=pc(t,p)|0,t=t/u|0,p=p/u|0,d=d*t|0,p=p*v|0;return l.real(d/p)}if("list"===b.ctype){e=b.value.length;if(0>f||f>e)return g.turnIntoCSList([]);if(0===f)return g.turnIntoCSList([g.turnIntoCSList([])]);
-if(f===e)return g.turnIntoCSList([b]);n=[];m=Array(f);c(0,0);return g.turnIntoCSList(n)}}return k};t.zeromatrix$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.zeromatrix(c,b):k};t.zerovector$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.zerovector(c):k};t.transpose$1=function(a,h){var c=B(a[0]);return"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.transpose(c):k};t.row$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&
--1!==g._helper.colNumb(c)?g.row(c,b):k};t.column$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.column(c,b):k};t.dict$0=function(a,h){var c=Ka.create(),b;for(b in h)h.hasOwnProperty(b)&&Ka.put(c,w.string(b),A(h[b]));return c};t.put$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"dict"===c.ctype?(c=Ka.clone(c),Ka.put(c,b,d),c):k};t.get$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"dict"===c.ctype?Ka.get(c,b,k):k};t.red$1=function(a,
-h){var c=A(a[0]);return"number"===c.ctype?g.realVector([Math.min(1,Math.max(0,c.value.real)),0,0]):k};t.green$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,Math.min(1,Math.max(0,c.value.real)),0]):k};t.blue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,0,Math.min(1,Math.max(0,c.value.real))]):k};t.gray$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=Math.min(1,Math.max(0,c.value.real)),g.realVector([c,c,c])):k};t.grey$1=t.gray$1;D.HSVtoRGB=
-function(a,h,c){var b,d,e,f,k,l;a&&void 0===h&&void 0===c&&(h=a.s,c=a.v,a=a.h);f=Math.floor(6*a);k=6*a-f;a=c*(1-h);l=c*(1-k*h);h=c*(1-(1-k)*h);switch(f%6){case 0:b=c;d=h;e=a;break;case 1:b=l;d=c;e=a;break;case 2:b=a;d=c;e=h;break;case 3:b=a;d=l;e=c;break;case 4:b=h;d=a;e=c;break;case 5:b=c,d=a,e=l}return g.realVector([b,d,e])};t.hue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=c.value.real,c-=Math.floor(c),D.HSVtoRGB(c,1,1)):k};D.shapeconvert=function(a){var h,c;if("circle"===a.type){h=
-a.value.value[0];h=w.div(h,h.value[2]);var b=h.value[0].value.real,d=h.value[1].value.real;a=a.value.value[1].value.real;c=Array(125);var e=2*Math.PI/125;for(h=0;125>h;h++)c[h]={X:b+Math.cos(h*e)*a,Y:d+Math.sin(h*e)*a};return[c]}if("polygon"===a.type){b=[];for(h=0;h<a.value.length;h++){d=a.value[h];c=[];for(e=0;e<d.length;e++)c[e]={X:d[e].X,Y:d[e].Y};b[h]=c}return b}};D.shapeop=function(a,h,c){a=D.shapeconvert(a);var b=D.shapeconvert(h);ClipperLib.JS.ScaleUpPaths(a,1E3);ClipperLib.JS.ScaleUpPaths(b,
-1E3);h=new ClipperLib.Clipper;h.AddPaths(a,ClipperLib.PolyType.ptSubject,!0);h.AddPaths(b,ClipperLib.PolyType.ptClip,!0);var b=a=ClipperLib.PolyFillType.pftNonZero,d=new ClipperLib.Paths;h.Execute(c,d,a,b);ClipperLib.JS.ScaleDownPaths(d,1E3);return{ctype:"shape",type:"polygon",value:d}};D.shapecommon=function(a,h){return D.shapeop(a,h,ClipperLib.ClipType.ctIntersection)};D.shaperemove=function(a,h){return D.shapeop(a,h,ClipperLib.ClipType.ctDifference)};D.shapeconcat=function(a,h){return D.shapeop(a,
-h,ClipperLib.ClipType.ctUnion)};t.key$0=function(a,h){return{ctype:"string",value:Qc}};t.keycode$0=function(a,h){return l.real(Rc)};t.mouse$0=function(a,h){return g.realVector([ta[0],ta[1]])};t.mover$0=function(a,h){if(fa&&fa.mover)return{ctype:"geo",value:fa.mover};console.log("Not moving anything at the moment");return k};t.translate$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c)&&2===c.value.length&&z.translate(c.value[0].value.real,c.value[1].value.real);return k};t.rotate$1=
-function(a,h){var c=B(a[0]);"number"===c.ctype&&z.rotate(c.value.real);return k};t.scale$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.scale(c.value.real);return k};t.greset$0=function(a,h){var c=$a.stack.length;z.greset();for(var b=0;b<c;b++)y.restore();return k};t.gsave$0=function(a,h){z.gsave();y.save();return k};t.grestore$0=function(a,h){z.grestore();y.restore();return k};t.color$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setcolor(c);return k};t.linecolor$1=
-function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setlinecolor(c);return k};t.pointcolor$1=function(a,h){var c=B(a[0]);"list"===c.ctype&&g.isNumberVector(c).value&&z.setpointcolor(c);return k};t.alpha$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setalpha(c);return k};t.pointsize$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setpointsize(c);return k};t.linesize$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&z.setlinesize(c);return k};t.textsize$1=function(a,
-h){var c=B(a[0]);"number"===c.ctype&&z.settextsize(c);return k};t.playanimation$0=function(a,h){I();return k};t.pauseanimation$0=function(a,h){Ca();return k};t.stopanimation$0=function(a,h){Da();return k};t.text$1=function(a,h){var c=B(a[0]);return w.string(ba(c))};t.replace$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);if("string"===c.ctype&&"string"===b.ctype&&"string"===d.ctype)return c=c.value,b=b.value.replace(/[^A-Za-z0-9]/g,"\\$&"),d=d.value.replace(/\$/g,"$$$$"),c=c.replace(new RegExp(b,
-"g"),d),{ctype:"string",value:c}};t.replace$2=function(a,h){function c(a,c,h){var e="";d=b=-1;for(var g=0;g<c.length;g++){var f=c[g][0],k=a.indexOf(f,h);-1!==k&&(-1===b?(e=f,b=k,d=g):k<b&&(e=f,b=k,d=g))}return e}var b,d,e,g=A(a[0]);e=A(a[1]);if("string"===g.ctype&&"list"===e.ctype){for(var g=g.value,f=[],l=0;l<e.value.length;l++){var m=e.value[l];"list"===m.ctype&&2===m.value.length&&"string"===m.value[0].ctype&&"string"===m.value[1].ctype&&(f[f.length]=[m.value[0].value,m.value[1].value])}b=-1;for(e=
-c(g,f,0);-1!==b;)g=g.substring(0,b)+f[d][1]+g.substring(b+e.length,g.length),e=b+f[d][1].length,e=c(g,f,e);return{ctype:"string",value:g}}return k};t.substring$3=function(a,h){var c=A(a[0]),b=B(a[1]),d=B(a[2]);return"string"===c.ctype&&"number"===b.ctype&&"number"===d.ctype?{ctype:"string",value:c.value.substring(Math.floor(b.value.real),Math.floor(d.value.real))}:k};t.tokenize$2=function(a,h){var c=A(a[0]),b=A(a[1]);if("string"===c.ctype&&"string"===b.ctype)return t.tokenize$2([c,g.turnIntoCSList([b])],
-h);if("string"===c.ctype&&"list"===b.ctype){c=c.value;if(0===b.value.length){b=!0;if(void 0!==h.autoconvert){var d=A(h.autoconvert);"boolean"===d.ctype&&(b=d.value)}return b&&""!==c&&(b=Number(c),!isNaN(b))?l.real(b):w.string(c)}var d=b.value[0],e=g.turnIntoCSList(b.value.slice(1)),c=c.split(d.value);return g.turnIntoCSList(c.map(function(a){return t.tokenize$2([w.string(a),e],h)}))}return k};t.indexof$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"string"===c.ctype&&"string"===b.ctype?(c=c.value.indexOf(b.value),
-l.real(c+1)):k};t.indexof$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"string"===c.ctype&&"string"===b.ctype&&"number"===d.ctype?(c=c.value.indexOf(b.value,Math.round(d.value.real)-1),l.real(c+1)):k};t.parse$1=function(a,h){var c=A(a[0]);return"string"===c.ctype?(c=Ra(c.value),A(c)):k};t.unicode$1=function(a,h){var c;c=A(a[0]);var b=16;if(h.base){var d=A(h.base);"number"===d.ctype&&(b=d.value.real)}if("string"===c.ctype)c=parseInt(c.value,b);else if("number"===c.ctype)c=c.value.real;else return k;
-"undefined"!==typeof String.fromCodePoint?c=String.fromCodePoint(c):65535>=c?c=String.fromCharCode(c):(c-=65536,c=String.fromCharCode((c>>10)+55296,(c&1023)+56320));return w.string(c)};t.international$1=function(a,h){return t.international$2([a[0],null],h)};t.international$2=function(a,h){var c=A(a[0]);if("string"!==c.ctype)return k;var b=(p.translations||{})[p.language||"en"]||{};if(!b.hasOwnProperty(c.value))return c;var d=b[c.value];if("string"===typeof d)return w.string(d);if(null===a[1])return c;
-var e=A(a[1]),e="number"===e.ctype?e.value.real:0,b=(b._pluralFormFunction||Vd)(e);return b<d.length?w.string(d[b]):c};t.currentlanguage$0=function(a,h){return w.string(p.language||"en")};D.basismap=function(a,h,c,b){var d=g.turnIntoCSList([a,h,c]),d=g.adjoint3(g.transpose(d));b=w.mult(d,b);d=g.turnIntoCSList([w.mult(b.value[0],a),w.mult(b.value[1],h),w.mult(b.value[2],c)]);return g.transpose(d)};t.map$8=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]),e=M(a[3]),f=M(a[4]),l=M(a[5]),m=M(a[6]),n=M(a[7]);
-return f!==k&&l!==k&&m!==k&&n!==k&&c!==k&&b!==k&&d!==k&&e!==k?(f=D.basismap(f,l,m,n),c=D.basismap(c,b,d,e),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.map$6=function(a,h){var c=M(a[0]),b=M(a[1]),d=M(a[2]),e=g.realVector([0,0,1]),f=g.cross,l=f(f(d,f(e,f(c,b))),f(b,f(e,f(c,d)))),m=M(a[3]),n=M(a[4]),p=M(a[5]),e=f(f(p,f(e,f(m,n))),f(n,f(e,f(m,p))));return m!==k&&n!==k&&p!==k&&e!==k&&c!==k&&b!==k&&d!==k&&l!==k?(m=D.basismap(m,n,p,e),c=D.basismap(c,b,d,l),c=w.mult(m,g.adjoint3(c)),g.normalizeMax(c)):
-k};t.map$4=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=M(a[1]),f=M(a[2]),l=M(a[3]);return f!==k&&l!==k&&d!==k&&e!==k?(f=D.basismap(f,l,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.map$2=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=w.add(g.realVector([1,0,0]),d),f=M(a[1]),l=w.add(g.realVector([1,0,0]),f);return f!==k&&l!==k&&d!==k&&e!==k?(f=D.basismap(f,l,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.pointreflect$1=function(a,h){var c=g.ii,
-b=g.jj,d=M(a[0]),e=w.add(g.realVector([1,0,0]),d),f=w.add(g.realVector([-1,0,0]),d);return f!==k&&d!==k&&e!==k?(f=D.basismap(d,f,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,g.adjoint3(c)),g.normalizeMax(c)):k};t.linereflect$1=function(a,h){var c=g.ii,b=g.jj,d=M(a[0]),e=g.realVector([Math.random(),Math.random(),Math.random()]),f=g.realVector([Math.random(),Math.random(),Math.random()]),e=g.cross(e,d),f=g.cross(f,d);return d!==k&&e!==k?(d=D.basismap(e,f,c,b),c=D.basismap(e,f,b,c),c=w.mult(d,g.adjoint3(c)),
-g.normalizeMax(c)):k};D.extractPointVec=function(a){var h={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return h.x=ya.getField(c,"x"),h.y=ya.getField(c,"y"),h.z=l.real(1),h.ok=!0,h}if("list"!==a.ctype)return h;var b=a.value;if(2===b.length&&(a=b[0],c=b[1],"number"===a.ctype&&"number"===c.ctype))return h.x=a,h.y=c,h.z=l.real(1),h.ok=!0,h;3===b.length&&(a=b[0],c=b[1],b=b[2],"number"===a.ctype&&"number"===c.ctype&&"number"===b.ctype&&(h.x=l.div(a,b),h.y=l.div(c,b),h.z=l.real(1),h.ok=!0));
-return h};t.polygon$1=function(a,h){var c=A(a[0]);if("list"===c.ctype){for(var b=[],d=0;d<c.value.length;d++){var e=D.extractPoint(c.value[d]);if(!e.ok)return k;b[d]={X:e.x,Y:e.y}}return{ctype:"shape",type:"polygon",value:[b]}}return k};t.circle$2=function(a,h){var c=B(a[0]),b=B(a[1]),c=D.extractPointVec(c);if(!c.ok||"number"!==b.ctype)return k;c=g.turnIntoCSList([c.x,c.y,c.z]);return{ctype:"shape",type:"circle",value:g.turnIntoCSList([c,b])}};t.screen$0=function(a,h){var c=z.drawingstate.initialmatrix,
-b=function(a,b){var h=a-c.tx,d=b+c.ty;return{X:(h*c.d-d*c.b)/c.det,Y:-(-h*c.c+d*c.a)/c.det}};return{ctype:"shape",type:"polygon",value:[[b(0,0),b(da,0),b(da,ca),b(0,ca)]]}};t.halfplane$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=M(c),f=M(d);if(c!==k&&d!==k){var m=d.usage,d=e,n=f;if("Line"===c.usage||"Point"===m)d=f,n=e;c=g.turnIntoCSList([n.value[0],n.value[1],l.zero]);c=g.cross(c,d);c=g.cross(n,c);c=w.div(c,c.value[2]);d=w.div(d,d.value[2]);d=g.sub(d,c);n=g.abs(d);d=w.div(d,n);n=c.value[0].value.real;
-c=c.value[1].value.real;e=1E3*d.value[0].value.real;d=1E3*d.value[1].value.real;return{ctype:"shape",type:"polygon",value:[[{X:n+d/2,Y:c-e/2},{X:n+d/2+e,Y:c-e/2+d},{X:n-d/2+e,Y:c+e/2+d},{X:n-d/2,Y:c+e/2}]]}}return k};t.element$1=function(a,b){var c=A(a[0]);return"string"===c.ctype&&u.csnames.hasOwnProperty(c.value)?{ctype:"geo",value:u.csnames[c.value]}:k};D.all$1=function(a,b){var c=A(a[0]);return"geo"===c.ctype&&c.value.incidences?g.ofGeos(c.value.incidences.map(function(a){return u.csnames[a]}).filter(b)):
-g.nil};t.allpoints$0=function(a,b){return g.ofGeos(u.points)};t.allpoints$1=function(a,b){return D.all$1(a,function(a){return"P"===a.kind})};t.allmasses$0=function(a,b){return g.ofGeos(ga)};t.allmasses$1=function(a,b){return D.all$1(a,function(a){return"P"===a.kind&&a.behavior&&"Mass"===a.behavior.type})};t.allsprings$0=function(a,b){return g.ofGeos(zc)};t.allsprings$1=function(a,b){return D.all$1(a,function(a){return"S"===a.kind&&a.behavior&&"Spring"===a.behavior.type})};t.alllines$0=function(a,
-b){return g.ofGeos(u.lines)};t.alllines$1=function(a,b){return D.all$1(a,function(a){return"L"===a.kind||"S"===a.kind})};t.allsegments$0=function(a,b){return g.ofGeos(u.lines.filter(function(a){return"S"===a.kind}))};t.allsegments$1=function(a,b){return D.all$1(a,function(a){return"S"===a.kind})};t.allconics$0=function(a,b){return g.ofGeos(u.conics)};t.allconics$1=function(a,b){return D.all$1(a,function(a){return"C"===a.kind})};t.allcircles$0=function(a,b){return g.ofGeos(u.conics.filter(function(a){return"Circle"===
-a.matrix.usage}))};t.allcircles$1=function(a,b){return D.all$1(a,function(a){return"C"===a.kind&&"Circle"===a.matrix.usage})};t.allelements$0=function(a,b){return g.ofGeos(u.gslp)};t.allelements$1=function(a,b){return D.all$1(a,function(a){return!0})};t.incidences$1=t.allelements$1;t.createpoint$2=function(a,b){var c=A(a[0]),d=M(a[1]);return"string"!==c.ctype?(console.log("Name must be a string"),k):"list"!==d.ctype&&g.isNumberVector(d)?(console.log("Position must be a number vector"),k):Ha({name:c.value,
-type:"Free",labeled:!0,pos:d})};t.create$3=function(a,b){var c=A(a[0]),d=A(a[1]),e=A(a[2]),f,n;if("string"===c.ctype)f=c.value;else{if("list"!==c.ctype)return console.log("Names must be a string or a list of strings"),k;if(1!==c.value.length){f=w.string(c.value.map(function(a){return a.value}).join("__"));f=t.create$3([f,d,e],b);if(f!==k)for(d=w.string(f.kind.replace(/^(.*)s$/,"Select$1")),e=g.turnIntoCSList([w.string(f.name)]),n=0;n<c.value.length;++n)t.create$3([c.value[n],d,e],{index:l.real(n+
-1)});return f}if("string"!==c.value[0].ctype)return console.log("Element of names list must be a string"),k;f=c.value[0].value}if("string"!==d.ctype)return console.log("Type must be a string"),k;if("list"!==e.ctype)return console.log("Arguments must be a list"),k;if(!m.hasOwnProperty(d.value)&&!tc.hasOwnProperty(d.value)&&!rd.hasOwnProperty(d.value))return console.log("Invalid geometric operation: '"+d.value+"'"),k;var c=[],p=null;for(n=0;n<e.value.length;n++){var q=e.value[n];if("string"===q.ctype)c.push(q.value);
-else if("geo"===q.ctype)c.push(q.value.name);else if(p=M(q),p===k)return console.log("Unknown argument type"),k}f={name:f,type:d.value,labeled:!0};p&&(f.pos=p);0<c.length&&(f.args=c);d=B(b.index);"number"===d.ctype&&(f.index=d.value.real|0);return Ha(f)};t.javascript$1=function(a,b){var c=A(a[0]);"string"===c.ctype&&(new Function(c.value)).call(oa);return k};t.use$1=function(a,b){function c(a,c,b){t[a.toLowerCase()+"$"+c]=b}var d=A(a[0]);if("string"===d.ctype){var d=d.value,e;p.plugins&&(e=p.plugins[d]);
-e||(e=wa._pluginRegistry[d]);if(e)return e({instance:oa,config:p,nada:k,evaluate:A,extractPoint:D.extractPoint,evaluateAndVal:B,defineFunction:c,addShutdownHook:jb.push.bind(jb),addAutoCleaningEventListener:H,getVariable:J.getvar.bind(J),getInitialMatrix:function(){return z.drawingstate.initialmatrix},setTextRenderer:function(a,c){Bc=a;c&&(td=c)},getImage:function(a,c){"string"===typeof a&&(a=w.string(a));var b=La(a);if(!b)return null;!c&&b.cdyUpdate&&b.cdyUpdate();return b},getMyfunction:function(a){return Za.hasOwnProperty(a)?
-Za[a]:null}}),{ctype:"boolean",value:!0};console.log("Plugin "+d+" not found");return{ctype:"boolean",value:!1}}return k};t.format$2=function(a,b){function c(a){a=a.toFixed(f);var c;do c=a,a=a.substring(0,a.length-1);while(""!==a&&"-"!==a&&+a===+c);return""+c}function d(a){var b;return"number"===a.ctype?(b=c(a.value.real),a=c(a.value.imag),b="0"===a?b:"-"===a.substring(0,1)?b+" - i*"+a.substring(1):b+" + i*"+a,{ctype:"string",value:b}):"list"===a.ctype?{ctype:"list",value:a.value.map(d)}:{ctype:"string",
-value:ba(a).toString()}}var e=B(a[0]),g=B(a[1]),f;return"number"!==e.ctype&&"list"!==e.ctype||"number"!==g.ctype?k:(f=Math.max(0,Math.min(20,Math.round(g.value.real))),d(e))};Date.now||(Date.now=function(){return(new Date).getTime()});var Id=0;t.timestamp$0=function(a,b){return l.real(Date.now())};t.seconds$0=function(a,b){return l.real((Date.now()-Id)/1E3)};t.resetclock$0=function(a,b){Id=Date.now();return k};t.time$0=function(a,b){var c=new Date;return g.realVector([c.getHours(),c.getMinutes(),
-c.getSeconds(),c.getMilliseconds()])};t.date$0=function(a,b){var c=new Date;return g.realVector([c.getFullYear(),c.getMonth()+1,c.getDate()])};t.simulationtime$0=function(a,b){return l.real(Cb*Fd)};t.settimeout$2=function(a,b){function c(){A(g);e()}var d=A(a[0]),g=a[1];"number"===d.ctype&&"undefined"!==typeof window&&window.setTimeout(c,1E3*d.value.real);return k};D.formatForWebGL=function(a){return a.toFixed(10)};t.generateWebGL$2=function(a,b){var c=D.formatForWebGL,d=a[0],e=A(a[1]);console.log(e);
-if("list"!==e.ctype)return k;for(var g=[],f=0;f<e.value.length;f++)"string"===e.value[f].ctype&&g.push(e.value[f].value);console.log("***********");console.log(g);e=D.plotvars(d);console.log(e);-1===e.indexOf("a")&&-1===e.indexOf("b")&&-1===e.indexOf("c")&&-1===e.indexOf("d")&&-1===e.indexOf("e")&&-1===e.indexOf("f")&&(d=B(d));if("number"===d.ctype)return{ctype:"string",value:"vec2("+c(d.value.real)+","+c(d.value.imag)+")"};if("variable"===d.ctype)return{ctype:"string",value:d.name};if("string"===
-d.ctype||"void"===d.ctype)return d;if(2===d.args.length&&("infix"===d.ctype||"function"===d.ctype)){c=t.compileToWebGL$1([d.args[0]],{});e=t.compileToWebGL$1([d.args[1]],{});if("+"===d.oper||"add"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:e.value}:{ctype:"string",value:"addc("+c.value+","+e.value+")"};if("*"===d.oper||"mult"===d.oper)return{ctype:"string",value:"multc("+c.value+","+e.value+")"};if("/"===d.oper||"div"===d.oper)return{ctype:"string",value:"divc("+c.value+
-","+e.value+")"};if("-"===d.oper||"sub"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+e.value+")"}:{ctype:"string",value:"subc("+c.value+","+e.value+")"};if("^"===d.oper||"pow"===d.oper)return{ctype:"string",value:"powc("+c.value+","+e.value+")"}}if("function"===d.ctype&&1===d.args.length){c=t.compileToWebGL$1([d.args[0]],{});if("sin$1"===d.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===d.oper)return{ctype:"string",value:"cosc("+c.value+")"};
-if("tan$1"===d.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===d.oper)return{ctype:"string",value:"expc("+c.value+")"};if("log$1"===d.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===d.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===d.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===d.oper)return{ctype:"string",value:"arccosc("+c.value+")"};if("sqrt$1"===d.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};
-t.compileToWebGL$1=function(a,b){var c,d;c=D.formatForWebGL;var e=a[0];d=D.plotvars(e);-1===d.indexOf("a")&&-1===d.indexOf("b")&&-1===d.indexOf("c")&&-1===d.indexOf("d")&&-1===d.indexOf("e")&&-1===d.indexOf("f")&&(e=B(e));if("number"===e.ctype)return{ctype:"string",value:"vec2("+c(e.value.real)+","+c(e.value.imag)+")"};if("variable"===e.ctype)return{ctype:"string",value:e.name};if("string"===e.ctype||"void"===e.ctype)return e;if(2===e.args.length&&("infix"===e.ctype||"function"===e.ctype)){c=t.compileToWebGL$1([e.args[0]],
-{});d=t.compileToWebGL$1([e.args[1]],{});if("+"===e.oper||"add"===e.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:d.value}:{ctype:"string",value:"addc("+c.value+","+d.value+")"};if("*"===e.oper||"mult"===e.oper)return{ctype:"string",value:"multc("+c.value+","+d.value+")"};if("/"===e.oper||"div"===e.oper)return{ctype:"string",value:"divc("+c.value+","+d.value+")"};if("-"===e.oper||"sub"===e.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+d.value+
-")"}:{ctype:"string",value:"subc("+c.value+","+d.value+")"};if("^"===e.oper||"pow"===e.oper)return{ctype:"string",value:"powc("+c.value+","+d.value+")"}}if("function"===e.ctype&&1===e.args.length){c=t.compileToWebGL$1([e.args[0]],{});if("sin$1"===e.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===e.oper)return{ctype:"string",value:"cosc("+c.value+")"};if("tan$1"===e.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===e.oper)return{ctype:"string",value:"expc("+c.value+
-")"};if("log$1"===e.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===e.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===e.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===e.oper)return{ctype:"string$1",value:"arccosc("+c.value+")"};if("sqrt$1"===e.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};t.setsimulationspeed$1=function(a,b){var c=B(a[0]);"number"===c.ctype&&sa(c.value.real);return k};t.setsimulationaccuracy$1=
-function(a,b){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(O.env.accuracy=Math.max(1,c.value.real|0));return k};t.setsimulationquality$1=function(a,b){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(c=c.value.real,0===c&&(O.env.errorbound=.01,O.env.lowestdeltat=1E-5,O.env.slowdownfactor=2),1===c&&(O.env.errorbound=.001,O.env.lowestdeltat=1E-7,O.env.slowdownfactor=2),2===c&&(O.env.errorbound=1E-5,O.env.lowestdeltat=1E-10,
-O.env.slowdownfactor=4),3===c&&(O.env.errorbound=1E-6,O.env.lowestdeltat=1E-12,O.env.slowdownfactor=4));return k};var Wb=null,dc=null;t.createtool$3=function(a,b){var c,d="left",e="top",g=null;b.space&&(c=A(b.space),"number"===c.ctype&&(g=c.value.real/2));var f=null;b.toolbar&&(c=A(b.toolbar),"string"===c.ctype&&((f=document.getElementById(c.value))||console.warn("Element #"+c.value+" not found")));if(!f){if(b.reference){var l=A(b.reference);if("string"===l.ctype)switch(l.value){case "UR":d="right";
-break;case "LL":e="bottom";break;case "LR":d="right",e="bottom"}}f=document.createElement("div");f.className="CindyJS-toolbar";ka.parentNode.appendChild(f);l=A(a[1]);c=A(a[2]);"number"===l.ctype&&(f.style[d]=l.value.real+"px");"number"===c.ctype&&(f.style[e]=c.value.real+"px");null!==g&&(f.style.margin=-g+"px")}l=A(a[0]);if("string"===l.ctype)l=[[l.value]];else if("list"===l.ctype)l=l.value.map(function(a){return"string"===a.ctype?[a.value]:"list"===a.ctype?a.value.map(function(a){return"string"===
-a.ctype?a.value:null}):[null]});else return console.log("Name must be a string or a list of strings"),k;if(b.flipped&&(c=A(b.flipped),"boolean"===c.ctype&&c.value)){console.log("Flipping");var m=0;c=l.length;l.forEach(function(a){a.length>m&&(m=a.length)});for(var n=[],p=0;p<m;++p){n[p]=[];for(var q=0;q<c;++q)n[p][q]=l[q][p]||null}l=n}"bottom"===e&&l.reverse();l.forEach(function(a){"right"===d&&a.reverse();var c=document.createElement("div");f.appendChild(c);a.forEach(function(a){function b(){Wb&&
-Wb.classList.remove("CindyJS-active");Wb=d;d.classList.add("CindyJS-active");qc=a;var c=G[qc].actions;dc&&(dc.textContent=c[0].tooltip||"");ua=[];sb=Ua=0}G.hasOwnProperty(a)||(console.log("Tool '"+a+"' not implemented yet."),a=null);if(null===a){var h=document.createElement("span");h.className="CindyJS-spacer";c.appendChild(h)}else{var d=document.createElement("button"),h=document.createElement("img");h.src=wa.getBaseDir()+"images/"+a+".png";d.appendChild(h);d.addEventListener("click",b);Wb||b();
-null!==g&&(d.style.margin=g+"px");c.appendChild(d)}})});return k};t.dropped$0=function(){return kc};t.droppoint$0=function(){return lc};t.parsecsv$1=function(a,b){var c=!0,d=B(b.autoconvert);"boolean"===d.ctype&&(c=d.value);var e=null,d=B(b.delimiter);"string"===d.ctype&&/^[^\"\r\n]$/.test(d.value)&&(e=d.value);d=B(a[0]);if("string"!==d.ctype)return console.log("CSV data is not a string"),k;var d=d.value,f='(?:"((?:[^"]+|"")*)"|([^]*?))(\r\n|(,)|[\r\n]|$)';e&&(e=e.replace(/[^A-Za-z0-9]/g,"\\$&").replace(/\$/g,
-"$$$$"),f=f.replace(/,/g,e));for(var f=new RegExp(f,"g"),e=[],m=[],n=null;f.lastIndex<d.length;){var p=f.exec(d),q=p[2];"string"===typeof p[1]&&(q=p[1].replace(/""/g,'"'));q=c?/^[Tt]rue$/.test(q)?w.bool(!0):/^[Ff]alse$/.test(q)?w.bool(!1):/^[\-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+|Infinity)$/.test(q)?l.real(Number(q)):w.string(q):w.string(q);e.push(q);p[4]&&f.lastIndex===d.length&&(e.push(w.string("")),p={});if(!p[4]){null===n&&(n=e.length);if(n<e.length)for(n=e.length,p=0;p<m.length;++p)for(q=m[p].length;q<
-n;++q)m[p][q]=k;else if(n>e.length)for(p=e.length;p<n;++p)e[p]=k;m.push(e);e=[]}}return g.turnIntoCSList(m.map(g.turnIntoCSList))};t.load$2=function(a,b){return t.load$3([a[0],null,a[1]],b)};t.load$3=function(a,b){function c(){if(l.readyState===XMLHttpRequest.DONE){var c;200===l.status?c=w.string(String(l.responseText)):(ia.err("Failed to load "+f+": "+l.statusText),c=k);J.newvar(d);J.setvar(d,c);A(a[2]);J.removevar(d);e()}}var d="#";null!==a[1]&&"variable"===a[1].ctype&&(d=a[1].name);var g=B(a[0]),
-f=null,l=null;"string"===g.ctype&&/^https?:\/\//.test(g.value)&&(f=g.value);return null!==f?(l=new XMLHttpRequest,l.onreadystatechange=c,l.open("GET",f),l.send(),w.bool(!0)):k};D.extractPoint=function(a){var b={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return b.x=ya.getField(c,"x").value.real,b.y=ya.getField(c,"y").value.real,b.ok=!0,b}if("list"!==a.ctype)return b;var d=a.value;if(2===d.length&&(a=d[0],c=d[1],"number"===a.ctype&&"number"===c.ctype))return b.x=a.value.real,b.y=c.value.real,
-b.ok=!0,b;3===d.length&&(a=d[0],c=d[1],d=d[2],"number"===a.ctype&&"number"===c.ctype&&"number"===d.ctype&&(a=l.div(a,d),c=l.div(c,d),b.x=a.value.real,b.y=c.value.real,b.ok=!0));return b};t.draw$1=function(a,b){var c=B(a[0]);if("shape"===c.ctype)D.drawshape(c,b);else if("Line"===c.usage)x.handleModifs(b,x.lineModifs),x.drawline(c);else{var d=D.extractPoint(c);if(!d.ok){if("undefined"!==typeof c.value&&2===c.value.length)return t.draw$2(c.value,b);return}null!==b&&x.handleModifs(b,x.pointModifs);x.drawpoint(d)}return k};
-t.draw$2=function(a,b){var c=B(a[0]),d=B(a[1]),c=D.extractPoint(c),d=D.extractPoint(d);if(!c.ok||!d.ok)return k;null!==b&&x.handleModifs(b,x.lineModifs);x.drawsegcore(c,d);return k};t.drawcircle$2=function(a,b){return D.drawcircle(a,b,"D")};D.arcHelper=function(a){var b={};b.startPoint=M(a[0]);b.viaPoint=M(a[1]);b.endPoint=M(a[2]);return b};t.fillcircle$2=function(a,b){return D.drawcircle(a,b,"F")};t.drawarc$3=function(a,b){var c=D.arcHelper(a);return D.drawarc(c,b,"D")};t.fillarc$3=function(a,b){var c=
-D.arcHelper(a);return D.drawarc(c,b,"F")};D.drawarc=function(a,b,c){var d=a.startPoint,e=a.viaPoint;a=a.endPoint;if(!g._helper.isAlmostReal(g.turnIntoCSList([d,e,a])))return k;x.handleModifs(b,x.conicModifs);x.preDrawCurve();b=g.det3(d,e,a);if(1E-12<Math.abs(b.value.real)){b=m._helper.ConicBy5(null,d,e,a,g.ii,g.jj);var f=m._helper.CenterOfConic(b),f=g.normalizeMax(f);b=l.real(0);var n=g.turnIntoCSList([g.turnIntoCSList([f.value[2],b,l.neg(f.value[0])]),g.turnIntoCSList([b,f.value[2],l.neg(f.value[1])]),
-g.turnIntoCSList([b,b,f.value[2]])]);b=g.normalizeZ(w.mult(n,d));g.normalizeZ(w.mult(n,e));n=g.normalizeZ(w.mult(n,a));b=-Math.atan2(b.value[1].value.real,b.value[0].value.real);n=-Math.atan2(n.value[1].value.real,n.value[0].value.real);f=g.normalizeZ(f);d=g.normalizeZ(d);e=g.normalizeZ(e);a=g.normalizeZ(a);var p=g.abs(g.sub(d,f)),q=[f.value[0].value.real,f.value[1].value.real],f=z.drawingstate.matrix,t=q[0]*f.a-q[1]*f.b+f.tx,q=q[0]*f.c-q[1]*f.d-f.ty,d=0<g.det3(d,e,a).value.real;y.save();y.beginPath();
-y.translate(t,q);y.arc(0,0,p.value.real*f.sdet,b,n,d);"F"===c&&(y.fillStyle=x.lineColor,y.closePath(),y.fill());"D"===c&&y.stroke();y.restore()}else{if("D"!==c)return k;c=D.extractPoint(d);b=D.extractPoint(e);n=D.extractPoint(a);if(!c.ok||!b.ok||!n.ok)return k;p=(c.x-n.x)*(c.x-n.x)+(c.y-n.y)*(c.y-n.y);f=(n.x-b.x)*(n.x-b.x)+(n.y-b.y)*(n.y-b.y);if(1E-12>(c.x-b.x)*(c.x-b.x)+(c.y-b.y)*(c.y-b.y)||1E-12>p||1E-12>f)return k;0>g.crossratio3(d,a,e,g.cross(g.cross(d,e),g.linfty),g.ii).value.real?x.drawsegcore(c,
-n):x.drawRaySegment(d,a)}return k};D.drawcircle=function(a,b,c){var d=B(a[0]);a=B(a[1]);var e=D.extractPoint(d);if(!e.ok||"number"!==a.ctype||!l._helper.isAlmostReal(a))return k;var d=z.drawingstate.matrix,g=e.x*d.a-e.y*d.b+d.tx,e=e.x*d.c-e.y*d.d-d.ty;x.handleModifs(b,x.conicModifs);x.preDrawCurve();y.lineJoin="miter";y.beginPath();y.arc(g,e,Math.abs(a.value.real)*d.sdet,0,2*Math.PI);y.closePath();"D"===c&&y.stroke();"F"===c&&(y.fillStyle=x.lineColor,y.fill());"C"===c&&y.clip();return k};t.drawconic$1=
-function(a,b){var c;c=B(a[0]);if("list"!==c.ctype||3!==c.value.length&&6!==c.value.length)return console.error("could not parse conic"),k;if(6===c.value.length){for(var d=0;6>d;d++)if("number"!==c.value[d].ctype)return console.error("could not parse conic"),k;var e=l.real(.5),d=c.value[0],f=c.value[2],f=l.mult(f,e),m=c.value[1],n=c.value[3],n=l.mult(n,e),p=c.value[4],p=l.mult(p,e);c=c.value[5];c=g.turnIntoCSList([g.turnIntoCSList([d,f,n]),g.turnIntoCSList([f,m,p]),g.turnIntoCSList([n,p,c])])}else{for(d=
-0;3>d;d++)for(f=0;3>f;f++)if("number"!==c.value[d].value[f].ctype)return console.error("could not parse conic"),k;g.equals(c,g.transpose(c)).value||(d=w.mult(c,l.real(.5)),c=w.mult(g.transpose(c),l.real(.5)),c=g.add(d,c))}c=g.normalizeMax(c);return D.drawconic(c,b)};D.drawconic=function(a,b){x.handleModifs(b,x.conicModifs);if(0!==x.lsize){x.preDrawCurve();for(var c=g.normalizeMax(a),d=c,e=0;2>e;e++)for(var f=0;2>f;f++)if(Math.abs(c.value[e].value[f].value.imag)>l.eps)return;e=g.turnIntoCSList([g.realVector([-1,
--1,1]),g.realVector([1,0,0]),g.realVector([0,1,0])]);f=z.from(0,0,1);f[2]=1;var n=z.from(1,0,1);n[2]=1;var p=z.from(0,1,1);p[2]=1;var f=g.turnIntoCSList([g.realVector(f),g.realVector(n),g.realVector(p)]),f=g.transpose(f),e=w.mult(f,e),e=g.inverse(e),c=w.mult(g.transpose(e),c),c=w.mult(c,e),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real,c=[[e,f,p],[f,
-n,q],[p,q,v]],u=1E-14>Math.abs(e*n*v-e*q*q-f*f*v+2*f*p*q-n*p*p);if(u&&"Circle"===a.usage){var A=w.mult(g.adjoint3(d),g.linfty);l.abs(A.value[2]).value.real>l.eps&&(u=!1)}var A=da>ca?da:ca,B=-1.5*A,C=1.5*A,D=-1.5*A,E=1.5*A,F=1;u&&(F=0);if(F)var p=0,p=1E-14<Math.abs(e-f)?Math.atan(f/e-n)/2:Math.PI/4,G=function(a){var c=Math.cos(a);a=Math.sin(a);return[[c,-a,0],[a,c,0],[0,0,1]]}(p),G=g.realMatrix(G),e=g.transpose(G),c=w.mult(g.realMatrix(c),G),c=w.mult(e,c),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,
-n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real;var c=[e,f,n,p,q,v],e=function(){var a=m._helper.splitDegenConic(d);if(a!==k){var c=a[1],a=[a[0]];t.draw$1(a,b);a[0]=c;t.draw$1(a,b)}},H=function(a){"undefined"!==a&&6===a.length||console.error("this does not define a Conic");if(u)return"degenerate";a=a[0]*a[2]-a[1]*a[1];return 1E-14>Math.abs(a)?"parabola":1E-14<a?"ellipsoid":"hyperbola"};H(c);var L=function(a,c){return 0<
-a&&a<da&&0<c&&c<ca},J=[],I=[],K=[],M=[],N=[],O=[],P=function(){J=[];I=[];K=[];M=[];N=[];O=[]},R=function(a,c){y.beginPath();y.moveTo(a[0],c[0]);for(var b=1;b<a.length;b++)y.lineTo(a[b],c[b]);y.stroke()},S=function(a,c,b){var h,d,e=H(a);if(6!==a.length)console.error("Conic needs 6 Parameters");else{var f=a[0],r=a[1],k=a[2],l=a[3],m=a[4];a=a[5];var n;h=b-c;for(var p=.1*h+c,na=b-.1*h,Q=c;Q<=b;Q+=n){n=Q<p||Q>na||100>Math.abs(b-c)?.5:0>Q||Q>ca?10:3;d=-f*k*Q*Q-2*f*m*Q-f*a+r*r*Q*Q+2*r*l*Q+l*l;d=Math.sqrt(d);
-h=1/f*(-r*Q-l+d);d=-1/f*(r*Q+l+d);var q,Ga;F?(q=[h,Q,1],Ga=[d,Q,1],q=w.mult(G,g.realVector(q)),Ga=w.mult(G,g.realVector(Ga)),h=q.value[0].value.real,d=Ga.value[0].value.real,q=q.value[1].value.real,Ga=Ga.value[1].value.real):Ga=q=Q;isNaN(h)||"ellipsoid"!==e?!isNaN(h)&&h>=B&&h<=C&&(J.push(h),K.push(q)):(J.push(h),K.push(q));isNaN(d)||"ellipsoid"!==e?!isNaN(d)&&d>=B&&d<=C&&(I.push(d),M.push(Ga)):(I.push(d),M.push(Ga))}}},f=function(a){var c,b,h;H(a);if(6!==a.length)console.error("Conic needs 6 Parameters");
-else{h=a[0];var d=a[1],e=a[2],f=a[3],g=a[4],r=a[5];c=-h*g+d*f;b=Math.sqrt(h*(-h*e*r+h*Math.pow(g,2)+Math.pow(d,2)*r-2*d*f*g+e*Math.pow(f,2)));e=h*e-Math.pow(d,2);1E-14<Math.abs(e)?(h=(c-b)/e,b=(c+b)/e):b=h=(-h*r+f*f)/(2*h*g-2*d*f);!isNaN(h)&&h>D&&h<E||(h=D);!isNaN(b)&&b>D&&b<E||(b=D);c=h<b?h:b;b=h>b?h:b;S(a,D,c);N=J.concat(I.reverse());O=K.concat(M.reverse());R(N,O);P();S(a,b,E);R(J,K);if(L(J[0],K[1])||L(I[0],M[0]))y.beginPath(),y.moveTo(J[0],K[0]),y.lineTo(I[0],M[0]),y.stroke();R(I,M);P();S(a,c,
-b);R(J,K);y.beginPath();y.moveTo(J[0],K[0]);y.lineTo(I[0],M[0]);y.stroke();y.beginPath();y.moveTo(J[J.length-1],K[K.length-1]);y.lineTo(I[I.length-1],M[M.length-1]);y.stroke();R(I,M);P()}};u?e():f(c)}};t.drawall$1=function(a,b){var c=A(a[0]);if("list"===c.ctype){x.handleModifs(b,x.pointAndLineModifs);for(var d=0;d<c.value.length;d++)t.draw$1([c.value[d]],null)}return k};t.connect$1=function(a,b){return D.drawpolygon(a,b,"D",!1)};t.drawpoly$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpoly$1=
-function(a,b){return D.drawpolygon(a,b,"F",!0)};t.drawpolygon$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpolygon$1=function(a,b){return D.drawpolygon(a,b,"F",!0)};D.drawpolygon=function(a,b,c,d){function e(){for(var a=l.value,c=0;c<a.length;c++){var b=a[c],h;for(h=0;h<b.length;h++){var d=b[h],f=d.X*g.a-d.Y*g.b+g.tx,d=d.X*g.c-d.Y*g.d-g.ty;0===h?y.moveTo(f,d):y.lineTo(f,d)}y.closePath()}}function f(){var a;for(a=0;a<l.value.length;a++){var c=D.extractPoint(l.value[a]);if(!c.ok)return;var b=
-c.x*g.a-c.y*g.b+g.tx,c=c.x*g.c-c.y*g.d-g.ty;0===a?y.moveTo(b,c):y.lineTo(b,c)}d&&y.closePath()}x.handleModifs(b,x.conicModifs);x.preDrawCurve();var g=z.drawingstate.matrix,l=A(a[0]);y.beginPath();"list"===l.ctype&&f();"shape"===l.ctype&&e();"D"===c&&(x.fillColor&&(y.fillStyle=x.fillColor,y.fill(x.fillrule)),y.stroke());"F"===c&&(y.fillStyle=x.lineColor,y.fill(x.fillrule));"C"===c&&y.clip();return k};var Bc=Yc,td=function(a,b,c){if(-1!==b.indexOf("\n"))for(b=b.split("\n"),a.textContent=b[0],c=1;c<
-b.length;++c)a.appendChild(document.createElement("br")),a.appendChild(document.createTextNode(b[c]));else a.textContent=b};D.drawtext=function(a,b,c){var d=B(a[0]);a=A(a[1]);var e=D.extractPoint(d);if(!e.ok)return null;x.handleModifs(b,x.textModifs);b=z.drawingstate.textsize;null===b&&(b=la.textsize);null!==x.size&&(b=x.size);y.fillStyle=x.textColor;var f=z.drawingstate.matrix,d=e.x*f.a-e.y*f.b+f.tx+x.xOffset,e=e.x*f.c-e.y*f.d-f.ty-x.yOffset;a=ba(a);f=x.bold+x.italics+Math.round(10*b)/10+"px "+x.family;
-y.font=f;return c?c(a,f,d,e,x.align,b):Bc(y,a,d,e,x.align,b,b*la.lineHeight)};t.drawtext$2=function(a,b){D.drawtext(a,b,null);return k};t.drawtable$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=D.extractPoint(c);if(!e.ok||"list"!==d.ctype)return k;var d=d.value,c=d.length,f=-1,l;for(l=0;l<c;++l)"list"===d[l].ctype&&d[l].value.length>f&&(f=d[l].value.length);-1===f?(d=d.map(function(a){return[a]}),f=1):d=d.map(function(a){return g.asList(a).value});var m=100,n=null,p=!0,q=z.drawingstate.textcolor;x.handleModifs(b,
-{size:!0,color:function(a){g._helper.isNumberVecN(a,3)&&(q=x.makeColor([a.value[0].value.real,a.value[1].value.real,a.value[2].value.real]))},alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0,width:function(a){"number"===a.ctype&&(m=a.value.real)},height:function(a){"number"===a.ctype&&(n=a.value.real)},border:function(a){"boolean"===a.ctype&&(p=a.value)}});var t=z.drawingstate.textsize;null===t&&(t=la.textsize);null!==x.size&&(t=x.size);null===n&&(n=1.6*t);y.font=x.bold+
-x.italics+Math.round(10*t)/10+"px "+x.family;l=z.drawingstate.matrix;var v=f*m,u=c*n,t=e.x*l.a-e.y*l.b+l.tx+x.xOffset,w=e.x*l.c-e.y*l.d-l.ty-x.yOffset-u;if(p){x.preDrawCurve();y.strokeStyle=x.lineColor;y.beginPath();for(l=1;l<c;++l)y.moveTo(t,w+l*n),y.lineTo(t+v,w+l*n);for(e=1;e<f;++e)y.moveTo(t+e*m,w),y.lineTo(t+e*m,w+u);y.stroke();y.lineWidth=x.lsize+1;y.beginPath();y.rect(t,w,v,u);y.stroke()}t+=x.align*m+(1-2*x.align)*n*.3;w+=.7*n;y.fillStyle=q;for(l=0;l<c;++l)for(e=0;e<f;++e)v=ba(d[l][e]),Bc(y,
-v,t+e*m,w+l*n,x.align);return k};D.drawshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"D",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"D"):k};D.fillshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"F",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"F"):k};D.clipshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"C",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"C"):k};t.fill$1=
-function(a,b){var c=A(a[0]);return"shape"===c.ctype?D.fillshape(c,b):k};t.clip$1=function(a,b){var c=A(a[0]);return"shape"===c.ctype?D.clipshape(c,b):"list"===c.ctype?(c=t.polygon$1(a,[]),t.clip$1([c],[])):k};t.plot$1=function(a,b){return t.plot$2([a[0],null],b)};t.plot$2=function(a,b){function c(a){return"number"===a.ctype&&l._helper.isAlmostReal(a)}function d(a,c,b,h,e){n++;c=+c.value.real;e=+h.value.real;h=c*E.a-e*E.b+E.tx;c=c*E.c-e*E.d-E.ty;a=+a.value.real;e=+b.value.real;b=a*E.a-e*E.b+E.tx;a=
-a*E.c-e*E.d-E.ty;p?(y.lineTo(b,a),y.lineTo(h,c)):(y.beginPath(),y.moveTo(b,a),y.lineTo(h,c),p=!0)}function e(a,b,h,g,k){var n=c(h),q=c(g);if(.001>k)!f&&p&&(y.stroke(),p=!1);else if(n||q){var t=l.real((a.value.real+b.value.real)/2);J.setvar(B,t);var v=A(w),u=c(v);if(n&&q&&u){var Nb=h.value.real,q=v.value.real,u=g.value.real;if(n=1>Math.abs(Nb+u-2*q)/m){var x=l.real((a.value.real+t.value.real)/2);J.setvar(B,x);var x=A(w),fc=l.real((t.value.real+b.value.real)/2);J.setvar(B,fc);fc=A(w);Nb=Math.abs(Nb+
-q-2*x.value.real)/m;q=Math.abs(q+u-2*fc.value.real)/m;n=n&&1>Nb&&1>q}n?(d(a,t,h,v,k/2),d(t,b,v,g,k/2)):(e(a,t,h,v,k/2),e(t,b,v,g,k/2))}else e(a,t,h,v,k/2),e(t,b,v,g,k/2)}}var f=!1,m=.2/Kb,n=0,p=!1,q=-10,t=10,v=.1,u=1E3,w=a[0],B;if(null!==a[1]&&"variable"===a[1].ctype)B=a[1].name;else{var C=D.plotvars(w);B="#";-1!==C.indexOf("t")&&(B="t");-1!==C.indexOf("z")&&(B="z");-1!==C.indexOf("y")&&(B="y");-1!==C.indexOf("x")&&(B="x")}J.newvar(B);var E=z.drawingstate.matrix;x.handleModifs(b,{color:!0,alpha:!0,
-size:!0,dashpattern:!0,dashtype:!0,dashing:!0,lineCap:!0,lineJoin:!0,miterLimit:!0,connect:function(a){"boolean"===a.ctype&&(f=a.value)},start:function(a){"number"===a.ctype&&(q=a.value.real)},stop:function(a){"number"===a.ctype&&(t=a.value.real)},steps:function(a){"number"===a.ctype&&(u=a.value.real)}});y.strokeStyle=x.lineColor;y.lineWidth=x.lsize;var F,G,H,I,p=!1,C=l.real(14.32);J.setvar(B,C);H=A(w);if("number"!==H.ctype){if(g.isNumberVector(H).value&&2===H.value.length){p=!1;v=(t-q)/u;for(C=q;C<
-t;C+=v)J.setvar(B,l.real(C)),I=A(w),g.isNumberVector(I).value&&2===I.value.length&&(F=+I.value[0].value.real,G=+I.value[1].value.real,I=F*E.a-G*E.b+E.tx,F=F*E.c-G*E.d-E.ty,p?y.lineTo(I,F):(y.beginPath(),y.moveTo(I,F),p=!0));y.stroke();J.removevar(B)}return k}for(I=q;I<t+v;I+=v)C=l.real(I),J.setvar(B,C),H=A(w),C.value.real>q&&e(F,C,G,H,v),F=C,G=H;J.removevar(B);p&&y.stroke();return k};t.plotX$1=function(a,b){var c=a[0],d=D.plotvars(c),e="#";-1!==d.indexOf("t")&&(e="t");-1!==d.indexOf("z")&&(e="z");
--1!==d.indexOf("y")&&(e="y");-1!==d.indexOf("x")&&(e="x");J.newvar(e);d=z.drawingstate.matrix;y.fillStyle=z.drawingstate.linecolor;y.lineWidth=1;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.miterLimit=x.miterLimit;for(var f=!1,g=-10;10>g;g+=.01){J.setvar(e,l.real(g));var m=A(c);if("number"===m.ctype){var n=+m.value.real,m=g*d.a-n*d.b+d.tx,n=g*d.c-n*d.d-d.ty;f?y.lineTo(m,n):(y.beginPath(),y.moveTo(m,n),f=!0)}}y.stroke();J.removevar(e);return k};D.plotvars=function(a){function b(a,c){var h={},d;for(d=
-a.length-1;0<=d;--d)h[a[d]]=a[d];for(d=c.length-1;0<=d;--d)h[c[d]]=c[d];d=[];for(var e in h)h.hasOwnProperty(e)&&d.push(h[e]);return d}function c(a,c){for(var b=0;b<a.length;b++)a[b]===c&&(a.splice(b,1),b--);return a}var d,e,f,g;if("variable"===a.ctype)return[a.name];if("infix"===a.ctype)return d=D.plotvars(a.args[0]),a=D.plotvars(a.args[1]),b(d,a);if("list"===a.ctype){f=a.value;e=[];for(g=0;g<f.length;g++)d=D.plotvars(f[g]),e=b(e,d);return e}if("function"===a.ctype){f=a.args;e=[];for(g=0;g<f.length;g++)d=
-D.plotvars(f[g]),e=b(e,d);"apply"!==a.oper&&"select"!==a.oper&&"forall"!==a.oper&&"sum"!==a.oper&&"product"!==a.oper&&"repeat"!==a.oper&&"min"!==a.oper&&"max"!==a.oper&&"sort"!==a.oper||"variable"!==a.args[1].ctype||(e=c(e,a.args[1].name));return e}return[]};t.clrscr$0=function(a,b){"undefined"!==typeof da&&"undefined"!==typeof ca&&y.clearRect(0,0,da,ca);return k};t.repaint$0=function(a,b){e();return k};t.screenbounds$0=function(a,b){var c=w.withUsage(g.realVector(z.to(0,0)),"Point"),d=w.withUsage(g.realVector(z.to(da,
-0)),"Point"),e=w.withUsage(g.realVector(z.to(da,ca)),"Point"),f=w.withUsage(g.realVector(z.to(0,ca)),"Point");return g.turnIntoCSList([c,d,e,f])};t.createimage$3=function(a,b){var c=A(a[0]),d=B(a[1]),e=B(a[2]);if("number"!==d.ctype||"number"!==e.ctype||"string"!==c.ctype)return k;var f=document.createElement("canvas");f.id=c.value;f.width=d.value.real;f.height=e.value.real;f.style.display="none";document.body.appendChild(f);Xa[c.value]=aa(f,!1);return k};t.clearimage$1=function(a,b){var c=A(a[0]);
-if("string"!==c.ctype&&"image"!==c.ctype)return k;var c=La(c),d=c.img;if("undefined"===typeof d||null===d)return k;var e=c.width,f=c.height;d.getContext("2d").clearRect(0,0,e,f);c.generation++;return k};t.canvas$4=function(a,b){var c=B(a[0]),d=B(a[1]),e=A(a[2]),f=a[3],g=D.extractPoint(c),l=D.extractPoint(d);if(!g.ok||!l.ok||"string"!==e.ctype&&"image"!==e.ctype)return k;e=La(e);if(!e||!e.img.getContext)return k;var d=e.img,m=e.width,c=e.height,n=l.x-g.x,p=l.y-g.y,q=g.x-p*c/m,t=g.y+n*c/m,p=l.x-p*c/
-m,n=l.y+n*c/m,l=z.from(g.x,g.y,1),q=z.from(q,t,1),p=z.from(p,n,1),g=l[0],t=l[1],n=q[0],v=q[1],u=p[0],w=p[1],q=m*(t-v)/((g-n)*(t-w)-(g-u)*(t-v)),m=m*(g-n)/((t-v)*(g-u)-(t-w)*(g-n)),p=-q*g-m*t,l=(c*(t-w)-c*(t-v))/((g-n)*(t-w)-(g-u)*(t-v)),n=(c*(g-u)-c*(g-n))/((t-v)*(g-u)-(t-w)*(g-n)),c=c-l*g-n*t,d=d.getContext("2d"),g=y;y=d;y.save();y.transform(q,l,m,n,p,c);e.generation++;A(f);y.restore();y=g};t.canvas$5=function(a,b){var c=B(a[0]),d=B(a[1]),e=B(a[2]),f=A(a[3]),g=a[4],c=D.extractPoint(c),l=D.extractPoint(d),
-m=D.extractPoint(e);if(!c.ok||!l.ok||!m.ok||"string"!==f.ctype&&"image"!==f.ctype)return k;f=La(f);if(!f||!f.img.getContext)return k;var e=f.img,n=f.width,d=f.height,p=z.from(c.x,c.y,1),q=z.from(l.x,l.y,1),l=z.from(m.x,m.y,1),c=p[0],m=p[1],t=q[0],v=q[1],u=l[0],w=l[1],l=((0-n)*(m-w)-0*(m-v))/((c-t)*(m-w)-(c-u)*(m-v)),n=((0-n)*(c-u)-0*(c-t))/((m-v)*(c-u)-(m-w)*(c-t)),q=0-l*c-n*m,p=((d-d)*(m-w)-(d-0)*(m-v))/((c-t)*(m-w)-(c-u)*(m-v)),t=((d-d)*(c-u)-(d-0)*(c-t))/((m-v)*(c-u)-(m-w)*(c-t)),d=d-p*c-t*m,e=
-e.getContext("2d"),c=y;y=e;y.save();y.transform(l,p,n,t,q,d);f.generation++;A(g);y.restore();y=c};t.screenresolution$0=function(a,b){return l.real(z.drawingstate.matrix.a)};t.layer$1=function(a,b){};t.imagesize$1=function(a,b){var c=La(B(a[0]));return c?g.realVector([+c.width,+c.height]):k};t.imageready$1=function(a,b){var c=La(B(a[0]));return w.bool(!(!c||!c.ready))};t.drawimage$2=function(a,b){function c(){var a=1,c=1,d=1,f=1,r=0,l=1,n=D.extractPoint(e);if(!n.ok)return k;m=La(m);if(!m)return k;
-y.save();var p;void 0!==b.angle&&(p=A(b.angle),"number"===p.ctype&&(r=p.value.real));void 0!==b.rotation&&(p=A(b.rotation),"number"===p.ctype&&(r=p.value.real));void 0!==b.scale&&(p=B(b.scale),"number"===p.ctype&&(c=a=p.value.real),g.isNumberVector(p).value&&2===p.value.length&&(a=p.value[0].value.real,c=p.value[1].value.real));void 0!==b.scalex&&(p=A(b.scalex),"number"===p.ctype&&(a=p.value.real));void 0!==b.scaley&&(p=A(b.scaley),"number"===p.ctype&&(c=p.value.real));void 0!==b.flipx&&(p=A(b.flipx),
-"boolean"===p.ctype&&p.value&&(d=-1));void 0!==b.flipy&&(p=A(b.flipy),"boolean"===p.ctype&&p.value&&(f=-1));void 0!==b.alpha&&(p=A(b.alpha),"number"===p.ctype&&(l=p.value.real));var q=z.drawingstate.matrix,Q=z.drawingstate.initialmatrix,t=m.width,v=m.height;p=n.x*q.a-n.y*q.b+q.tx;var u=n.x*q.c-n.y*q.d-q.ty,w=(n.x+1)*q.a-n.y*q.b+q.tx-p,q=(n.x+1)*q.c-n.y*q.d-q.ty-u,Ga=(n.x+1)*Q.a-n.y*Q.b+Q.tx-(n.x*Q.a-n.y*Q.b+Q.tx),Q=(n.x+1)*Q.c-n.y*Q.d-Q.ty-(n.x*Q.c-n.y*Q.d-Q.ty),n=Math.sqrt(w*w+q*q)/Math.sqrt(Ga*
-Ga+Q*Q),w=-Math.atan2(w,q)+Math.atan2(Ga,Q),q=z.drawingstate.matrix.sdet/72,a=a*q,c=c*q;1!==l&&(y.globalAlpha=l);y.translate(p,u);y.scale(a*d*n,c*f*n);y.rotate(r+w);y.translate(-p,-u);y.translate(-t/2,-v/2);a=m;a.drawTo?a.drawTo(y,p,u):y.drawImage(a.img,p,u);y.globalAlpha=1;y.restore()}function d(){var a=1,c=1,g=1,r=1,n=D.extractPoint(e),p=D.extractPoint(f),q;if(!n.ok||!p.ok)return k;m=La(m);if(!m)return k;var t=m.width,v=m.height;if(0===l)q={},q.x=n.x-(p.y-n.y),q.y=n.y+(p.x-n.x),r=v/t;else if(q=
-D.extractPoint(l),!n.ok)return k;y.save();var u;void 0!==b.alpha&&(u=A(b.alpha),"number"===u.ctype&&(a=u.value.real));void 0!==b.aspect&&(u=A(b.aspect),"number"===u.ctype&&(r=u.value.real));void 0!==b.flipx&&(u=A(b.flipx),"boolean"===u.ctype&&u.value&&(c=-1));void 0!==b.flipy&&(u=A(b.flipy),"boolean"===u.ctype&&u.value&&(g=-1));u=z.drawingstate.matrix;1!==a&&(y.globalAlpha=a);a=n.x*u.a-n.y*u.b+u.tx;n=n.x*u.c-n.y*u.d-u.ty;y.transform(p.x*u.a-p.y*u.b+u.tx-a,p.x*u.c-p.y*u.d-u.ty-n,q.x*u.a-q.y*u.b+u.tx-
-a,q.x*u.c-q.y*u.d-u.ty-n,a,n);y.scale(1/t,-1/v*r);y.translate(t/2,-v/2);y.scale(c,g);y.translate(-t/2,v/2);y.translate(0,-v);c=m;c.drawTo?c.drawTo(y,0,0):y.drawImage(c.img,0,0);y.globalAlpha=1;y.restore()}var e,f,l,m;return 2===a.length?(e=B(a[0]),m=B(a[1]),c()):3===a.length?(e=B(a[0]),f=B(a[1]),l=0,m=B(a[2]),d()):4===a.length?(e=B(a[0]),f=B(a[1]),l=B(a[2]),m=B(a[3]),d()):k};t.drawimage$3=t.drawimage$2;t.drawimage$4=t.drawimage$2;t.allimages$0=function(){var a=[];Object.keys(Xa).forEach(function(b){a.push({ctype:"string",
-value:b})});return g.turnIntoCSList(a)};t.cameravideo$0=function(a,b){function c(a){return{video:{width:a,advanced:[{width:{max:a,min:a}},{width:{ideal:a}}]},audio:!1}}var d=!0,e={};if(void 0!==b.resolution){var f=A(b.resolution);"string"===f.ctype&&"maximal"===f.value?d=!0:"number"===f.ctype?(d=!1,e=c(f.value.real)):g._helper.isNumberVecN(f,2)&&(d=!1,e=c(f.value[0].value.real),f=f.value[1].value.real,10>f||!Number.isInteger(f)?(e.video.aspectRatio=f,e.video.advanced[0].aspectRatio={min:f,max:f},
-e.video.advanced[1].aspectRatio={ideal:f}):(e.video.height=f,e.video.advanced[0].height={min:f,max:f},e.video.advanced[1].height={ideal:f}))}d&&(e=[320,640,1024,1280,1920,2560],e=e.map(function(a){return{width:{min:a}}}),e={video:{width:16E3,height:9E3,advanced:e},audio:!1});var d=null,l=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;l?d=function(a,c){navigator.mediaDevices.getUserMedia(e).then(a,c)}:(l=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||
-navigator.msGetUserMedia)&&(d=function(a,c){l.call(navigator,e,a,c)});if(!d)return console.warn("getUserMedia call not supported"),k;var m=document.createElement("video");m.autoplay=!0;f=aa(m,!0);console.log("Opening stream.");d(function(a){a=window.URL.createObjectURL(a);m.src=a;m.addEventListener("loadeddata",I)},function(a){console.error("Could not get user video:",String(a),a)});return f};t.playvideo$1=function(a,b){var c=La(B(a[0]));c.live&&c.img.play&&c.img.play();return k};t.pausevideo$1=function(a,
-b){var c=La(B(a[0]));c.live&&c.img.pause&&c.img.pause();return k};var Db;t.imagergba$3=function(a,b){var c=La(B(a[0])),d=B(a[1]),e=B(a[2]);if(!c||"number"!==d.ctype||"number"!==e.ctype||!c.ready)return k;d=Math.round(d.value.real);e=Math.round(e.value.real);if(!Fa(d)||!Fa(e))return k;c=rb(c,d,e,1,1);return g.realVector([255*c[0],255*c[1],255*c[2],c[3]])};t.imagergb$3=t.imagergba$3;t.imagergba$4=function(a,b){var c=La(B(a[2]));if(!c||!c.ready)return k;var d=c.width,e=c.height,f=M(a[0]),l=M(a[1]),m=
-M(g.realVector([0,e,1])),d=M(g.realVector([d,e,1]));if(f===k||l===k||n===k)return k;var n=g.ii,e=g.jj,m=D.basismap(m,d,n,e),f=D.basismap(f,l,e,n),n=M(a[3]);var p=D.extractPoint(w.mult(m,w.mult(g.adjoint3(f),n)));if(p.ok){var l=c.width,m=c.height,n=!0,q=!1;void 0!==b.interpolate&&(f=A(b.interpolate),"boolean"===f.ctype&&(n=f.value));void 0!==b.repeat&&(f=A(b.repeat),"boolean"===f.ctype&&(q=f.value));n&&(p.x-=.5,p.y-=.5);q&&(p.x=(p.x%l+l)%l,p.y=(p.y%m+m)%m);d=Math.floor(p.x);e=Math.floor(p.y);if(Fa(d)&&
-Fa(e)){f=[0,0,0,0];if(n){var n=p.x-d,p=p.y-e,t=rb(c,d,e,2,2);if(q){if(d===l-1||e===m-1)var q=rb(c,(d+1)%l,e,1,1),u=rb(c,d,(e+1)%m,1,1),c=rb(c,(d+1)%l,(e+1)%m,1,1),t=t.slice(0,4).concat(q,u,c)}else{if(-1===d||d===l-1)n=Math.round(n);if(-1===e||e===m-1)p=Math.round(p)}for(c=0;4>c;c++)f[c]=(1-p)*((1-n)*t[c]+n*t[c+4])+p*((1-n)*t[c+8]+n*t[c+12])}else f=rb(c,d,e,1,1);c=g.realVector(f)}else c=k}else c=k;return c};t.imagergb$4=function(a,b){var c=t.imagergba$4(a,b);return c===k?k:g.turnIntoCSList(c.value.slice(0,
-3))};"use strict";var re=[{key:[":"],field:["."],deg:["\u00b0"],take:["_"]},{functionCall:!0},{rassoc:!0,pow:["^"],sqrt:["\u221a"]},{mul:["*","\u2062","\u22c5","\u00b7"],cross:["\u00d7"],div:["/","\u00f7","\u2215","\u2236"]},{add:["+"],sub:["-","\u2212"],neg:["!","\u00ac"]},{seq:[".."]},{eq:["==","\u225f"],ne:["!=","<>","\u2260"],lt:["<"],gt:[">"],le:["<=","\u2264","\u2266"],ge:[">=","\u2265","\u2267"],aeq:["~=","\u2248"],ane:["~!=","\u2249"],alt:["~<","\u2a89"],agt:["~>","\u2a8a"],ale:["~<=","\u2a85"],
-age:["~>=","\u2a86"],"in":["\u2208"],nin:["\u2209"]},{and:["&","\u2227"],or:["%","\u2228"]},{rassoc:!0,prepend:["<:"]},{concat:["++","\u222a"],remove:["--","\u2216"],common:["~~","\u2229"],append:[":>"]},{rassoc:!0,assign:["="],define:[":="],undefine:[":=_"],bdefine:["::="]},{seq:[";"]},{modif:["->","\u2192"]},{rassoc:!0,list:[","]}],se=["+","-"],te=["!","\u221a"],ue=["\u00b0",":=_"],ve=[";",","],Cc=[],xa={},cd;(function(){var a=0;re.forEach(function(b){a+=2;var c=!!b.rassoc;b.functionCall&&(cd=a);
-for(var d in b){var e=b[d];if("boolean"!==typeof e)for(var f={name:d,sym:e[0],symbols:e,rassoc:c,precedence:a,prefix:!1,postfix:!1,infix:!0,bare:!1},g=0;g<e.length;++g){var l=e[g];if(xa.hasOwnProperty(l))throw Error("Duplicate operator: "+l);xa[l]=f;Cc.push(l)}}});se.forEach(function(a){xa[a].prefix=!0});te.forEach(function(a){xa[a].prefix=!0;xa[a].infix=!1});ue.forEach(function(a){xa[a].postfix=!0;xa[a].infix=!1});ve.forEach(function(a){xa[a].prefix=!0;xa[a].postfix=!0;xa[a].infix=!0;xa[a].bare=
-!0})})();Cc.sort(function(a,b){return b.length-a.length});var we="(?:[0-9](?: [0-9])*(?: \\.(?! \\.)(?: [0-9])*)?|\\.(?: [0-9])+)(?: [Ee](?: [+-])?(?: [0-9])+)?".replace(/ /g,"[ \t]*"),xe="(?:[\u207a\u207b] )?[\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079](?: [\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079])*".replace(/ /g,"[ \t]*"),ye="(?:[\u208a\u208b] )?[\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089](?: [\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089])*".replace(/ /g,
-"[ \t]*"),Dc=function(a,b,c){var d,e,f=0,g="(?:[",l=b.length;for(d=0;d<l;++d)e=b.charCodeAt(d),55296<=e?(g+="]|"+b.charAt(d)+"[",f=56320):(g+=String.fromCharCode(e=f=a[e-32]+f),f+=a[b.charCodeAt(++d)-32],f!==e&&(f!==e+1&&(g+="-"),g+=String.fromCharCode(f)));return g+"]|["+c+"][\udc00-\udfff])"}([2,0,106,3,4,1,6,5,7,11,17,8,12,21,9,22,30,10,15,24,25,16,13,42,46,14,18,19,29,37,27,28,35,26,32,36,40,43,47,53,20,48,50,56,33,34,39,51,52,55,63,64,65,68,85,23,31,38,45,49,105,59,66,69,72,88,102,114,117,128,
+f.JS.Clone(b);if("number"!=typeof d||null===d)return f.Error("Delta is not a number in Clean()."),b;if(0===b.length||1==b.length&&0===b[0].length||0>d)return b;e||(b=[b]);for(var k=b.length,n,p,u,E,F,H,N,M=[],ia=0;ia<k;ia++)if(p=b[ia],n=p.length,0!==n)if(3>n)u=p,M.push(u);else{u=p;E=d*d;F=p[0];for(N=H=1;N<n;N++)(p[N].X-F.X)*(p[N].X-F.X)+(p[N].Y-F.Y)*(p[N].Y-F.Y)<=E||(u[H]=p[N],F=p[N],H++);F=p[H-1];(p[0].X-F.X)*(p[0].X-F.X)+(p[0].Y-F.Y)*(p[0].Y-F.Y)<=E&&H--;H<n&&u.splice(H,n-H);u.length&&M.push(u)}!e&&
+M.length?M=M[0]:e||0!==M.length?e&&0===M.length&&(M=[[]]):M=[];return M};f.JS.Clone=function(b){if(!(b instanceof Array)||0===b.length)return[];if(1==b.length&&0===b[0].length)return[[]];var d=b[0]instanceof Array;d||(b=[b]);var e=b.length,f,k,p,u,E=Array(e);for(k=0;k<e;k++){f=b[k].length;u=Array(f);for(p=0;p<f;p++)u[p]={X:b[k][p].X,Y:b[k][p].Y};E[k]=u}d||(E=E[0]);return E};f.JS.Lighten=function(b,d){if(!(b instanceof Array))return[];if("number"!=typeof d||null===d)return f.Error("Tolerance is not a number in Lighten()."),
+f.JS.Clone(b);if(0===b.length||1==b.length&&0===b[0].length||0>d)return f.JS.Clone(b);b[0]instanceof Array||(b=[b]);var e,k,n,p,u,E,F,H,N,M,ia,S,V,Y,ba,fa=b.length,ha=d*d,ea=[];for(e=0;e<fa;e++)if(n=b[e],E=n.length,0!=E){for(p=0;1E6>p;p++){u=[];E=n.length;n[E-1].X!=n[0].X||n[E-1].Y!=n[0].Y?(ia=1,n.push({X:n[0].X,Y:n[0].Y}),E=n.length):ia=0;M=[];for(k=0;k<E-2;k++){F=n[k];N=n[k+1];H=n[k+2];Y=F.X;ba=F.Y;F=H.X-Y;S=H.Y-ba;if(0!==F||0!==S)V=((N.X-Y)*F+(N.Y-ba)*S)/(F*F+S*S),1<V?(Y=H.X,ba=H.Y):0<V&&(Y+=F*
+V,ba+=S*V);F=N.X-Y;S=N.Y-ba;H=F*F+S*S;H<=ha&&(M[k+1]=1,k++)}u.push({X:n[0].X,Y:n[0].Y});for(k=1;k<E-1;k++)M[k]||u.push({X:n[k].X,Y:n[k].Y});u.push({X:n[E-1].X,Y:n[E-1].Y});ia&&n.pop();if(M.length)n=u;else break}E=u.length;u[E-1].X==u[0].X&&u[E-1].Y==u[0].Y&&u.pop();2<u.length&&ea.push(u)}b[0]instanceof Array||(ea=ea[0]);"undefined"==typeof ea&&(ea=[[]]);return ea};f.JS.PerimeterOfPath=function(b,d,e){if("undefined"==typeof b)return 0;var f=Math.sqrt,k=0,p,u,E,F,H=b.length;if(2>H)return 0;for(d&&(b[H]=
+b[0],H++);--H;)p=b[H],E=p.X,p=p.Y,u=b[H-1],F=u.X,u=u.Y,k+=f((E-F)*(E-F)+(p-u)*(p-u));d&&b.pop();return k/e};f.JS.PerimeterOfPaths=function(b,d,e){e||(e=1);for(var k=0,n=0;n<b.length;n++)k+=f.JS.PerimeterOfPath(b[n],d,e);return k};f.JS.ScaleDownPath=function(b,d){var e,f;d||(d=1);for(e=b.length;e--;)f=b[e],f.X/=d,f.Y/=d};f.JS.ScaleDownPaths=function(b,d){var e,f,k;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X/=d,k.Y/=d};f.JS.ScaleUpPath=function(b,d){var e,f,k=Math.round;d||(d=
+1);for(e=b.length;e--;)f=b[e],f.X=k(f.X*d),f.Y=k(f.Y*d)};f.JS.ScaleUpPaths=function(b,d){var e,f,k,p=Math.round;d||(d=1);for(e=b.length;e--;)for(f=b[e].length;f--;)k=b[e][f],k.X=p(k.X*d),k.Y=p(k.Y*d)};f.ExPolygons=function(){return[]};f.ExPolygon=function(){this.holes=this.outer=null};f.JS.AddOuterPolyNodeToExPolygons=function(b,d){var e=new f.ExPolygon;e.outer=b.Contour();var k=b.Childs(),n=k.length;e.holes=Array(n);var p,u,E,F,H;for(u=0;u<n;u++)for(p=k[u],e.holes[u]=p.Contour(),E=0,F=p.Childs(),
+H=F.length;E<H;E++)p=F[E],f.JS.AddOuterPolyNodeToExPolygons(p,d);d.push(e)};f.JS.ExPolygonsToPaths=function(b){var d,e,k,n,p=new f.Paths;d=0;for(k=b.length;d<k;d++)for(p.push(b[d].outer),e=0,n=b[d].holes.length;e<n;e++)p.push(b[d].holes[e]);return p};f.JS.PolyTreeToExPolygons=function(b){var d=new f.ExPolygons,e,k,n;e=0;k=b.Childs();for(n=k.length;e<n;e++)b=k[e],f.JS.AddOuterPolyNodeToExPolygons(b,d);return d}})();
+var CindyJS=function(){function p(k){if(0===ha)return console.error("Waiting for "+k+" after we finished waiting."),function(){};0>ha&&(ha=0);++ha;return function(){--ha;0>ha&&console.error("Wait count mismatch: "+k);if(0===ha)for(var p=0,F=Ga.length;p<F;)Ga[p++].startup()}}function F(k){var p=F.newInstance(k);0>=ha?p.startup():!1!==k.autostart&&Ga.push(p);return p}var ha=-1,Ga=[];"undefined"===typeof document||"undefined"===typeof window||"undefined"===typeof document.addEventListener||"undefined"!==
+typeof window.cindyDontWait&&!0===window.cindyDontWait||document.addEventListener("DOMContentLoaded",p("DOMContentLoaded"));var pa=null,Ha=null,ea={};F.getBaseDir=function(){if(null!==pa)return pa;for(var k=document.getElementsByTagName("script"),p=0;p<k.length;++p){var F=k[p],V=F.src;if(V){var S=/Cindy\.js$/.exec(V);if(S)return pa=V.substr(0,S.index),console.log("Will load extensions from "+pa),Ha=F,pa}}console.error("Could not find <script> tag for Cindy.js");return pa=Ha=!1};F.addNewScript=function(k,
+p){p||console.error.bind(console);var N=F.getBaseDir();if(!1===N)return!1;var V=document.createElement("script");V.src=N+k;var N=Ha.nextSibling,S=Ha.parentElement;N?S.insertBefore(V,N):S.appendChild(V);return V};F.loadScript=function(k,p,N,V){for(var S=String(k).split("."),fa=window;S.length&&"object"===typeof fa&&null!==fa;)fa=fa[S.shift()];if(fa&&!S.length)return N(),!0;V||(V=console.error.bind(console));S=ea[k];if(!S){S=F.addNewScript(p,V);if(!1===S)return V("Can't load additional components."),
+!1;ea[k]=S}S.addEventListener("load",N);S.addEventListener("error",V);return null};F._autoLoadingPlugin={};F.autoLoadPlugin=function(k,p,N){if(F._pluginRegistry[k])return N(),!0;var V=F._autoLoadingPlugin[k];if(!V){p||(p=k+"-plugin.js");V=F._autoLoadingPlugin[k]=[];k=F.addNewScript(p);if(!1===k)return!1;k.addEventListener("error",console.error.bind(console))}V.push(N);return null};var k={ctype:"undefined"};F.waitFor=p;F._pluginRegistry={};F.instances=[];F.registerPlugin=function(k,p,N){if(1!==k)return console.error("Plugin API version "+
+k+" not supported"),!1;F._pluginRegistry[p]=N;(F._autoLoadingPlugin[p]||[]).forEach(function(k){k()})};var Qa=0;F.dumpState=function(k){k=F.instances[k||0].saveState();console.log(JSON.stringify(k))};F.debugState=function(k){F.instances.map(function(k){var p=k.config,p=JSON.parse(JSON.stringify(p)),E=k.saveState();console.log(JSON.stringify(E));for(var F in E)p[F]=E[F];k.shutdown();return p}).forEach(function(k){F(k)})};F.newInstance=function(p){function F(){na.width=ca=na.clientWidth;na.height=da=
+na.clientHeight;A.setTransform(1,0,0,1,0,0);y.setMat(25,0,0,25,250.5,250.5);if(Db)for(var a=0;a<Db.length;a++){var g=Db[a],c=Object.keys(g)[0];"scale"===c&&(Tb=g.scale,y[c](g.scale));if("translate"===c)y[c](g.translate[0],g.translate[1]);"scaleAndOrigin"===c&&(Tb=g[c][0]/25,y[c].apply(null,g[c]));"visibleRect"===c&&(y[c].apply(null,g[c]),Tb=y.drawingstate.initialmatrix.a/25)}y.createnewbackup();y.greset();a=1;"undefined"!==typeof window&&window.devicePixelRatio&&(a=window.devicePixelRatio);g=A.webkitBackingStorePixelRatio||
+A.mozBackingStorePixelRatio||A.msBackingStorePixelRatio||A.oBackingStorePixelRatio||A.backingStorePixelRatio||1;a!==g&&(a/=g,na.width=ca*a,na.height=da*a,A.scale(a,a))}function N(a){var g;if("canvas"!==a.tagName.toLowerCase())for(g=a,na=document.createElement("canvas");g.firstChild;)g.removeChild(g.firstChild);else{na=a;g=document.createElement("div");var c=null,q=null;Array.prototype.slice.call(na.attributes).forEach(function(a){"width"===a.name?c=a.value:"height"===a.name?q=a.value:g.setAttributeNodeNS(na.removeAttributeNode(a))});
+null===c||g.style.width||(g.style.width=c+"px");null===q||g.style.height||(g.style.height=q+"px");na.parentNode.replaceChild(g,na)}g.classList.add("CindyJS-widget");a=na.style;a.position="absolute";a.border="none";a.margin=a.padding=a.left=a.top="0px";a.width=a.height="100%";a="static";window.getComputedStyle&&(a=window.getComputedStyle(g).getPropertyValue("position"),a=String(a||"static"));"static"===a&&(g.style.position="relative");g.appendChild(na);return na}function V(){var a=p.cinderella;if(!a||
+!a.version)return!1;for(var g=0;g<arguments.length;++g){var c=a.version[g],q=arguments[g];if(c!==q)return typeof c===typeof q&&c<q}return!1}function S(){kc=!0;if(0===Ub){if(p.exclusive)for(b=va.instances.length;0<b;)va.instances[--b].shutdown();void 0!==p.csconsole&&(wa=p.csconsole);wa=null===wa?new ua:!0===wa?new Cb:"string"===typeof wa?new gb(wa):"object"===typeof wa&&"function"===typeof wa.appendChild?new gb(wa):new ua;ra=[100,100];var a=null;Db=p.transform;if(p.ports&&0<p.ports.length){b=p.ports[0];
+(a=b.element)||(a=document.getElementById(b.id));var a=N(a),g=a.parentNode.style;"window"===b.fill?(g.width="100vw",g.height="100vh"):"parent"===b.fill?(g.width="100%",g.height="100%"):b.width&&b.height&&(g.width=b.width+"px",g.height=b.height+"px");b.background&&(a.style.backgroundColor=b.background);void 0!==b.transform&&(Db=b.transform);Ia(b.grid)&&0<b.grid&&(za=b.grid);Ia(b.tgrid)&&0<b.tgrid&&(lc=b.tgrid);b.snap&&(Eb=!0);b.axes&&(Fb=!0)}a||(a=p.canvas,a||"undefined"===typeof document||(a=document.getElementById(p.canvasname))&&
+(a=N(a)));a&&(na=a,A=a.getContext("2d"),F(),A.setLineDash||(A.setLineDash=function(){}),(p.animation?p.animation.controls:p.animcontrols)&&ea(p),p.animation&&Ia(p.animation.speed)&&(void 0===p.animation.accuracy&&V(2,9,1875)?ha(.5*p.animation.speed):ha(p.animation.speed)),p.animation&&Ia(p.animation.accuracy)&&(Vb=p.animation.accuracy));p.statusbar&&(mc="string"===typeof p.statusbar?document.getElementById(p.statusbar):p.statusbar);var c=p.scripts,q=null;"string"===typeof c&&c.search(/\*/)&&(q=c);
+"object"!==typeof c&&(c=null);"move keydown keyup keytyped keytype mousedown mouseup mousedrag mousemove mouseclick init tick draw simulationstep simulationstart simulationstop ondrop".split(" ").forEach(function(a){var g;if(null!==c&&c[a])g=c[a];else{g=a+"script";if(p[g])g=document.getElementById(p[g]);else if(q){if(g=document.getElementById(q.replace(/\*/,a)),!g)return}else return;g=g.text}g=Ua(g,!1);"error"===g.ctype?console.error("Error compiling "+a+" script: "+g.message):R[a]=Td(g,a)});V(2,
+9,1888)&&!R.keydown&&(R.keydown=R.keytyped,R.keytyped=R.keytype,R.keytype=void 0);Ia(p.grid)&&0<p.grid&&(za=p.grid);p.snap&&(Eb=!0);v={};var b=0;bb={};p.geometry||(p.geometry=[]);Ud(p.geometry);p.behavior||(p.behavior=[]);"function"===typeof nc&&nc(p.behavior);for(var d in p.images)b=fa(p.images[d],!1),b!==k&&(bb[d]=b);for(var h in p.videos)d=fa(p.videos[h],!0),d!==k&&(bb[h]=d);sa.canvas=a;if(p.oninit)p.oninit(sa);va.instances.push(sa);p.use&&p.use.forEach(function(a){t.use$1([w.wrap(a)],{})});hb.convexhull3d$1&&
+pa("QuickHull3D","QuickHull3D.js");(hb.colorplot$1||hb.colorplot$2||hb.colorplot$3||hb.colorplot$4)&&pa("CindyGL","CindyGL.js");(hb.playtone$1||hb.playmelody$1)&&pa("midi","midi-plugin.js");Y()}}function fa(a,g){var c;"string"===typeof a?(g?(c=document.createElement("video"),c.preload="auto",c.loop=!0,c.setAttribute("playsinline",""),enableInlineVideo(c)):c=new Image,c.src=a):c=a;if(!c.tagName)return console.error("Not a valid image element",c),k;var q={img:c,width:NaN,height:NaN,ready:!0,live:!1,
+generation:0,whenReady:f},b=c.tagName.toLowerCase(),d=[];if("img"===b)c.complete?(q.width=c.width,q.height=c.height):(q.ready=!1,c.addEventListener("load",function(){q.width=c.width;q.height=c.height;q.ready=!0;q.whenReady=f;d.forEach(f);e()}),q.whenReady=d.push.bind(d));else if("video"===b)q.live=!0,c.readyState>=c.HAVE_METADATA?(q.width=c.videoWidth,q.height=c.videoHeight):(q.ready=!1,c.addEventListener("loadedmetadata",function(){q.width=c.videoWidth;q.height=c.videoHeight;q.ready=!0;q.whenReady=
+f;d.forEach(f);e()}),q.whenReady=d.push.bind(d));else if("canvas"===b)q.width=c.width,q.height=c.height;else return console.error("Not a valid image element",b,c),k;return{ctype:"image",value:q}}function ea(a){function g(a,c){var g=document.createElement("button"),q=document.createElement("img");g.appendChild(q);m.appendChild(g);Gb(q,a);g.addEventListener("click",c);Va[a]=function(a){a?g.classList.add("CindyJS-active"):g.classList.remove("CindyJS-active")}}function c(a){if(k){var c=e.getBoundingClientRect();
+ha(h*(a.clientX-c.left-e.clientLeft+.5)/c.width+b)}}var q=document.createElement("div");q.className="CindyJS-animcontrols";na.parentNode.appendChild(q);var b=0,d=1,h=1;a.animation&&a.animation.speedRange&&Ia(a.animation.speedRange[0])&&Ia(a.animation.speedRange[1])&&(b=a.animation.speedRange[0],d=a.animation.speedRange[1],h=d-b);var e=document.createElement("div");e.className="CindyJS-animspeed";q.appendChild(e);var f=document.createElement("div");e.appendChild(f);H(e,"mousedown",function(a){k=!0;
+c(a)});H(e,"mousemove",c);H(na.parentNode,"mouseup",function(a){k=!1},!0);var m=document.createElement("div");m.className="CindyJS-animbuttons";q.appendChild(m);g("play",M);g("pause",Ga);g("stop",Ha);Va.stop(!0);oc=function(a){a=(a-b)/h;a=Math.max(0,Math.min(1,a));a=.1*Math.round(1E3*a);f.style.width=a+"%"};var k=!1}function ha(a){Vc=a;oc&&oc(a)}function f(a){return a()}function pa(a,g,c){var q=null;p.plugins&&(q=p.plugins[a]);q||(q=va._pluginRegistry[a]);q?t.use$1([w.wrap(a)],{}):(++Wc,va.autoLoadPlugin(a,
+g,function(){t.use$1([w.wrap(a)],{});Y(c)}))}function Y(a){0===--Wc&&(a?e():(z(R.init),(p.animation||p).autoplay&&M(),sa.canvas&&ic(sa.canvas,p)))}function ba(){null!==Hb&&(qa.set(Hb.state),Object.keys(Hb.speeds).forEach(function(a){var g=v.csnames[a];"undefined"!==typeof g.behavior&&(a=Hb.speeds[a],g.behavior.vx=a[0],g.behavior.vy=a[1],g.behavior.vz=a[2],g.behavior.fx=0,g.behavior.fy=0,g.behavior.fz=0)}),Vd())}function M(){if(!cb){if(Xb){var a=ib.backup;a.set(qa);for(var g={},c=0;c<v.points.length;c++){var q=
+v.points[c];"undefined"!==typeof q.behavior&&(g[q.name]=[q.behavior.vx,q.behavior.vy,q.behavior.vz])}Hb={state:a,speeds:g};Ib=0;Xb=!1;Va.stop(!1)}else Va.pause(!1);pc=Date.now();Va.play(!0);"function"===typeof nc&&qc&&Wd();cb=!0;z(R.simulationstart);e()}}function Ga(){cb&&(Va.play(!1),Va.pause(!0),cb=!1)}function Ha(){Xb||(cb?(z(R.simulationstop),cb=!1,Va.play(!1)):Va.pause(!1),Va.stop(!0),Xb=!0,ba())}function Ta(){if(!Yb){Yb=!0;for(var a=va.instances.length;0<a;)if(va.instances[--a]===sa){va.instances.splice(a,
+1);break}for(a=jb.length;0<a;)try{jb[--a]()}catch(g){console.error(g)}}}function fb(a){this["in"]=function(a,c){console.log(a);c?this.append(this.createTextNode("span","blue",a)):this.append(this.createTextNode("p","blue",a))};this.out=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.err=function(a,c){console.log(a);c?this.append(this.createTextNode("span","red",a)):this.append(this.createTextNode("p","red",a))};this.createTextNode=
+function(a,c,q){return"undefined"!==typeof document?(a=document.createElement(a),a.appendChild(document.createTextNode(q)),a.style.color=c,a):q+"\n"}}function Cb(){var a=this,g,c=document.createElement("div"),q;c.innerHTML='<div id="console" style="border-top: 1px solid #333333; bottom: 0px; position: absolute; width: 100%;"><div id="log" style="height: 150px; overflow-y: auto;"></div><input id="cmd" type="text" style="box-sizing: border-box; height: 30px; width: 100%;"></div>';document.body.appendChild(c);
+g=document.getElementById("cmd");q=document.getElementById("log");g.onkeydown=function(c){13===c.keyCode&&""!==g.value&&(a["in"](g.value),c=t.parse$1([w.wrap(g.value)],[]),c=z(c),console.log(Z(c)),"undefined"!==c.ctype&&wa.out(Z(c)),g.value="",q.scrollTop=q.scrollHeight)};this.append=function(a){q.appendChild(a)};this.clear=function(){q.innerHTML=""}}function gb(a){var g=a;"string"===typeof a&&(g=document.getElementById(a));this.append=function(a){g.appendChild(a)};this.clear=function(){g.innerHTML=
+""}}function ua(){this.append=function(a){};this.clear=function(){}}function H(a,g,c,q){void 0===q&&(q=!1);jb.push(function(){a.removeEventListener(g,c,q)});a.addEventListener(g,c,q)}function ic(a,g){function c(c){var g=a.getBoundingClientRect();c=y.to(c.clientX-g.left-a.clientLeft+.5,c.clientY-g.top-a.clientTop+.5);aa.prevx=aa.x;aa.prevy=aa.y;aa.x=c[0];aa.y=c[1];ra[0]=aa.x;ra[1]=aa.y;e()}function q(a){for(var c=a.changedTouches,g=!1,q=0;q<c.length;q++)c[q].identifier===W&&(g=!0);g&&(W=-1,aa.down=
+!1,ja=void 0,z(R.mouseup),wb("mouseup"),e(),a.preventDefault())}var b=null;"undefined"!==typeof MutationObserver&&(b=MutationObserver);b||"undefined"===typeof WebKitMutationObserver||(b=WebKitMutationObserver);b?(b=new b(function(c){document.body.contains(a)||Ta()}),b.observe(document.documentElement,{childList:!0,subtree:!0}),jb.push(function(){b.disconnect()})):(H(a,"DOMNodeRemovedFromDocument",Ta),H(a,"DOMNodeRemoved",Ta));if(!0===g.keylistener)H(document,"keydown",function(a){I(a,R.keydown);return!1}),
+H(document,"keyup",function(a){I(a,R.keyup);return!1}),H(document,"keypress",function(a){I(a,R.keytyped);return!1});else if(R.keydown||R.keyup||R.keytyped)a.setAttribute("tabindex","0"),H(a,"mousedown",function(){a.focus()}),H(a,"keydown",function(a){9!==a.keyCode&&(I(a,R.keydown),R.keytyped||a.preventDefault())}),H(a,"keyup",function(a){I(a,R.keyup);a.preventDefault()}),H(a,"keypress",function(a){9!==a.keyCode&&(I(a,R.keytyped),a.preventDefault())});H(a,"mousedown",function(a){aa.button=a.which;
+c(a);z(R.mousedown);wb("mousedown");aa.down=!0;a.preventDefault()});H(a,"mouseup",function(a){aa.down=!1;ja=void 0;z(R.mouseup);wb("mouseup");e();a.preventDefault()});H(a,"mousemove",function(a){c(a);aa.down?z(R.mousedrag):z(R.mousemove);wb("mousemove");a.preventDefault()});H(a,"click",function(a){c(a);z(R.mouseclick);a.preventDefault()});H(a,"dragenter",function(a){a.preventDefault()});H(a,"dragover",function(a){a.preventDefault()});H(a,"drop",function(c){function g(a,c){function h(){e.readyState===
+XMLHttpRequest.DONE&&(200!==e.status?(console.error("GET request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k)):b(c,e.responseText))}var W=a.replace(/[?#][^]*/,""),W=W.replace(/[^]*\/([^\/])/,"$1");f[c]={type:"",name:W};var e=new XMLHttpRequest;e.onreadystatechange=function(){if(e.readyState===XMLHttpRequest.DONE)if(200!==e.status)console.error("HEAD request for "+a+" failed: "+(e.responseText||"(no error message)")),d(c,k);else{var g=e.getResponseHeader("Content-Type");f[c].type=
+g;/^image\//.test(g)?oa(c,a):q(g)?(e=new XMLHttpRequest,e.onreadystatechange=h,e.open("GET",a),e.send()):d(c,k)}};e.open("HEAD",a);e.send()}function q(a){a=a.replace(/;[^]*/,"");return/^text\//.test(a)?1:"application/json"===a?2:0}function b(a,c){switch(q(f[a].type)){case 1:d(a,w.string(c));break;case 2:var g,oa;try{g=JSON.parse(c),oa=w.wrapJSON(g)}catch(h){console.error(h),oa=k}d(a,oa);break;default:d(a,k)}}function oa(a,c){var g=new Image,q=!1;g.onload=function(){q||(q=!0,d(a,fa(g,!1)))};g.onerror=
+function(c){q||(q=!0,console.error(c),d(a,k))};g.src=c}function d(a,c,g){m[a]=h.turnIntoCSList([c,w.string(g||c.ctype),w.string(f[a].type),w.string(f[a].name)]);0===--l&&(a=p,rc=h.turnIntoCSList(m),sc=a,z(R.ondrop),sc=rc=k,e())}c.preventDefault();var W=c.dataTransfer,f=W.files,m=Array(f.length),l=f.length,n=c.currentTarget.getBoundingClientRect(),p=h.realVector(y.to(c.clientX-n.left-a.clientLeft+.5,c.clientY-n.top-a.clientTop+.5));if(0<f.length)Array.prototype.forEach.call(f,function(a,c){var g=new FileReader;
+q(a.type)?(g.onload=function(){b(c,g.result)},g.readAsText(a)):/^image\//.test(a.type)?(g.onload=function(){oa(c,g.result)},g.readAsDataURL(a)):(console.log("Unknown MIME type: "+a.type),d(c,k))});else if(c=W.getData("text/uri-list"))c=c.split("\n").filter(function(a){return!/^\s*(#|$)/.test(a)}),l=c.length,m=Array(l),f=Array(l),c.forEach(g)});var W=-1;H(a,"touchstart",function(a){if(-1===W){var g=a.changedTouches;0!==g.length&&(W=g[0].identifier,c(a.targetTouches[0]),z(R.mousedown),aa.down=!0,wb("mousedown"),
+a.preventDefault())}},!1);H(a,"touchmove",function(a){for(var g=a.changedTouches,q=!1,b=0;b<g.length;b++)g[b].identifier===W&&(q=!0);q&&(c(a.targetTouches[0]),aa.down?z(R.mousedrag):z(R.mousemove),wb("mousemove"),a.preventDefault())},!0);H(a,"touchend",q,!1);"undefined"!==typeof document&&document.body&&H(document.body,"touchcancel",q,!1);"undefined"!==typeof window&&H(window,"resize",function(){Zb(function(){F();e()})},!1);d(a.parentNode);e()}function b(a,g){var c=document.createElement("div");c.setAttribute("style",
+g);a.appendChild(c);return c}function d(a){function g(){q.scrollLeft=q.scrollTop=oa.scrollLeft=oa.scrollTop=1E5}function c(){if(d!==a.clientWidth||h!==a.clientHeight)d=a.clientWidth,h=a.clientHeight,f||(f=!0,Zb(function(){f=!1;F();e()}));g()}if("undefined"!==typeof document){var q=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(q,"position: absolute; transition: 0s; left: 0; top: 0; width: 100000px; height: 100000px");
+var oa=b(a,"position: absolute; transition: 0s; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;");b(oa,"position: absolute; transition: 0s; left: 0; top: 0; width: 200%; height: 200%");g();var d=a.clientWidth,h=a.clientHeight,f=!1;q.addEventListener("scroll",c);oa.addEventListener("scroll",c)}}function e(){tc||(tc=Zb(r))}function r(){tc=null;if(!Yb){if(cb){var a=Date.now(),g=Math.min(50,a-pc)*Vc*Xd;pc=a;a=Ib+g;qc&&"undefined"!==typeof ya&&ya.tick(g);Ib=a;cb&&
+z(R.tick)}n();cb&&e()}}function n(){y.reset();A.save();A.clearRect(0,0,ca,da);var a=y.drawingstate.matrix,g,c,q,b,d;if(0!==za){A.beginPath();A.strokeStyle="rgba(0,0,0,0.1)";A.lineWidth=1;A.lineCap="butt";g=za*a.a;for(b=Math.ceil(-a.tx/g);(d=b*g+a.tx)<ca;){if(b||!Fb)A.moveTo(d,0),A.lineTo(d,da);b++}for(b=Math.floor(a.ty/g);(d=b*g-a.ty)<da;){if(b||!Fb)A.moveTo(0,d),A.lineTo(ca,d);b++}A.stroke()}if(0!==lc){A.beginPath();A.strokeStyle="rgba(0,0,0,0.1)";A.lineWidth=1;A.lineCap="butt";g=lc*a.a;var e=Math.sqrt(3);
+c=a.ty/e;q=(da+a.ty)/e;for(b=Math.ceil(-(a.tx+q)/g);(d=b*g+a.tx)+c<ca;)A.moveTo(d+c,0),A.lineTo(d+q,da),b++;for(b=Math.ceil(-(a.tx-c)/g);(d=b*g+a.tx)-q<ca;)A.moveTo(d-c,0),A.lineTo(d-q,da),b++;g*=.5*e;for(b=Math.floor(a.ty/g);(d=b*g-a.ty)<da;){if(b||!Fb)A.moveTo(0,d),A.lineTo(ca,d);b++}A.stroke()}Fb&&(A.beginPath(),A.strokeStyle="rgba(0,0,0,0.2)",A.lineWidth=3,A.lineCap="butt",A.lineJoin="miter",A.miterLimit=10,A.beginPath(),A.moveTo(0,-a.ty),A.lineTo(ca-6,-a.ty),A.moveTo(ca-13,-5-a.ty),A.lineTo(ca-
+3,-a.ty),A.lineTo(ca-13,5-a.ty),A.moveTo(a.tx,da),A.lineTo(a.tx,6),A.moveTo(a.tx-5,13),A.lineTo(a.tx,3),A.lineTo(a.tx+5,13),A.stroke());Yd();y.greset();Zd();for(a=0;a<v.polygons.length;a++)g=v.polygons[a],g.isshowing&&!1!==g.visible&&(c={color:g.color,alpha:g.alpha,fillcolor:g.fillcolor,fillalpha:g.fillalpha,size:g.size,lineJoin:w.string("miter"),fillrule:w.string(g.fillrule)},D.drawpolygon([g.vertices],c,"D",!0));for(a=0;a<v.conics.length;a++)v.conics[a].isArc?(g=v.conics[a],g.isshowing&&!1!==g.visible&&
+(c={},c.color=g.color,c.alpha=g.alpha,c.size=g.size,D.drawarc(g,c,g.filled?"F":"D"))):(g=v.conics[a],g.isshowing&&!1!==g.visible&&(c={},c.color=g.color,c.alpha=g.alpha,c.size=g.size,D.drawconic(g.matrix,c)));for(a=0;a<v.lines.length;a++)a:if(g=v.lines[a],g.isshowing&&!1!==g.visible&&h._helper.isAlmostReal(g.homog))if("S"===g.kind)c={overhang:g.overhang,dashtype:g.dashtype,size:g.size,color:g.color,alpha:g.alpha,arrow:g.arrow,arrowsize:g.arrowsize,arrowposition:g.arrowposition,arrowshape:g.arrowshape,
+arrowsides:g.arrowsides},0<=m.mult(g.startpos.value[2],m.conjugate(g.endpos.value[2])).value.real?(t.draw$2([g.startpos,g.endpos],c),g.labeled&&!g.tmp&&(c=g.printname||g.name||"S",q=h.scalmult(m.real(Math.sign(g.startpos.value[2].value.real)*Math.sign(g.endpos.value[2].value.real)),h.cross(g.startpos,g.endpos)),q={x:q.value[0].value.real,y:q.value[1].value.real},b=Math.sqrt(q.x*q.x+q.y*q.y),q={x:8*q.x/b-3,y:8*q.y/b-3},q=g.labelpos||q,b=x.makeColor(ga.textColor),d=l._helper.midpoint(l._helper.midpoint(g.startpos,
+g.endpos),g.endpos),Xc(g,c,d,q,b))):(x.handleModifs(c,x.lineModifs),x.drawRaySegment(g.startpos,g.endpos));else if("end"===g.clip.value&&"Join"===g.type)b=v.csnames[g.args[0]],c=v.csnames[g.args[1]],t.draw$2([b.homog,c.homog],{overhang:g.overhang,dashtype:g.dashtype,size:g.size,color:g.color,alpha:g.alpha});else{if("inci"===g.clip.value){b=[1E6,0];c=[-1E6,0];d=[1E6,0];q=[-1E6,0];for(e=0;e<g.incidences.length;e++){var f=v.csnames[g.incidences[e]].homog,k=f.value[0],Ra=f.value[1],n=f.value[2];m._helper.isAlmostZero(n)||
+(k=m.div(k,n),Ra=m.div(Ra,n),m._helper.isAlmostReal(k)&&m._helper.isAlmostReal(Ra)&&(k.value.real<b[0]&&(b=[k.value.real,f]),k.value.real>c[0]&&(c=[k.value.real,f]),Ra.value.real<d[0]&&(d=[Ra.value.real,f]),Ra.value.real>q[0]&&(q=[Ra.value.real,f])))}c[0]-b[0]>q[0]-d[0]?(b=b[1],c=c[1]):(b=d[1],c=q[1]);if(b!==c){t.draw$2([b,c],{dashtype:g.dashtype,size:g.size,color:g.color,alpha:g.alpha,overhang:g.overhang});break a}}t.draw$1([g.homog],{dashtype:g.dashtype,size:g.size,color:g.color,alpha:g.alpha})}for(a=
+0;a<v.points.length;a++)if(g=v.points[a],g.isshowing&&!1!==g.visible&&h._helper.isAlmostReal(g.homog)&&(c=g.color,g.behavior&&(c=g.color),t.draw$1([g.homog],{size:g.size,color:c,alpha:g.alpha,noborder:g.noborder,border:g.border}),g.labeled&&!g.tmp)){q=g.printname||g.name||"P";b=g.labelpos||{x:3,y:3};d=x.makeColor(ga.textColor);if(!0===g.noborder.value||!1===g.border.value)d=c;Xc(g,q,g.homog,b,d)}for(a=0;a<v.texts.length;a++)$d(v.texts[a]);if(v.ifs.length){if(U.dirty||!w.deeplyEqual(U.mat,y.drawingstate.matrix))l.IFS.updateParameters(),
+U.dirty=!1;U.img&&A.drawImage(U.img,0,0,ca,da)}A.restore()}function I(a,g){var c=window.event?event:a,c=c.charCode?c.charCode:c.keyCode;Yc=String.fromCharCode(c);Zc=c;z(g);e()}function u(a){var g=a.value;a=g[0].value;var c=g[1].value,g=g[2].value;return h.turnIntoCSList([a[0],m.add(a[1],c[0]),m.add(a[2],g[0]),c[1],m.add(c[2],g[1]),g[2]])}function C(a){var g=!0;return function(c,q){g&&(console.error("Operator "+a+" is not supported yet."),g=!1);return k}}function Z(a){if("undefined"===typeof a)return"_??_";
+if(null===a)return"_???_";if("undefined"===a.ctype)return"___";if("number"===a.ctype)return m.niceprint(a);if("string"===a.ctype||"boolean"===a.ctype)return a.value;if("list"===a.ctype){for(var g="[",c=0;c<a.value.length;c++)g+=Z(z(a.value[c])),c!==a.value.length-1&&(g+=", ");return g+"]"}return"dict"===a.ctype?Na.niceprint(a):"function"===a.ctype?"FUNCTION":"infix"===a.ctype?"INFIX":"modifier"===a.ctype?a.key+"->"+Z(a.value):"shape"===a.ctype?a.type:"error"===a.ctype?"Error: "+a.message:"variable"===
+a.ctype?Z(J.getvar(a.name)):"geo"===a.ctype?a.value.name:"image"===a.ctype?"IMAGE":"_?_"}function ab(a,g){var c="undefined"===a[0].ctype,q="undefined"===a[1].ctype,b=z(a[1]);if(c||q)return k;"variable"===a[0].ctype?J.setvar(a[0].name,b):"infix"===a[0].ctype?"_"===a[0].oper?D.assigntake(a[0],b):ka("Can't use infix expression as lvalue"):"field"===a[0].ctype?D.assigndot(a[0],b):"userdata"===a[0].ctype?D.assigncolon(a[0],b):"function"===a[0].ctype&&"genList"===a[0].oper?"list"===b.ctype?D.assignlist(a[0].args,
+b.value):ka("Expected list in rhs of assignment"):ka("Left hand side of assignment is not a recognized lvalue");return b}function vb(a,g){var c=z(a[0]),q=z(a[1]);if(c.ctype===q.ctype){if("number"===c.ctype)return w.bool(c.value.real===q.value.real&&c.value.imag===q.value.imag);if("string"===c.ctype||"boolean"===c.ctype)return w.bool(c.value===q.value);if("list"===c.ctype)return h.equals(c,q);if("geo"===c.ctype)return w.bool(c.value===q.value)}return{ctype:"boolean",value:!1}}function Oc(a,g){return w.not(vb(a,
+g))}function hc(a,g){var c=B(a[0]),q=B(a[1]);return"number"===c.ctype&&"number"===q.ctype?{ctype:"boolean",value:m._helper.isAlmostEqual(c,q)}:"string"===c.ctype&&"string"===q.ctype||"boolean"===c.ctype&&"boolean"===q.ctype?{ctype:"boolean",value:c.value===q.value}:"list"===c.ctype&&"list"===q.ctype?h.almostequals(c,q):{ctype:"boolean",value:!1}}function Pc(a,g){var c=B(a[0]),q=B(a[1]);return"boolean"===c.ctype&&"boolean"===q.ctype?{ctype:"boolean",value:c.value&&q.value}:k}function Qc(a,g){var c=
+B(a[0]),q=B(a[1]);return"boolean"===c.ctype&&"boolean"===q.ctype?{ctype:"boolean",value:c.value||q.value}:k}function Rc(a,g){var c=a[0];"void"!==c.ctype&&(c=B(c));var q=B(a[1]),b=w.add(c,q);"Angle"===c.usage&&"Angle"===q.usage&&(b=w.withUsage(b,"Angle"));return b}function jc(a,g){var c=a[0];"void"!==c.ctype&&(c=B(c));var q=B(a[1]),b=w.sub(c,q);"Angle"===c.usage&&"Angle"===q.usage&&(b=w.withUsage(b,"Angle"));return b}function Sc(a,g){var c=B(a[0]),q=B(a[1]),b=w.mult(c,q);"Angle"!==c.usage||q.usage?
+"Angle"!==q.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Tc(a,g){var c=B(a[0]),q=B(a[1]);"number"===q.ctype&&m._helper.isZero(q)&&ka("WARNING: Division by zero!");var b=w.div(c,q);"Angle"!==c.usage||q.usage?"Angle"!==q.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Uc(a,g){var c=B(a[0]),q=B(a[1]);return"number"===c.ctype&&"number"===q.ctype?m.pow(c,q):k}function $c(a,g){var c=K(a[0]),q=K(a[1]);if(c!==k&&q!==k){var b=h.cross(c,
+q);"Point"===c.usage&&"Point"===q.usage&&(b=w.withUsage(b,"Line"));"Line"===c.usage&&"Line"===q.usage&&(b=w.withUsage(b,"Point"));return b}return k}function uc(a){var g=a.length;if(0===g)return[];if(1===g)return[0];if(2===g)return a[0][0]+a[1][1]<=a[0][1]+a[1][0]?[0,1]:[1,0];if(4<g)return ae(a);for(var c=be[g],q=Number.POSITIVE_INFINITY,b=c[0],d=0;d<c.length;++d){for(var h=c[d],e=0,f=0;f<g;++f)e+=a[f][h[f]];e<q&&(q=e,b=h)}return b}function ae(a){function g(){return{matched:-1,prev:-1,start:-1,cost:0,
+used:!1,leaf:!1}}function c(a){for(var g=0;g<d;++g)0<k[a][g]||m[g].used||(m[g].used=!0,c(m[g].matched))}function q(a){for(var c=0;c<d;++c)0<k[c][a]||f[c].used||(f[c].used=!0,q(f[c].matched))}var b=Math.abs,d=a.length,h,e,f=Array(d),m=Array(d),k=Array(d);for(h=0;h<d;++h)k[h]=Array(d);for(h=0;h<d;++h)for(f[h]=g(),m[h]=g(),f[h].cost=a[h][0],e=1;e<d;++e)f[h].cost>a[h][e]&&(f[h].cost=a[h][e]);for(;;){for(h=0;h<d;++h)for(e=0;e<d;++e)k[h][e]=a[h][e]-f[h].cost-m[e].cost,k[h][e]<1E-14*(b(a[h][e])+b(f[h].cost)+
+b(m[e].cost))&&(k[h][e]=0);for(h=0;h<d;++h)f[h].matched=m[h].matched=-1;for(var l=0;;){for(h=0;h<d;++h)f[h].used=f[h].leaf=m[h].used=m[h].leaf=!1,-1===f[h].matched&&(f[h].start=h,f[h].used=f[h].leaf=!0,f[h].prev=-1);for(var n=!1,p=!1;!p;){for(h=0;h<d;++h)if(f[h].leaf)for(f[h].leaf=!1,e=0;e<d;++e)if(!(m[e].used||0<k[h][e])&&f[h].matched!==e&&(m[e].prev=h,m[e].start=f[h].start,m[e].used=m[e].leaf=!0,-1===m[e].matched)){f[m[e].start].prev=e;n=!0;break}if(n)break;p=!0;for(e=0;e<d;++e)m[e].leaf&&(m[e].leaf=
+!1,h=m[e].matched,f[h].used||(f[h].prev=e,f[h].start=m[e].start,f[h].used=f[h].leaf=!0,p=!1))}if(!n)break;for(n=0;n<d;++n)if(-1===f[n].matched&&-1!==f[n].prev){e=f[n].prev;do h=m[e].prev,m[e].matched=h,f[h].matched=e,e=f[h].prev;while(h!==n);++l}}if(l===d)break;for(h=0;h<d;++h)f[h].used=f[h].leaf=m[h].used=m[h].leaf=!1;for(h=0;h<d;++h)-1===f[h].matched&&c(h);for(e=0;e<d;++e)-1===m[e].matched&&q(e);for(h=0;h<d;++h)-1===f[h].matched||f[h].used||m[f[h].matched].used||(f[h].used=!0);l=Number.POSITIVE_INFINITY;
+for(h=0;h<d;++h)if(!f[h].used)for(e=0;e<d;++e)m[e].used||l>k[h][e]&&(l=k[h][e]);for(h=0;h<d;++h)f[h].used||(f[h].cost+=l),m[h].used&&(m[h].cost-=l)}a=Array(d);for(h=0;h<d;++h)e=f[h].matched,a[h]=e;return a}function vc(a,g){var c=z(a[0]),q=B(a[1]);"string"!==c.ctype&&(c=h.asList(c));if("number"===q.ctype){q=Math.floor(q.value.real);0>q&&(q=c.value.length+q+1);if(0<q&&q<c.value.length+1)return"list"===c.ctype?c.value[q-1]:{ctype:"string",value:c.value.charAt(q-1)};ka("WARNING: Index out of range!");
+return k}if("list"===q.ctype){for(var b=[],d=0;d<q.value.length;d++){var e=B(q.value[d]);b[d]=vc([c,e],[])}return h.turnIntoCSList(b)}return k}function ad(a,g){var c=z(a[0]),q=z(a[1]);if("shape"===c.ctype&&"shape"===q.ctype)return D.shapeconcat(c,q);c=h.asList(c);q=h.asList(q);return"list"===c.ctype&&"list"===q.ctype?h.concat(c,q):k}function bd(a,g){var c=z(a[0]),q=z(a[1]);return"list"===c.ctype&&"list"===q.ctype?h.set(h.common(c,q)):"shape"===c.ctype&&"shape"===q.ctype?D.shapecommon(c,q):k}function cd(a,
+g){var c=z(a[0]),q=z(a[1]);return"list"===c.ctype&&"list"===q.ctype?h.remove(c,q):"shape"===c.ctype&&"shape"===q.ctype?D.shaperemove(c,q):k}function dd(a,g){var c=z(a[0]),q=z(a[1]);return"list"===c.ctype?h.append(c,q):k}function ed(a,g){var c=z(a[0]),q=z(a[1]);return"list"===q.ctype?h.prepend(c,q):k}function wc(a,g){a|=0;g|=0;if(0===a&&0===g)return 0;for(;0!==g;){var c=a;a=g;g=c%g|0}return a}function ce(a){return 1===a?0:1}function Jb(a,g,c){var q=g*g-4*a*c;0<=q?(q=Math.sqrt(q),0<g&&(q=-q),g=[[q-
+g,2*a],[2*c,q-g]]):g=null;if(null===g)return null;a=g[0][0]/g[0][1];g=g[1][0]/g[1][1];return g<a?[g,a]:[a,g]}function fd(a,g,c,q,b,d,h){if(-1!==g.indexOf("\n")){var e=Infinity,f=-Infinity,m=Infinity,k=-Infinity;g.split("\n").forEach(function(g){g=fd(a,g,c,q,b,d);e>g.left&&(e=g.left);f<g.right&&(f=g.right);m>g.top&&(m=g.top);k<g.bottom&&(k=g.bottom);q+=h});return{left:e,right:f,top:m,bottom:k}}var l=a.measureText(g);a.fillText(g,c-l.width*b,q);return{left:c-l.width*b,right:c+l.width*(1-b),top:q-.84*
+d,bottom:q+.36*d}}function Ja(a){return"image"===a.ctype?a.value:"string"===a.ctype&&bb.hasOwnProperty(a.value)?bb[a.value].value:null}function pb(a,g,c,q,b){var d=[];if(a.readPixels)d=a.readPixels(g,c,q,b);else{var h,e;if(a.img.getContext)e=a.img.getContext("2d"),h=e.getImageData(g,c,q,b).data;else try{Kb||(Kb=document.createElement("canvas")),Kb.width=q,Kb.height=b,e=Kb.getContext("2d"),e.drawImage(a.img,g,c,q,b,0,0,q,b),h=e.getImageData(0,0,q,b).data}catch(f){console.log(f)}for(var m in h)d.push(h[m]/
+255)}return d}function gd(a){return a.replace(/[^A-Za-z0-9 \u0080-\uffff]/ig,"\\$&")}function la(a,g,c){var q=a;g&&(q=q+" at "+g.row+":"+g.col);c&&(q=q+": \u2018"+c+"\u2019");q=Error(q);q.name="CindyScriptParseError";q.description=a;q.location=g;q.text=c;return q}function qb(a){this.input=a;this.re=new RegExp(hd,"g");for(var g=[],c=a.indexOf("\n")+1;c;)g.push(c),c=a.indexOf("\n",c)+1;g.push(a.length);this.bols=g;this.bol=this.pos=0;this.line=1}function $b(a){var g=a[a.length-2],c=a[a.length-3],q=
+a[a.length-1];if(c){if(c.isSuperscript&&g.precedence<=c.precedence)throw la("Operator not allowed after superscript",g.start,g.text);if(q){if(!g.op.infix)throw la("Operator may not be used infix",g.start,g.text);}else if(!g.op.postfix)throw la("Operator may not be used postfix",g.start,g.text);}else if(q){if(!g.op.prefix)throw la("Operator may not be used prefix",g.start,g.text);}else if(!g.op.bare)throw la("Operator without operands",g.start,g.text);g.ctype="infix";g.oper=g.op.sym;g.args=[c,q];a.splice(a.length-
+3,3,g)}function id(a,g,c,q){a.length&1||a.push(null);for(c=Ca[c];3<=a.length&&a[a.length-2].precedence<=c.precedence;)$b(a);a.push({op:c,precedence:c.precedence+(c.rassoc?1:0),start:g.start,end:g.end,text:g.text,rawtext:g.rawtext});c="";for(var b=g.text,d=0;d<b.length;++d)c+="0123456789+-".charAt(q.indexOf(b.charAt(d)));g.ctype="number";g.value={real:+c,imag:0};a.push(g);$b(a)}function jd(a,g){var c=[],q;a:for(;;)switch(q=a.next(),q.toktype){case "OP":var b=Ca[q.text];"_"!==b.sym||!c.length||c.length&
+1||"OP"!==c[c.length-1].toktype||":="!==c[c.length-1].op.sym||(c.pop(),b=Ca[":=_"],q.text=b.sym);q.op=b;q.precedence=b.precedence;for(c.length&1||c.push(null);3<=c.length&&c[c.length-2].precedence<=q.precedence;)$b(c);b.rassoc&&q.precedence++;c.push(q);break;case "ID":q.ctype="variable";q.name=q.text;if(c.length&1)throw la("Missing operator",q.start,q.text);c.push(q);break;case "NUM":q.ctype="number";q.value={real:+q.text,imag:0};if(c.length&1)throw la("Missing operator",q.start,q.text);c.push(q);
+break;case "STR":q.ctype="string";q.value=q.raw.substring(1,q.raw.length-1);if(c.length&1)throw la("Missing operator",q.start,q.text);c.push(q);break;case "SUB":id(c,q,"_","\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u208a\u208b");break;case "SUP":id(c,q,"^","\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079\u207a\u207b");c[c.length-1].isSuperscript=!0;break;case "BRA":b="[](){}||".indexOf(q.text);if(q.text===g||b&1)break a;var b="[](){}||".charAt(b+1),d=jd(a,b),h=d.closedBy;
+if(h.text!==b)throw la("Opening "+q.text+" at "+q.start.row+":"+q.start.col+" closed by "+(h.text||"EOF")+" at "+h.start.row+":"+h.start.col);h=q.text+h.text;b=[];if(d=d.expr){for(;d&&"infix"===d.ctype&&","===d.oper;)b.push(d.args[0]),d=d.args[1];b.push(d)}if(c.length&1){if("{}"===h)throw la("{\u2026} reserved for future use",q.start);d=c[c.length-1];if("variable"!==d.ctype)throw la("Function name must be an identifier",d.start);if(2<c.length&&c[c.length-2].precedence<kd)throw la("Function call in indexing construct must be enclosed in parentheses",
+q.start);d.ctype="function";q=d.args=[];for(var h=d.modifs={},e=0;e<b.length;++e){var f=b[e];if(f&&"infix"===f.ctype&&"->"===f.oper){var m=f.args[0];if("variable"!==m.ctype)throw la("Modifier name must be an identifier",f.start);h[m.name]=f.args[1]}else q.push(f)}d.oper=d.name.toLowerCase()+"$"+d.args.length}else if("||"===h)if(1===b.length)c.push({ctype:"function",oper:"abs_infix",args:b,modifs:{}});else if(2===b.length)c.push({ctype:"function",oper:"dist_infix",args:b,modifs:{}});else throw la("Don't support |\u2026| with "+
+b.length+" arguments",q.start);else{if("{}"===h)throw la("{\u2026} reserved for future use",q.start);"[]"!==h&&1===b.length?c.push({ctype:"paren",args:b}):0===b.length?c.push({ctype:"list",value:[]}):c.push({ctype:"function",oper:"genList",args:b,modifs:{}})}break;case "EOF":break a}for(c.length&1||c.push(null);3<=c.length;)$b(c);return{expr:c[0],closedBy:q}}function Lb(a){this.usedFunctions={};this.usedVariables={}}function z(a){if(void 0===a)return k;if("infix"===a.ctype)return a.impl(a.args,{},
+a);if("variable"===a.ctype)return z(J.getvar(a.name));if("function"===a.ctype)return Mb.push(a),a=D.evaluate(a.oper,a.args,a.modifs),Mb.pop(),a;if("void"===a.ctype)return k;if("field"===a.ctype){var g=z(a.obj);return"geo"===g.ctype?ta.getField(g.value,a.key):"list"===g.ctype?h.getField(g,a.key):k}return"userdata"===a.ctype?(g=z(a.obj),a=Z(z(a.key)),"_?_"===a&&(a=void 0),"geo"===g.ctype?ta.getuserData(g.value,a):"list"===g.ctype||"string"===g.ctype?ta.getuserData(g,a):k):a}function B(a){a=z(a);if("geo"===
+a.ctype){var g=a.value;if("P"===g.kind)return ta.getField(g,"xy");if("V"===g.kind)return g.value}return a}function K(a){a=z(a);if("geo"===a.ctype){var g=a.value;if("P"===g.kind||"L"===g.kind)return ta.getField(g,"homog")}return h._helper.isNumberVecN(a,3)?a:h._helper.isNumberVecN(a,2)?(g=h.turnIntoCSList([a.value[0],a.value[1],m.real(1)]),a.usage&&(g=w.withUsage(g,a.usage)),g):k}function Ua(a){var g=new Lb;g.usedFunctions=hb;g.infixmap=Q;a=g.parse(a);for(var c in g.usedVariables)J.create(c);return a}
+function Td(a,g){return{ctype:"infix",args:[],impl:function(){Mb=[{oper:g}];var c=z(a);Mb=[];return c}}}function ka(a){wa.err(a+Mb.map(function(a){return"\n at "+a.oper}).join("\n"))}function ld(){this._path=[];this._defs=["<defs>"];this._imgcache=[];this._body=[];this._saveStack=[""];this._clipIndex=0;this._stroke=this._fill="#000";this._strokeOpacity=this._fillOpacity=null;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10;this.globalAlpha=1}
+function md(){this._body=[];this._yPos=this._xPos=NaN;this._extGState={Af255:"<< /ca 1 >>",As255:"<< /CA 1 >>"};this._objects=[["%PDF-1.4\n"]];this._offset=this._objects[0][0].length;this._nextIndex=5;this._imgcache=[];this._xobjects={};this._pathUsed=-1;this._fillAlpha=this._strokeAlpha=this._globalAlpha=1;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10}function nd(a,g){var c=a.width,q=a.height,b=document.createElement("canvas");b.setAttribute("width",
+c);b.setAttribute("height",q);b.setAttribute("style","display:none;");var d=sa.canvas;d.parentNode.insertBefore(b,d.nextSibling);try{return b.getContext("2d").drawImage(a,0,0,c,q),b.toDataURL(g||"image/png")}finally{b.parentNode.removeChild(b)}}function de(a){a=a.replace(RegExp("[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/]+","g"),"");var g=new Uint8Array(3*a.length>>2),c,q,b,d,h,e;for(q=c=0;c+3<a.length;c+=4)b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c)),
+d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1)),h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2)),e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+3)),g[q++]=b<<2|d>>4,g[q++]=d<<4|h>>2,g[q++]=h<<6|e;switch(a.length-c){case 0:break;case 2:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+
+1));g[q++]=b<<2|d>>4;break;case 3:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1));h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2));g[q++]=b<<2|d>>4;g[q++]=d<<4|h>>2;break;default:throw Error("Malformed Base64 input: "+(a.length-c)+" chars left: "+a.substr(c));}if(q!==g.length)throw Error("Failed assertion: "+q+" should be "+
+g.length);return g}function ee(a){function g(c){return(a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3])>>>0}if(57>a.length)throw Error("Too short to be a PNG file");if(2303741511!==g(0)||218765834!==g(4))throw Error("PNG signature missing");for(var c=[],q=8;q<a.length;){if(q+12>a.length)throw Error("Incomplete chunk at offset 0x"+q.toString(16));var b=g(q);if(2147483648<=b)throw Error("Chunk too long");var d=q+12+b;if(d>a.length)throw Error("Incomplete chunk at offset 0x"+q.toString(16));var h=a.subarray(q+
+4,q+8),h=String.fromCharCode.apply(String,h);c.push({len:b,type:h,data:a.subarray(q+8,q+8+b),crc:g(q+8+b)});q=d}return c}function ac(a,g){var c;if(c=/^rgba\(([0-9.]+), *([0-9.]+), *([0-9.]+), *([0-9.]+)\)$/.exec(a))g(+c[1],+c[2],+c[3],+c[4]);else if(c=/^rgb\(([0-9.]+), *([0-9.]+), *([0-9.]+)\)$/.exec(a))g(+c[1],+c[2],+c[3],1);else throw Error("Can't handle color style "+a);}function fe(a){var g=1;Object.keys(bb).forEach(function(c){var q=bb[c].value.img;if(void 0===q.cachedDataURL&&q.src)if("data:"===
+q.src.substr(0,5))q.cachedDataURL=q.src;else{++g;q.cachedDataURL=null;var b=new XMLHttpRequest;b.responseType="blob";b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200===b.status){var c=new FileReader;c.onloadend=function(){q.cachedDataURL=c.result;console.log("Cached data for image "+q.src);0===--g&&a()};c.readAsDataURL(b.response)}else console.error("Failed to load "+q.src+": "+b.statusText),0===--g&&a()};b.open("GET",q.src,!0);b.send()}});0===--g&&a()}function rb(a,g,
+c){for(c||(c="0");a.length<g;)a=c+a;return a}function od(){null!==Nb&&(window.URL.revokeObjectURL(Nb),Nb=null)}function pd(a){fe(function(){var g=A;try{A=new a;A.width=ca;A.height=da;n();var c=A.toBlob();Nb=window.URL.createObjectURL(c);qd(Nb)}finally{A=g}})}function Ob(a){var g=null,c=1E6,q;console.log("getElementAtMouse");for(var b=0;b<v.gslp.length;b++){var d=v.gslp[b];if(!d.pinned&&!1!==d.visible&&!0!==d.tmp){var e,f,k,l=y.drawingstate.matrix.sdet;if("P"===d.kind){var n=h.normalizeZ(d.homog);
+if(!h._helper.isAlmostReal(n))continue;e=n.value[0].value.real-a.x;f=n.value[1].value.real-a.y;k=Math.sqrt(e*e+f*f);d.narrow&k>20/l&&(k=1E4)}else if("C"===d.kind)f=v.csnames[d.args[0]],k=0,"undefined"!==typeof d.radius&&(k=d.radius.value.real),e=m.div(f.homog.value[0],f.homog.value[2]).value.real,f=m.div(f.homog.value[1],f.homog.value[2]).value.real,e-=a.x,f-=a.y,k=Math.sqrt(e*e+f*f)-k,f=e=0,0>k&&(k=-k),k+=30/l;else if("L"===d.kind||"S"===d.kind)e=d.homog,k=m,f=k.add(k.mult(e.value[0],k.conjugate(e.value[0])),
+k.mult(e.value[1],k.conjugate(e.value[1]))),f=h.scaldiv(k.sqrt(f),e),k=f.value[0].value.real*a.x+f.value[1].value.real*a.y+f.value[2].value.real,e=f.value[0].value.real*k,f=f.value[1].value.real*k,0>k&&(k=-k),k+=1;k<c+.2/l&&(c=k,g=d,q={x:e,y:f})}}return null===g?null:{mover:g,offset:q,prev:{x:a.x,y:a.y}}}function Xa(){return"P"+ge++}function wb(a){var g=G[xc].actions;g[xb].event===a&&g[xb]["do"]()&&(e(),xb===g.length-1?(Aa=[],xb=Ya=0):xb++)}function yc(a){return a&&.5>Math.abs(a.offset.x)&&.5>Math.abs(a.offset.y)&&
+!a.mover.tmp}function rd(a){return yc(a)&&"P"===a.mover.kind}function sd(a){return yc(a)&&("L"===a.mover.kind||"S"===a.mover.kind)}function zc(a){ja={mover:a,offset:{x:0,y:0},prev:{x:aa.x,y:aa.y}}}function sb(){var a=Ob(aa);rd(a)?Aa[Ya]=a.mover:(Aa[Ya]={type:"Free",name:Xa(),labeled:!0,pos:[ra[0],ra[1],1]},Ka(Aa[Ya]));Ya++}function td(){var a=Ob(aa);return sd(a)?(Aa[Ya]=a.mover,Ya++,!0):!1}function ud(){var a=Ob(aa),g;(g=sd(a))||(g=yc(a)&&"C"===a.mover.kind);return g?(Aa[Ya]=a.mover,Ya++,!0):!1}function yb(){var a=
+Ob(aa);if(rd(a))for(Pb.args[1]=a.mover.name,a=0;a<v.gslp.length;a++){var g=v.gslp[a];!0===g.tmp&&vd(g.name)}else for(a=0;a<v.gslp.length;a++)g=v.gslp[a],!0===g.tmp&&(g.tmp=!1)}function bc(a){var g={type:"Free",name:Xa(),labeled:!0,pos:[ra[0],ra[1],1],tmp:!0},g=Ka(g);Pb=Ka({type:a,name:Xa(),labeled:!0,args:[Aa[0].name,g.name]});zc(g)}function he(a){for(var g in a)null!==a[g]&&(ga[g]=a[g])}function Ud(a){Object.keys(l).forEach(function(a){var c=l[a];kb(c.signature||"_helper"===a,a+" has no signature");
+void 0!==c.updatePosition&&void 0===c.stateSize&&(c.stateSize=0)});v.gslp=[];v.csnames={};v.points=[];v.lines=[];v.conics=[];v.texts=[];v.free=[];v.polygons=[];v.ifs=[];a.forEach(wd);xd()}function yd(a){"undefined"===typeof a.tracedim&&(a.tracedim=1);"undefined"===typeof a.tracelength&&(a.tracelength=100);"undefined"===typeof a.traceskip&&(a.traceskip=1);a._traces=Array(a.tracelength);a._traces_index=0;a._traces_tick=0}function ie(a){void 0===a.size&&(a.size=ga.pointSize);a.size=m.real(a.size);!a.movable||
+a.pinned?(a.color=h.realVector(a.color||ga.pointColor),a.color=h.scalmult(m.real(ga.dimDependent),a.color)):a.color=h.realVector(a.color||ga.pointColor);void 0===a.alpha&&(a.alpha=ga.alpha);a.alpha=m.real(a.alpha);"boolean"!==typeof a.noborder&&(a.noborder=ga.noborder);a.noborder=w.bool(a.noborder);"boolean"!==typeof a.border&&(a.border=!ga.noborder);a.border=w.bool(a.border);a.drawtrace&&yd(a)}function cc(a){void 0===a.size&&(a.size=ga.lineSize);a.size=m.real(a.size);a.color=h.realVector(a.color||
+ga.lineColor);void 0===a.alpha&&(a.alpha=ga.alpha);a.alpha=m.real(a.alpha);a.clip=w.string(a.clip||ga.clip);void 0===a.overhang&&(a.overhang=ga.overhangLine);a.overhang=m.real(a.overhang);a.dashtype&&(a.dashtype=w.wrap(a.dashtype))}function je(a){void 0===a.overhang&&(a.overhang=ga.overhangSeg);a.arrow&&(a.arrow=w.bool(a.arrow));a.arrowsize&&(a.arrowsize=m.real(a.arrowsize));a.arrowposition&&(a.arrowposition=m.real(a.arrowposition));a.arrowshape&&(a.arrowshape=w.string(a.arrowshape));a.arrowsides&&
+(a.arrowsides=w.string(a.arrowsides));cc(a);a.clip=w.string("end")}function ke(a){a.size=void 0!==a.textsize?a.textsize:void 0!==a.size?a.size:ga.textsize;a.size=m.real(+a.size)}function le(a){a.filled=void 0!==a.filled?w.bool(a.filled):w.bool(!0);a.fillcolor=void 0===a.fillcolor?k:h.realVector(a.fillcolor);void 0===a.fillalpha&&(a.fillalpha=0);a.fillalpha=m.real(a.fillalpha);cc(a)}function Ka(a){a=wd(a);xd();return a}function wd(a){var g;if(void 0!==v.csnames[a.name])return console.log("Element name '"+
+a.name+"' already exists"),g=v.csnames[a.name],l[g.type].isMovable&&"P"===l[g.type].kind&&La(g,a.pos,"homog"),{ctype:"geo",value:g};for(;Ac.hasOwnProperty(a.type);)a.type=Ac[a.type];if(g=zd[a.type]){var c=g(a),q=null;for(g=0;g<c.length;++g)q=Ka(c[g]);return q}var b=l[a.type],c=!1;if(!b)return console.error(a),console.error("Operation "+a.type+" not implemented yet"),null;if("**"!==b.signature)if(!Array.isArray(b.signature)&&"*"===b.signature.charAt(1))c=!0,a.args.forEach(function(c){if(v.csnames[c].kind!==
+b.signature.charAt(0))return console.error("Not all elements in set are of same type: "+a.name+" expects "+b.signature+" but "+c+" is of kind "+v.csnames[c].kind),"undefined"!==typeof window&&window.alert("Not all elements in set are of same type: "+a.name),null});else if(b.signature.length!==(a.args?a.args.length:0))return console.error("Wrong number of arguments for "+a.name+" of type "+a.type),"undefined"!==typeof window&&window.alert("Wrong number of arguments for "+a.name),null;if(a.args)for(g=
+0;g<a.args.length;++g){if(!v.csnames.hasOwnProperty(a.args[g]))return console.log("Dropping "+a.name+" due to missing argument "+a.args[g]),null;if("**"!==b.signature&&!c&&(q=v.csnames[a.args[g]].kind,b.signature[g]!==q&&("S"!==q||"L"!==b.signature[g])))return window.alert("Wrong argument kind "+q+" as argument "+g+" to element "+a.name+" of type "+a.type),null}b.signatureConstraints&&!b.signatureConstraints(a)&&window.alert("signature constraints violated for element "+a.name);v.gslp.push(a);v.csnames[a.name]=
+a;g=Da.length;a.kind=b.kind;a.stateIdx=g;g+=b.stateSize;a.incidences=[];a.isshowing=!0;a.movable=!1;b.isMovable&&(a.movable=!0,v.free.push(a));"P"===a.kind&&(v.points.push(a),ie(a));"L"===a.kind&&(v.lines.push(a),cc(a));"C"===a.kind&&(v.conics.push(a),cc(a));"S"===a.kind&&(v.lines.push(a),je(a));"Text"===a.kind&&(v.texts.push(a),ke(a));"Poly"===a.kind&&(v.polygons.push(a),le(a));"IFS"===a.kind&&v.ifs.push(a);me(g);qa=Oa=Da;lb=!0;b.initialize&&(Ba=Ea=a.stateIdx,a.param=b.initialize(a),kb(Ea===a.stateIdx+
+b.stateSize,"State fully initialized"));Ba=Ea=a.stateIdx;b.updatePosition(a,!1);kb(Ba===a.stateIdx+b.stateSize,"State fully consumed");kb(Ea===a.stateIdx+b.stateSize,"State fully updated");lb=!1;qa=ib["in"];qa.set(Da);Oa=ib.out;Bc(a,b);dc={};mb(a);return v.csnames[a.name]}function vd(a){var g,c;console.log("Remove element "+a);delete v.csnames[a];for(g=0;g<v.gslp.length;g++)c=v.gslp[g],c.name===a&&(console.log("Removed element from gslp "+a),v.gslp.splice(g,1));for(g=0;g<v.free.length;g++)c=v.free[g],
+c.name===a&&(console.log("Removed element from free "+a),v.free.splice(g,1));for(g=0;g<v.points.length;g++)c=v.points[g],c.name===a&&(console.log("Removed element from points "+a),v.points.splice(g,1));for(g=0;g<v.lines.length;g++)c=v.lines[g],c.name===a&&(console.log("Removed element from lines "+a),v.lines.splice(g,1));for(g=0;g<v.conics.length;g++)c=v.conics[g],c.name===a&&(console.log("Removed element from conics "+a),v.conics.splice(g,1));dc={}}function Ad(a,g){var c=v.csnames[g.args[0]].homog,
+q=v.csnames[g.args[1]].homog,b=a.homog,d=m.div(c.value[0],c.value[2]),c=m.div(c.value[1],c.value[2]),h=m.div(q.value[0],q.value[2]),q=m.div(q.value[1],q.value[2]),e=m.div(b.value[0],b.value[2]),b=m.div(b.value[1],b.value[2]);return m._helper.isAlmostReal(d)&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(h)&&m._helper.isAlmostReal(q)&&m._helper.isAlmostReal(e)&&m._helper.isAlmostReal(b)?(d=d.value.real,c=c.value.real,h=h.value.real,q=q.value.real,e=e.value.real,b=b.value.real,d=Math.sqrt((d-h)*
+(d-h)+(c-q)*(c-q))-Math.sqrt((d-e)*(d-e)+(c-b)*(c-b))-Math.sqrt((h-e)*(h-e)+(q-b)*(q-b)),1E-15>d*d):!1}function Bc(a,g){a.isshowing=!0;if(a.args)for(var c=0;c<a.args.length;c++)if(!v.csnames[a.args[c]].isshowing){a.isshowing=!1;return}g.visiblecheck&&g.visiblecheck(a)}function Xc(a,g,c,q,b){var d=a.textsize||ga.textsize,h=!0===a.textbold,e=!0===a.textitalics,f=a.text_fontfamily||ga.fontFamily,k=q.x*q.x+q.y*q.y,l=1;0<k&&(l=1+a.size.value.real/Math.sqrt(k));a=a.alpha||m.real(ga.alpha);D.drawtext([c,
+w.wrap(g)],{x_offset:w.wrap(l*q.x),y_offset:w.wrap(l*q.y),size:w.wrap(d),bold:w.wrap(h),italics:w.wrap(e),family:w.wrap(f),color:b,alpha:a})}function $d(a){a._bbox=null;if(a.isshowing&&!1!==a.visible){var g={size:a.size},c=a.homog,q=a.text,b=l[a.type].getText,q=b?b(a):q.replace(/@[$#]"([^"\\]|\\.)*"/g,function(a){var c,g;try{if(c=JSON.parse(a.substring(2)),g=v.csnames[c],!g)return"?"}catch(q){return"?"}switch(a.charAt(1)){case "$":return g.printname||c;case "#":return"V"!==g.kind?"?":Z(g.value)}}),
+b=null;if(a.html)var d=a._textCache||{text:!1},h=a.html,e=h.parentNode,f=e.parentNode,b=function(c,g,q,b,oa){d.invisible&&f.style.removeProperty("display");if(c!==d.text||g!==d.font||q!==d.x||b!==d.y||oa!==d.align){g!==d.font&&(h.style.font=g,h.style.lineHeight=ga.lineHeight);c!==d.text&&!1!==c&&!1===Bd(h,c,g)&&(c=!1);f.style.left=q+"px";f.style.top=b+"px";if(oa||e.style.transform)e.style.transform="translateX("+-100*oa+"%)";a._textCache={text:c,font:g,x:q,y:b,align:oa}}};q=w.string(q);a.dock&&(a.dock.to?
+c=v.csnames[a.dock.to].homog:Cd.hasOwnProperty(a.dock.corner)&&(c=t.screenbounds$0([],{}),c=c.value[Cd[a.dock.corner]]),g.offset=a.dock.offset);a.align&&(g.align=w.string(a.align));c&&(a._bbox=D.drawtext([c,q],g,b))}else a.html&&(a.html.parentNode.parentNode.style.display="none",a._textCache={invisible:!0})}function Zd(){function a(){var a=e++/c._traces.length,g=c._traces[h];g&&(a*=q*a*a,t.draw$1([g],{size:m.real(b),color:c.color,alpha:m.real(a)}));b*=d}for(var g=0;g<v.points.length;g++){var c=v.points[g];
+if(c.drawtrace){c._traces_tick===c.traceskip?(c._traces[c._traces_index]=c.homog,c._traces_index=(c._traces_index+1)%c._traces.length,c._traces_tick=0):c._traces_tick++;var q=c.alpha.value.real,b=c.size.value.real,d=1;1!==c.tracedim&&(b*=c.tracedim,d=Math.pow(c.tracedim,-1/c._traces.length));var h,e=0;for(h=c._traces_index;h<c._traces.length;++h)a();for(h=0;h<c._traces_index;++h)a()}}}function kb(a,g){var c="Assertion failed: "+g;if(!a)throw console.log(c),Ta(),"undefined"!==typeof alert&&alert(c),
+Error(c);}function me(a){if(a!==Da.length){var g,c,q=Cc.length;nb.length<a*q?(g=2*a,nb=new Float64Array(q*g)):g=nb.length/q|0;for(c=0;c<q;++c)ib[Cc[c]]=nb.subarray(c*g,c*g+a);a=Da;qa=ib["in"];Oa=ib.out;Da=ib.good;Da.set(a)}}function zb(){Da.set(qa);Ma=!1;Dd(!1);for(var a=Da.length,g=Math.abs,c=0;c<a;c+=2)g(Da[c])>1E12*g(Da[c+1])&&(Da[c+1]=0)}function ec(){if(Ab)Ma=!0;else throw Ed;}function Fd(a,g,c,q,b){return w.add(q,w.mult(c,w.sub(b,q)))}function Yd(){L&&(L.currentMouseAndScripts=[]);Dc=!0;if(ja){var a=
+ja.mover,g=h.realVector([aa.x+ja.offset.x,aa.y+ja.offset.y,1]);Gd(a,g,"mouse");ja.prev.x=aa.x;ja.prev.y=aa.y}z(R.move);z(R.draw);Ma||zb();Dc=!1;L&&(L.fullLog.push(h.turnIntoCSList([h.turnIntoCSList(L.currentMouseAndScripts)])),L.length>L.logLength&&L.splice(0,L.length-L.logLength),L.currentMouseAndScripts=null,L.postMouseHooks.forEach(function(a){a()}))}function La(a,g,c){Gd(a,g,c);Dc||Ma||zb()}function Gd(a,g,c){L&&L.currentMouseAndScripts&&(L.currentMover=[]);a===Hd?(qa.set(Da),Ma=!1):(Hd=a,zb());
+Oa.set(qa);var q=1E4,b;b=dc[a.name];if(!b){var d={},e=0;b=[];d[a.name]=a;for(var f=v.gslp,k=0;k<f.length;++k){var n=f[k],Wa=n.args;if(Wa)for(var p=0;p<Wa.length;++p)d.hasOwnProperty(Wa[p])&&(d[n.name]=n,b[e++]=n)}dc[a.name]=b}var d=-1,e=.9,r,t,u,f=l[a.type],k=f.parameterPath||Fd;Ba=a.stateIdx;n=f.getParamFromState(a);Ba=Ea=a.stateIdx;Wa=f.getParamForInput(a,g,c);for(p=d+e;d!==p;){var x=p*p,y=.5/(1+x),y=m.complex(2*p*y+.5,(1-x)*y);Ab=d+.5*e<=d||0===q;0===q&&console.log("tracing limit Reached");x=!1;
+L&&L.currentMouseAndScripts&&(L.currentStep=[]);try{Ba=Ea=a.stateIdx;var A=k(a,p,y,n,Wa);L&&(L.currentParam=A);y=Oa;Oa=qa;f.putParamToState(a,A);Oa=y;Ea=a.stateIdx;L&&(L.currentElement=a);f.updatePosition(a,!0);kb(Ba===a.stateIdx+f.stateSize,"State fully consumed");kb(Ea===a.stateIdx+f.stateSize,"State fully updated");for(r=0;r<b.length;++r)t=b[r],u=l[t.type],Ba=Ea=t.stateIdx,L&&(L.currentElement=t),u.updatePosition(t,!1),kb(Ba===t.stateIdx+u.stateSize,"State fully consumed"),kb(Ea===t.stateIdx+u.stateSize,
+"State fully updated");L&&(L.currentElement=null);d=p;e*=1.25;p+=e;1<=p&&(p=1);Oa=qa;qa=y}catch(z){if(z!==Ed)throw z;e*=.5;p=d+e;--q;x=!0}L&&L.currentMouseAndScripts&&(L.currentMover.push(h.turnIntoCSList([h.turnIntoCSList(L.currentStep),w.wrap(x),w.wrap(d),w.wrap(p),w.wrap(L.currentParam)])),L.currentStep=null,L.currentParam=null)}Dd(Ma);for(r=0;r<b.length;++r)t=b[r],u=l[t.type],Bc(t,u);L&&L.currentMouseAndScripts&&(L.currentMouseAndScripts.push(h.turnIntoCSList([h.turnIntoCSList(L.currentMover),
+w.wrap(Ma),w.wrap(a.name),g,w.wrap(c),n,Wa])),L.currentMover=null)}function Vd(){zb();Ab=!0;for(var a=v.gslp,g=0;g<a.length;g++){var c=a[g],q=l[c.type];Ba=Ea=c.stateIdx;q.updatePosition(c,!1);Bc(c,q)}a=Oa;Oa=qa;qa=a;zb()}function Dd(a){var g=p.tracingStateReport;"string"===typeof g&&(document.getElementById(g).textContent=a?"BAD":"GOOD")}function ne(){return h.turnIntoCSList(L.fullLog.slice())}function oe(a){var g=JSON.stringify(L.fullLog);a=new Blob([g],{type:a?"application/octet-stream":"application/json"});
+return window.URL.createObjectURL(a)}function Bb(){var a=Ba;Ba+=2;return m.complex(qa[a],qa[a+1])}function X(a){for(var g=Array(a),c=0;c<a;++c)g[c]=Bb();return h.turnIntoCSList(g)}function Za(a){Oa[Ea]=a.value.real;Oa[Ea+1]=a.value.imag;Ea+=2}function T(a){for(var g=0,c=a.value.length;g<c;++g)Za(a.value[g])}function Pa(a,g){var c=X(3),q=X(3),c=Ec(a,g,c,q);T(c[0]);T(c[1]);return h.turnIntoCSList(c)}function Ec(a,g,c,q){if(lb)return[a,g];var b=h.projectiveDistMinScal(c,a),d=h.projectiveDistMinScal(c,
+g),e=h.projectiveDistMinScal(q,a),f=h.projectiveDistMinScal(q,g),m=h.projectiveDistMinScal(c,q),l=h.projectiveDistMinScal(a,g),n=b+f,p=d+e,r;n>p?(r=[g,a],n=p):r=[a,g];p=function(){};if(L&&L.currentStep){var t=[L.labelTracing2,w.wrap(L.currentElement.name),h.turnIntoCSList(r),h.turnIntoCSList([c,q]),h.realMatrix([[b,d],[e,f]]),w.wrap(n),w.wrap(m),w.wrap(l),k];L.currentStep.push(h.turnIntoCSList(t));p=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));t[t.length-1]=L[a]}}h._helper.isNaN(a)||h._helper.isNaN(g)?
+(p("Tracing failed due to NaNs."),Ma=!0):m>3*n&&l>3*n?p("Normal case, everything all right."):1E-5>l?1E-5>m?p("Staying inside singularity."):(p("Moved into singularity."),Ma=!0):1E-5>m?p("Moved out of singularity."):(Ab?p("Reached refinement limit, giving up."):p("Need to refine."),ec());return r}function Fc(a,g,c,q){var b=X(3),d=X(3),e=X(3),f=X(3);a=pe(a,g,c,q,b,d,e,f);T(a[0]);T(a[1]);T(a[2]);T(a[3]);return h.turnIntoCSList(a)}function pe(a,g,c,q,b,d,e,f){var m=function(){};b=[b,d,e,f];a=[a,g,c,
+q];if(lb)return a;d=0;q=Array(4);for(c=0;4>c;c++)for(q[c]=Array(4),f=0;4>f;f++)e=h.projectiveDistMinScal(b[c],a[f]),q[c][f]=e;e=uc(q);g=Array(4);for(c=0;4>c;++c)g[c]=a[e[c]],d+=q[c][e[c]];var l=1*d,n=Infinity,p=Infinity;for(c=0;4>c;c++){if(h._helper.isNaN(a[c]))return m("Tracing failed due to NaNs."),Ma=!0,g;for(f=c+1;4>f;f++)e=h.projectiveDistMinScal(b[c],b[f]),n>e&&(n=e),e=h.projectiveDistMinScal(g[c],g[f]),p>e&&(p=e)}if(L&&L.currentStep){var r=[L.labelTracing4,w.wrap(L.currentElement.name),h.turnIntoCSList(g),
+h.turnIntoCSList(b),h.realMatrix(q),w.wrap(d),w.wrap(n),w.wrap(p),k];L.currentStep.push(h.turnIntoCSList(r));m=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));r[r.length-1]=L[a]}}n>l&&p>l||(1E-5>p?1E-5>n?m("Staying inside singularity."):(m("Moved into singularity."),Ma=!0):1E-5>n?m("Moved out of singularity."):(Ab?m("Reached refinement limit, giving up."):m("Need to refine."),ec()));return g}function Id(a){var g=a.length,c,q;if(lb){for(c=0;c<g;++c)Ba+=2*a[c].value.length,T(a[c]);return a}var b=
+Array(g),d=Array(g),e=Array(g),f=99,m=99,l=Array(g);for(c=0;c<g;++c)b[c]=X(a[c].value.length),d[c]=h.normSquared(b[c]).value.real,e[c]=h.normSquared(a[c]).value.real,l[c]=Array(g);var n;for(c=0;c<g;++c){for(q=0;q<g;++q)n=h.sesquilinearproduct(b[c],a[q]).value,n=(n.real*n.real+n.imag*n.imag)/(d[c]*e[q]),l[c][q]=1-n;for(q=c+1;q<g;++q)n=h.sesquilinearproduct(b[c],b[q]).value,n=(n.real*n.real+n.imag*n.imag)/(d[c]*d[q]),f>1-n&&(f=1-n),n=h.sesquilinearproduct(a[c],a[q]).value,n=(n.real*n.real+n.imag*n.imag)/
+(e[c]*e[q]),m>1-n&&(m=1-n)}n=uc(l);q=Array(g);d=0;e=!1;for(c=0;c<g;++c){var d=d+l[c][n[c]],p=q[c]=a[n[c]];T(p);e|=h._helper.isNaN(p)}e|=isNaN(d);a=function(){};if(L&&L.currentStep){var r=[L.labelTracingSesq,w.wrap(L.currentElement.name),h.turnIntoCSList(q),h.turnIntoCSList(b),h.realMatrix(l),w.wrap(d),w.wrap(f),w.wrap(m),k];L.currentStep.push(h.turnIntoCSList(r));a=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));r[r.length-1]=L[a]}}e?(a("Tracing failed due to NaNs."),Ma=!0):f>3*d&&m>3*d?a("Normal case, everything all right."):
+1E-5>m?1E-5>f?a("Staying inside singularity."):(a("Moved into singularity."),Ma=!0):1E-5>f?a("Moved out of singularity."):(Ab?a("Reached refinement limit, giving up."):a("Need to refine."),ec());return q}function Qb(a,g){var c=l._helper.flattenConicMatrix(a),q=l._helper.flattenConicMatrix(g),b=X(6),d=X(6),q=Ec(c,q,b,d);T(q[0]);T(q[1]);c=l._helper.buildConicMatrix(q[0].value);q=l._helper.buildConicMatrix(q[1].value);return h.turnIntoCSList([c,q])}function mb(a){if(mb.hasOwnProperty(a.kind))mb[a.kind](a)}
+function Jd(a,g){return function(){a.incidences.push(g.name);g.incidences.push(a.name)}}function Kd(a,g){return{toString:function(){return"point "+a.name+" incident line "+g.name},apply:Jd(a,g),holds:function(){var c=h.scaldiv(h.abs(a.homog),a.homog),q=h.scaldiv(h.abs(g.homog),g.homog);return 1E-13>m.abs(h.scalproduct(c,q)).value.real}}}function Ld(a,g){return{toString:function(){return"point "+a.name+" incident conic "+g.name},apply:Jd(a,g),holds:function(){var c=w.mult(g.matrix,a.homog),c=w.mult(a.homog,
+c),c=m.abs(c);1E-13>c.value.real&&(a.incidences.push(g.name),g.incidences.push(a.name))}}}function xd(){if(0!==ob.length){for(var a=0;a<ob.length;++a)ob[a].apply();ob=[]}}function Gc(a,g,c){var q=document.createElement("div"),b=document.createElement("img");b.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAPoCAQAAAC1v1zVAAAAGklEQVR42u3BMQEAAADCoPVPbQ0PoAAAgHcDC7gAAVI8ZnwAAAAASUVORK5CYII=";q.className="CindyJS-baseline";q.appendChild(b);b=document.createElement("div");b.className="CindyJS-button";
+q.appendChild(b);for(var d=2;d<arguments.length;++d)b.appendChild(arguments[d]);na.parentNode.appendChild(q);a.html=arguments[arguments.length-1];Ia(a.fillalpha)||(a.fillalpha=1);a.fillcolor&&(a.html.style.backgroundColor=x.makeColor(a.fillcolor,a.fillalpha));q=e;if(a.script)var h=Ua(a.script),q=function(){z(h);e()};c.addEventListener(g,q);!p.keylistener&&(R.keydown||R.keyup||R.keytyped)&&(c.addEventListener("keydown",function(a){9!==a.keyCode&&I(a,R.keydown)}),c.addEventListener("keyup",function(a){I(a,
+R.keyup)}),c.addEventListener("keypress",function(a){9!==a.keyCode&&I(a,R.keytyped)}));l.Text.initialize(a)}function Sa(){}function qe(a){if(!/^Select/.test(a.type)&&!l[a.type].isMovable)return null;var g=w.unwrap,c=m.add;switch(a.kind){case "P":case "L":case "Text":return g(a.homog);case "C":return a=a.matrix.value,{xx:g(a[0].value[0]),yy:g(a[1].value[1]),zz:g(a[2].value[2]),xy:g(c(a[0].value[1],a[1].value[0])),xz:g(c(a[0].value[2],a[2].value[0])),yz:g(c(a[1].value[2],a[2].value[1]))};default:return null}}
+function re(a){var g={};g.offset=w.unwrap(a.offset);a.to&&(g.to=a.to);a.corner&&(g.corner=a.corner);return g}function se(a){var g={};te.forEach(function(c){if(a.hasOwnProperty(c)){var b=w.unwrap(a[c]);null!==b&&void 0!==b&&(g[c]=b)}});if("P"===a.kind&&(!a.movable||a.pinned)&&g.color){var c=m.real(1/ga.dimDependent);g.color=w.unwrap(h.scalmult(c,a.color))}if(c=qe(a))g.pos=c;a.dock&&(g.dock=re(a.dock));return g}function ue(){var a=[];v.gslp.forEach(function(g){g.tmp||a.push(se(g))});return a}function Wd(){Fa.forEach(function(a){var g=
+(a.geo||[]).map(function(a){return v.csnames[a]});O[a.type].reset(a,g[0],g)})}function nc(a){qc=0!==a.length;Fa=[];ma=[];Hc=[];O.Environment.init({});a.forEach(function(a){a.behavior?(a.name&&(a.behavior.geo=[a.name]),a=a.behavior,a.gravity&&(a.gravity=-a.gravity)):c=a.geo;var c=(a.geo||[]).map(function(a){return v.csnames[a]}),q=c[0],b=O[a.type];b?(b.init&&b.init(a,q,c),q&&(q.behavior=a,"Mass"===a.type?ma.push(q):"Spring"===a.type&&Hc.push(q)),Fa.push(a)):(console.error(a),console.error("Behavior "+
+a.type+" not implemented yet"))})}var va=this,wa,R={},cb=!1,Xb=!0,Ib=0,Vc=.5,pc=0,Vb=10,Md=5/360,Xd=.32/Md/1E3*2,Tb=1,za=0,lc=0,Eb=!1,Fb=!1,na,Db,Ia=Number.isFinite||function(a){return"number"===typeof a&&isFinite(a)},ra,A,ca,da,v,bb,rc=k,sc=k,Va={play:Sa,pause:Sa,stop:Sa},oc=null,Gb=function(a,g){var c=[];Gb=function(a,g){c.push({img:a,id:g})};Gb(a,g);var q=va.getBaseDir()+"images/Icons.svg",b=new XMLHttpRequest;b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200!==b.status)console.error("Failed to load CindyJS Icons.svg from "+
+q+": "+b.statusText);else{var a=b.responseXML,g=a.documentElement,d={},h,e;for(h=g.firstChild;h;h=e)e=h.nextSibling,h.nodeType===Node.ELEMENT_NODE&&"http://www.w3.org/2000/svg"===h.namespaceURI&&"g"===h.localName.toLowerCase()&&(g.removeChild(h),h.setAttribute("style","display:inline"),d[h.getAttribute("id")]=h);var f=new XMLSerializer;Gb=function(c,q){if(d.hasOwnProperty(q)){var b=d[q];g.appendChild(b);var h;try{h=f.serializeToString(a)}finally{g.removeChild(b)}c.src="data:image/svg+xml;charset=utf-8,"+
+encodeURIComponent(h)}};c.forEach(function(a){Gb(a.img,a.id)});c=null}};b.responseType="document";b.open("GET",q);b.send()},Wc=1,Hb=null,jb=[],Yb=!1,sa={config:p,startup:S,shutdown:Ta,evokeCS:function(a){a=Ua(a,!1);z(a);e()},play:M,pause:Ga,stop:Ha,evalcs:function(a){return z(Ua(a,!1))},parse:function(a){return Ua(a)},niceprint:Z,canvas:null},kc=!1,Ub=0;p.use&&p.use.forEach(function(a){var g=null;p.plugins&&(g=p.plugins[a]);g||(g=va._pluginRegistry[a]);g||(++Ub,console.log("Loading script for plugin "+
+a),va.loadScript(a+"-plugin",a+"-plugin.js",function(){console.log("Successfully loaded plugin "+a);0===--Ub&&kc&&S()},function(){console.error("Failed to auto-load plugin "+a);0===--Ub&&kc&&S()}))});Cb.prototype=new fb;gb.prototype=new fb;ua.prototype=new fb;var aa={},ja,Yc="",Zc=0,Zb;Zb=p.isNode?process.nextTick:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,
+0)};var tc=null,ve=[0,8,7,0,"g8c01b8d"],m={_helper:{}};m._helper.roundingfactor=1E4;m._helper.angleroundingfactor=10;m._helper.niceround=function(a,g){return Math.round(a*g)/g};m.niceprint=function(a,g){g=g||m._helper.roundingfactor;if("Angle"===a.usage)return m._helper.niceangle(a);var c=m._helper.niceround(a.value.real,g),q=m._helper.niceround(a.value.imag,g);return 0===q?""+c:0<q?""+c+" + i*"+q:""+c+" - i*"+-q};var Ic=p.angleUnit||"\u00b0",we=Ic.replace(/\s+/g,""),Nd=2*Math.PI,xe=1/Nd,ye={rad:Nd,
+"\u00b0":360,deg:360,degree:360,gra:400,grad:400,turn:1,cyc:1,rev:1,rot:1,"\u03c0":2,pi:2,quad:4};m._helper.niceangle=function(a){var g=ye[we];if(!g)return m.niceprint(w.withUsage(a,null));if("function"===typeof g)return g(a);a=m.niceprint(m.realmult(g*xe,a),200<g?m._helper.angleroundingfactor:null);return-1===a.indexOf("i*")?a+Ic:"("+a+")"+Ic};m.complex=function(a,g){return{ctype:"number",value:{real:a,imag:g}}};m.real=function(a){return{ctype:"number",value:{real:a,imag:0}}};m.zero=m.real(0);m.one=
+m.real(1);m.infinity=m.complex(Infinity,Infinity);m.nan=m.complex(NaN,NaN);m._helper.input=function(a){return"object"===typeof a?m.complex(+a.r,+a.i):m.real(+a)};m.argmax=function(a,g){return a.value.real*a.value.real+a.value.imag*a.value.imag<g.value.real*g.value.real+g.value.imag*g.value.imag?g:a};m.max=function(a,g){return{ctype:"number",value:{real:Math.max(a.value.real,g.value.real),imag:Math.max(a.value.imag,g.value.imag)}}};m.min=function(a,g){return{ctype:"number",value:{real:Math.min(a.value.real,
+g.value.real),imag:Math.min(a.value.imag,g.value.imag)}}};m.add=function(a,g){return{ctype:"number",value:{real:a.value.real+g.value.real,imag:a.value.imag+g.value.imag}}};m.sub=function(a,g){return{ctype:"number",value:{real:a.value.real-g.value.real,imag:a.value.imag-g.value.imag}}};m.neg=function(a){return{ctype:"number",value:{real:-a.value.real,imag:-a.value.imag}}};m.re=function(a){return{ctype:"number",value:{real:a.value.real,imag:0}}};m.im=function(a){return{ctype:"number",value:{real:a.value.imag,
+imag:0}}};m.conjugate=function(a){return{ctype:"number",value:{real:a.value.real,imag:-a.value.imag}}};m.round=function(a){return{ctype:"number",value:{real:Math.round(a.value.real),imag:Math.round(a.value.imag)}}};m.ceil=function(a){return{ctype:"number",value:{real:Math.ceil(a.value.real),imag:Math.ceil(a.value.imag)}}};m.floor=function(a){return{ctype:"number",value:{real:Math.floor(a.value.real),imag:Math.floor(a.value.imag)}}};m.mult=function(a,g){return{ctype:"number",value:{real:a.value.real*
+g.value.real-a.value.imag*g.value.imag,imag:a.value.real*g.value.imag+a.value.imag*g.value.real}}};m.realmult=function(a,g){return{ctype:"number",value:{real:a*g.value.real,imag:a*g.value.imag}}};m.multiMult=function(a){var g=a[0];if("number"!==g.ctype)return k;for(var c=1;c<a.length;c++){if("number"!==a[c].ctype)return k;g=m.mult(g,a[c])}return g};m.abs2=function(a){return{ctype:"number",value:{real:a.value.real*a.value.real+a.value.imag*a.value.imag,imag:0}}};m.abs=function(a){return m.sqrt(m.abs2(a))};
+m.inv=function(a){var g=a.value.real*a.value.real+a.value.imag*a.value.imag;return{ctype:"number",value:{real:a.value.real/g,imag:-a.value.imag/g}}};m.div=function(a,g){var c=a.value.real,q=a.value.imag,b=g.value.real,d=g.value.imag,h=b*b+d*d;return{ctype:"number",value:{real:(c*b+q*d)/h,imag:(q*b-c*d)/h}}};m.eps=1E-10;m.epsbig=1E-6;m.snap=function(a){var g=a.value.real;a=a.value.imag;Math.floor(g+m.eps)!==Math.floor(g-m.eps)&&(g=Math.round(g));Math.floor(a+m.eps)!==Math.floor(a-m.eps)&&(a=Math.round(a));
+return{ctype:"number",value:{real:g,imag:a}}};m.exp=function(a){var g=Math.exp(a.value.real);return{ctype:"number",value:{real:g*Math.cos(a.value.imag),imag:g*Math.sin(a.value.imag)}}};m.cos=function(a){var g=a.value.real;a=a.value.imag;var c=Math.exp(a),q=c*Math.sin(-g),b=c*Math.cos(-g),c=Math.exp(-a);return{ctype:"number",value:{real:(b+c*Math.cos(g))/2,imag:(q+c*Math.sin(g))/2}}};m.sin=function(a){var g=a.value.real;a=a.value.imag;var c=Math.exp(a),q=c*Math.sin(-g),b=c*Math.cos(-g),c=Math.exp(-a);
+return{ctype:"number",value:{real:-(q-c*Math.sin(g))/2,imag:(b-c*Math.cos(g))/2}}};m.tan=function(a){var g=m.sin(a);a=m.cos(a);return m.div(g,a)};m.arccos=function(a){var g=m.mult(a,m.neg(a)),g=m.sqrt(m.add(m.real(1),g));a=m.add(m.mult(a,m.complex(0,1)),g);a=m.add(m.mult(m.log(a),m.complex(0,1)),m.real(.5*Math.PI));return w.withUsage(a,"Angle")};m.arcsin=function(a){var g=m.mult(a,m.neg(a)),g=m.sqrt(m.add(m.real(1),g));a=m.add(m.mult(a,m.complex(0,1)),g);a=m.mult(m.log(a),m.complex(0,-1));return w.withUsage(a,
+"Angle")};m.arctan=function(a){var g=m.log(m.add(m.mult(a,m.complex(0,-1)),m.real(1)));a=m.log(m.add(m.mult(a,m.complex(0,1)),m.real(1)));g=m.mult(m.sub(g,a),m.complex(0,.5));return w.withUsage(g,"Angle")};m.arctan2=function(a,g){var c;if(void 0===g)c=m.real(Math.atan2(a.value.imag,a.value.real));else if(m._helper.isReal(a)&&m._helper.isReal(g))c=m.real(Math.atan2(g.value.real,a.value.real));else{c=m.add(a,m.mult(m.complex(0,1),g));var q=m.sqrt(m.add(m.mult(a,a),m.mult(g,g)));c=m.mult(m.complex(0,
+-1),m.log(m.div(c,q)))}return w.withUsage(c,"Angle")};m.sqrt=function(a){var g=a.value.real,c=a.value.imag;a=Math.sqrt(Math.sqrt(g*g+c*c));g=Math.atan2(c,g);return{ctype:"number",value:{real:a*Math.cos(g/2),imag:a*Math.sin(g/2)}}};m.powRealExponent=function(a,g){var c=a.value.real,q=a.value.imag,b=Math.pow(Math.sqrt(c*c+q*q),g),c=Math.atan2(q,c);return{ctype:"number",value:{real:b*Math.cos(c*g),imag:b*Math.sin(c*g)}}};m.log=function(a){var g=a.value.real;a=a.value.imag;var c=Math.sqrt(g*g+a*a),q=
+Math.atan2(a,g);0>a&&(q+=2*Math.PI);0===a&&0>g&&(q=Math.PI);q>Math.PI&&(q-=2*Math.PI);return m.snap({ctype:"number",value:{real:Math.log(c),imag:q}})};m.pow=function(a,g){return m._helper.isZero(g)?m.one:m._helper.isZero(a)?m.zero:m._helper.isReal(g)?m.powRealExponent(a,g.value.real):m.exp(m.mult(m.log(a),g))};m.mod=function(a,g){var c=a.value.real,q=g.value.real,b=a.value.imag,d=g.value.imag,c=c-Math.floor(c/q)*q,b=b-Math.floor(b/d)*d;0===q&&(c=0);0===d&&(b=0);return m.snap({ctype:"number",value:{real:c,
+imag:b}})};m._helper.seed="NO";m._helper.seedrandom=function(a){a-=Math.floor(a);m._helper.seed=.8*a+.1};m._helper.rand=function(){if("NO"===m._helper.seed)return Math.random();var a=m._helper.seed,a=1E3*Math.sin(1E3*a),a=a-Math.floor(a);return m._helper.seed=a};m._helper.randnormal=function(){var a=m._helper.rand(),g=m._helper.rand();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*g)};m._helper.isEqual=function(a,g){return a.value.real===g.value.real&&a.value.imag===g.value.imag};m._helper.isLessThan=
+function(a,g){return a.value.real<g.value.real||a.value.real===g.value.real&&a.value.imag<g.value.imag};m._helper.compare=function(a,g){return m._helper.isLessThan(a,g)?-1:m._helper.isEqual(a,g)?0:1};m._helper.isAlmostEqual=function(a,g,c){var q=m.eps;"undefined"!==typeof c&&(q=c);c=a.value.real-g.value.real;a=a.value.imag-g.value.imag;return c<q&&c>-q&&a<q&&a>-q};m._helper.isZero=function(a){return 0===a.value.real&&0===a.value.imag};m._helper.isAlmostZero=function(a){var g=a.value.real;a=a.value.imag;
+return g<m.eps&&g>-m.eps&&a<m.eps&&a>-m.eps};m._helper.isReal=function(a){return 0===a.value.imag};m._helper.isAlmostReal=function(a){a=a.value.imag;return a<m.epsbig&&a>-m.epsbig};m._helper.isNaN=function(a){return isNaN(a.value.real)||isNaN(a.value.imag)};m._helper.isFinite=function(a){return isFinite(a.value.real)&&isFinite(a.value.imag)};m._helper.isAlmostImag=function(a){a=a.value.real;return a<m.epsbig&&a>-m.epsbig};m._helper.z3a=m.complex(-.5,.5*Math.sqrt(3));m._helper.z3b=m.complex(-.5,-.5*
+Math.sqrt(3));m._helper.cub1={ctype:"list",value:[m.one,m.one,m.one]};m._helper.cub2={ctype:"list",value:[m._helper.z3a,m.one,m._helper.z3b]};m._helper.cub3={ctype:"list",value:[m._helper.z3b,m.one,m._helper.z3a]};m.solveCubic=function(a,g,c,q){a=m._helper.solveCubicHelper(a,g,c,q);return[h.scalproduct(m._helper.cub1,a),h.scalproduct(m._helper.cub2,a),h.scalproduct(m._helper.cub3,a)]};m._helper.solveCubicHelper=function(a,g,c,q){var b=a.value.real;a=a.value.imag;var d=g.value.real;g=g.value.imag;
+var e=c.value.real,f=c.value.imag,k=q.value.real,l=q.value.imag,n=b*e-a*f;c=b*f+a*e;q=4*n-(d*d-g*g);var p=4*c-2*d*g,r=b*d-a*g,t=b*g+a*d,v=q*e-p*f-18*(r*k-t*l),p=q*f+p*e-18*(r*l+t*k);q=27*(b*b-a*a);var u=54*a*b,w=q*k-u*l,x=q*l+u*k,y=d*d-g*g,A=2*d*g,z=y*d-A*g,B=y*g+A*d,C=w+4*z,u=x+4*B;q=27*(v*e-p*f+C*k-u*l);p=27*(v*f+p*e+C*l+u*k);C=Math.sqrt(Math.sqrt(q*q+p*p));u=Math.atan2(p,q);p=C*Math.sin(u/2);q=C*Math.cos(u/2);z=-2*z+9*(r*e-t*f)-w+(q*b-p*a);B=-2*B+9*(r*f+t*e)-x+(q*a+p*b);q=Math.exp(Math.log(Math.sqrt(z*
+z+B*B))/3);e=Math.atan2(B,z);u=q*Math.sin(e/3);p=q*Math.cos(e/3);q*=q;e*=2;n=2*y-6*n;c=2*A-6*c;A=-1.5874010519681996*(d*p-g*u);d=-1.5874010519681996*(d*u+g*p);g=1.2599210498948732*q*Math.cos(e/3);e=1.2599210498948732*q*Math.sin(e/3);q=4.762203155904599*(p*b-u*a);p=4.762203155904599*(p*a+u*b);b=q*q+p*p;u=(-n*p+c*q)/b;n=(n*q+c*p)/b;c=u;u=(-A*p+d*q)/b;A=(A*q+d*p)/b;d=u;u=(-g*p+e*q)/b;g=(g*q+e*p)/b;e=u;return h.turnIntoCSList([m.complex(n,c),m.complex(A,d),m.complex(g,e)])};var h={_helper:{},turnIntoCSList:function(a){return{ctype:"list",
+value:a}}};h.EMPTY=h.turnIntoCSList([]);h.asList=function(a){return"list"===a.ctype?a:"number"===a.ctype||"boolean"===a.ctype||"geo"===a.ctype?h.turnIntoCSList([a]):h.EMPTY};h.realVector=function(a){for(var g=[],c=0;c<a.length;c++)g[c]={ctype:"number",value:{real:a[c],imag:0}};return{ctype:"list",value:g}};h._helper.unitvector=function(a,g){var c=h.zerovector(a);c.value[Math.floor(g.value.real-1)]=m.real(1);return c};h.idMatrix=function(a){for(var g=h.zeromatrix(a,a),c=m.real(1),q=0;q<a.value.real;q++)g.value[q].value[q]=
+c;return g};h._helper.flippedidMatrix=function(a){for(var g=h.zeromatrix(a,a),c=m.real(1),q=0;q<a.value.real;q++)g.value[q].value[a.value.real-q-1]=c;return g};h.println=function(a){for(var g=[],c=0;c<a.value.length;c++)if("number"===a.value[c].ctype)g[c]=m.niceprint(a.value[c]);else if("list"===a.value[c].ctype)h.println(a.value[c]);else return k;"number"===a.value[0].ctype&&console.log(g)};h.matrix=function(a){return h.turnIntoCSList(a.map(h.turnIntoCSList))};h.realMatrix=function(a){for(var g=
+a.length,c=Array(g),q=0;q<g;q++)c[q]=h.realVector(a[q]);return h.turnIntoCSList(c)};h.ex=h.realVector([1,0,0]);h.ey=h.realVector([0,1,0]);h.ez=h.realVector([0,0,1]);h.linfty=h.realVector([0,0,1]);h.ii=h.turnIntoCSList([m.complex(1,0),m.complex(0,1),m.complex(0,0)]);h.jj=h.turnIntoCSList([m.complex(1,0),m.complex(0,-1),m.complex(0,0)]);h.fundDual=h.realMatrix([[1,0,0],[0,1,0],[0,0,0]]);h.fund=h.realMatrix([[0,0,0],[0,0,0],[0,0,1]]);h.sequence=function(a,g){for(var c=[],q=0,b=Math.round(a.value.real);b<
+Math.round(g.value.real)+1;b++)c[q]={ctype:"number",value:{real:b,imag:0}},q++;return{ctype:"list",value:c}};h.pairs=function(a){for(var g=[],c=0;c<a.value.length-1;c++)for(var q=c+1;q<a.value.length;q++)g.push({ctype:"list",value:[a.value[c],a.value[q]]});return{ctype:"list",value:g}};h.triples=function(a){for(var g=[],c=0;c<a.value.length-2;c++)for(var q=c+1;q<a.value.length-1;q++)for(var b=q+1;b<a.value.length;b++)g.push({ctype:"list",value:[a.value[c],a.value[q],a.value[b]]});return{ctype:"list",
+value:g}};h.cycle=function(a){for(var g=[],c=0;c<a.value.length-1;c++)g[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};g.push({ctype:"list",value:[a.value[a.value.length-1],a.value[0]]});return{ctype:"list",value:g}};h.consecutive=function(a){for(var g=[],c=0;c<a.value.length-1;c++)g[c]={ctype:"list",value:[a.value[c],a.value[c+1]]};return{ctype:"list",value:g}};h.reverse=function(a){for(var g=Array(a.value.length),c=a.value.length-1,q=0;0<=c;c--,q++)g[q]=a.value[c];return{ctype:"list",value:g}};
+h.directproduct=function(a,g){for(var c=[],q=0;q<a.value.length;q++)for(var b=0;b<g.value.length;b++)c.push({ctype:"list",value:[a.value[q],g.value[b]]});return{ctype:"list",value:c}};h.concat=function(a,g){for(var c=[],q=0;q<a.value.length;q++)c.push(a.value[q]);for(q=0;q<g.value.length;q++)c.push(g.value[q]);return{ctype:"list",value:c}};h.prepend=function(a,g){var c=[];c[0]=a;for(var q=0;q<g.value.length;q++)c[q+1]=g.value[q];return{ctype:"list",value:c}};h.append=function(a,g){for(var c=[],q=
+0;q<a.value.length;q++)c[q]=a.value[q];c.push(g);return{ctype:"list",value:c}};h.contains=function(a,g){for(var c=0;c<a.value.length;c++)if(D.equals(a.value[c],g).value)return{ctype:"boolean",value:!0};return{ctype:"boolean",value:!1}};h.common=function(a,g){for(var c=[],q=0,b=0;b<a.value.length;b++){for(var d=!1,h=a.value[b],e=0;e<g.value.length;e++)d=d||D.equals(h,g.value[e]).value;d&&(c[q]=a.value[b],q++)}return{ctype:"list",value:c}};h.remove=function(a,g){for(var c=[],q=0,b=0;b<a.value.length;b++){for(var d=
+!1,h=a.value[b],e=0;e<g.value.length;e++)d=d||D.equals(h,g.value[e]).value;d||(c[q]=a.value[b],q++)}return{ctype:"list",value:c}};h.sort1=function(a){a=a.value.slice();a.sort(w.compare);return h.turnIntoCSList(a)};h._helper.isEqual=function(a,g){return h.equals(a,g).value};h._helper.isLessThan=function(a,g){for(var c=a.value.length,q=g.value.length,b=0;!(b>=c||b>=q)&&w.isEqual(a.value[b],g.value[b]);)b++;return b===c&&b<q?!0:b===q&&b<c||b===c&&b===q?!1:w.isLessThan(a.value[b],g.value[b])};h._helper.compare=
+function(a,g){return h._helper.isLessThan(a,g)?-1:h._helper.isEqual(a,g)?0:1};h.equals=function(a,g){if(a.value.length!==g.value.length)return{ctype:"boolean",value:!1};for(var c=!0,q=0;q<a.value.length;q++)var b=a.value[q],d=g.value[q],c="list"===b.ctype&&"list"===d.ctype?c&&h.equals(b,d).value:c&&vb([b,d],[]).value;return{ctype:"boolean",value:c}};h.almostequals=function(a,g){if(a.value.length!==g.value.length)return{ctype:"boolean",value:!1};for(var c=!0,q=0;q<a.value.length;q++)var b=a.value[q],
+d=g.value[q],c="list"===b.ctype&&"list"===d.ctype?c&&h.almostequals(b,d).value:c&&hc([b,d],[]).value;return{ctype:"boolean",value:c}};h._helper.isAlmostReal=function(a){for(var g=!0,c=0;c<a.value.length;c++)var q=a.value[c],g="list"===q.ctype?g&&h._helper.isAlmostReal(q):g&&m._helper.isAlmostReal(q);return g};h._helper.isAlmostZero=function(a){for(var g=0;g<a.value.length;g++){var c=a.value[g];if("list"===c.ctype){if(!h._helper.isAlmostZero(c))return!1}else if(!m._helper.isAlmostZero(c))return!1}return!0};
+h._helper.isNaN=function(a){for(var g=!1,c=0;c<a.value.length;c++)var q=a.value[c],g="list"===q.ctype?g||h._helper.isNaN(q):g||m._helper.isNaN(q);return g};h.set=function(a){var g=[],c=0;a=a.value.slice();a.sort(w.compare);for(var q=0;q<a.length;q++)0!==q&&vb([g[g.length-1],a[q]],[]).value||(g[c]=a[q],c++);return{ctype:"list",value:g}};h.maxval=function(a){for(var g=m.zero,c=0;c<a.value.length;c++){var q=a.value[c];"number"===q.ctype&&(g=m.argmax(g,q));"list"===q.ctype&&(g=m.argmax(g,h.maxval(q)))}return g};
+h.maxIndex=function(a,g,c){var q=0;void 0!==c&&(q=c);c=q;for(var b=g(a.value[q]).value.real;q<a.value.length;++q){var d=g(a.value[q]).value.real;d>b&&(c=q,b=d)}return c};h.normalizeMax=function(a){var g=m.inv(h.maxval(a));return m._helper.isFinite(g)?h.scalmult(g,a):a};h.normalizeZ=function(a){var g=m.inv(a.value[2]);return h.scalmult(g,a)};h.dehom=function(a){a=a.value.slice();var g=a.length-1,c=m.inv(a[g]);a.length=g;for(var q=0;q<g;++q)a[q]=m.mult(c,a[q]);return h.turnIntoCSList(a)};h.normalizeAbs=
+function(a){var g=m.inv(h.abs(a));return h.scalmult(g,a)};h.max=function(a,g){if(a.value.length!==g.value.length)return k;for(var c=[],q=0;q<a.value.length;q++)c[q]=w.max(a.value[q],g.value[q]);return{ctype:"list",value:c}};h.min=function(a,g){if(a.value.length!==g.value.length)return k;for(var c=[],q=0;q<a.value.length;q++)c[q]=w.min(a.value[q],g.value[q]);return{ctype:"list",value:c}};h.scaldiv=function(a,g){if("number"!==a.ctype)return k;for(var c=[],q=0;q<g.value.length;q++){var b=g.value[q];
+c[q]="number"===b.ctype?w.div(b,a):"list"===b.ctype?h.scaldiv(a,b):k}return{ctype:"list",value:c}};h.scalmult=function(a,g){if("number"!==a.ctype)return k;for(var c=[],q=0;q<g.value.length;q++){var b=g.value[q];c[q]="number"===b.ctype?w.mult(b,a):"list"===b.ctype?h.scalmult(a,b):k}return{ctype:"list",value:c}};h.add=function(a,g){if(a.value.length!==g.value.length)return k;for(var c=[],q=0;q<a.value.length;q++){var b=a.value[q],d=g.value[q];c[q]="number"===b.ctype&&"number"===d.ctype?w.add(b,d):"list"===
+b.ctype&&"list"===d.ctype?h.add(b,d):k}return{ctype:"list",value:c}};h.sub=function(a,g){if(a.value.length!==g.value.length)return k;for(var c=[],q=0;q<a.value.length;q++){var b=a.value[q],d=g.value[q];c[q]="number"===b.ctype&&"number"===d.ctype?m.sub(b,d):"list"===b.ctype&&"list"===d.ctype?h.sub(b,d):k}return{ctype:"list",value:c}};h.abs2=function(a){for(var g=0,c=0;c<a.value.length;c++){var q=a.value[c];if("number"===q.ctype)g+=m.abs2(q).value.real;else if("list"===q.ctype)g+=h.abs2(q).value.real;
+else return k}return{ctype:"number",value:{real:g,imag:0}}};h.abs=function(a){return m.sqrt(h.abs2(a))};h.normalizeMaxXX=function(a){for(var g=-1E4,c=m.real(1),q=0;q<a.value.length;q++){var b=m.abs(a.value[q]);b.value.real>g&&(c=a.value[q],g=b.value.real)}return h.scaldiv(c,a)};h.recursive=function(a,g){for(var c=[],q=0;q<a.value.length;q++){var b=B(a.value[q]);c[q]="number"===b.ctype?m[g](b):"list"===b.ctype?h[g](b):k}return{ctype:"list",value:c}};h.re=function(a){return h.recursive(a,"re")};h.neg=
+function(a){return h.recursive(a,"neg")};h.im=function(a){return h.recursive(a,"im")};h.conjugate=function(a){return h.recursive(a,"conjugate")};h.transjugate=function(a){return h.transpose(h.conjugate(a))};h.round=function(a){return h.recursive(a,"round")};h.ceil=function(a){return h.recursive(a,"ceil")};h.floor=function(a){return h.recursive(a,"floor")};h._helper.colNumb=function(a){if("list"!==a.ctype)return-1;for(var g=-1,c=0;c<a.value.length;c++){if("list"!==a.value[c].ctype)return-1;if(0===
+c)g=a.value[c].value.length;else if(g!==a.value[c].value.length)return-1}return g};h._helper.isNumberVecN=function(a,g){if("list"!==a.ctype||a.value.length!==g)return!1;for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return!1;return!0};h.isNumberVector=function(a){if("list"!==a.ctype)return{ctype:"boolean",value:!1};for(var g=0;g<a.value.length;g++)if("number"!==a.value[g].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};h.isNumberVectorN=function(a,g){if("list"!==
+a.ctype)return{ctype:"boolean",value:!1};if(a.value)for(var c=0;c<a.value.length;c++)if("number"!==a.value[c].ctype)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};h.isNumberMatrix=function(a){if(-1===h._helper.colNumb(a))return{ctype:"boolean",value:!1};for(var g=0;g<a.value.length;g++)if(!h.isNumberVector(a.value[g]).value)return{ctype:"boolean",value:!1};return{ctype:"boolean",value:!0}};h._helper.isNumberMatrixMN=function(a,g,c){return h.isNumberMatrix(a).value&&a.value.length===
+g&&a.value[0].value.length===c};h.scalproduct=function(a,g){if(a.value.length!==g.value.length)return k;for(var c={ctype:"number",value:{real:0,imag:0}},q=0;q<g.value.length;q++){var b=a.value[q],d=g.value[q];if("number"===b.ctype&&"number"===d.ctype)c=m.add(m.mult(b,d),c);else return k}return c};h.sesquilinearproduct=function(a,g){if(a.value.length!==g.value.length)return k;for(var c=0,q=0,b=0;b<g.value.length;b++)var d=a.value[b].value,h=g.value[b].value,c=c+(d.real*h.real+d.imag*h.imag),q=q+(d.real*
+h.imag-d.imag*h.real);return m.complex(c,q)};h.normSquared=function(a){for(var g=0,c=0;c<a.value.length;c++)var q=a.value[c].value,g=g+(q.real*q.real+q.imag*q.imag);return m.real(g)};h.productMV=function(a,g){if(a.value[0].value.length!==g.value.length)return k;for(var c=[],q=0;q<a.value.length;q++){for(var b={ctype:"number",value:{real:0,imag:0}},d=a.value[q],e=0;e<g.value.length;e++){var f=d.value[e],l=g.value[e];if("number"===f.ctype&&"number"===l.ctype)b=m.add(m.mult(f,l),b);else return k}c[q]=
+b}return h.turnIntoCSList(c)};h.productVM=function(a,g){if(a.value.length!==g.value.length)return k;for(var c=[],q=0;q<g.value[0].value.length;q++){for(var b={ctype:"number",value:{real:0,imag:0}},d=0;d<a.value.length;d++){var e=a.value[d],f=g.value[d].value[q];if("number"===e.ctype&&"number"===f.ctype)b=m.add(m.mult(e,f),b);else return k}c[q]=b}return h.turnIntoCSList(c)};h.productMM=function(a,g){if(a.value[0].value.length!==g.value.length)return k;for(var c=[],q=0;q<a.value.length;q++){var b=h.productVM(a.value[q],
+g);c[q]=b}return h.turnIntoCSList(c)};h.mult=function(a,g){return a.value.length===g.value.length&&h.isNumberVector(a).value&&h.isNumberVector(g).value?h.scalproduct(a,g):h.isNumberMatrix(a).value&&g.value.length===a.value[0].value.length&&h.isNumberVector(g).value?h.productMV(a,g):h.isNumberMatrix(g).value&&a.value.length===g.value.length&&h.isNumberVector(a).value?h.productVM(a,g):h.isNumberMatrix(a).value&&h.isNumberMatrix(g).value&&g.value.length===a.value[0].value.length?h.productMM(a,g):k};
+h.projectiveDistMinScal=function(a,g){var c=h.abs(a),q=h.abs(g);if(0===c.value.real||0===q.value.real)return 0;var b=h.conjugate(g),b=h.scalproduct(a,b),b=m._helper.isAlmostZero(b)?m.real(1):m.div(b,m.abs(b)),c=h.scaldiv(c,a),q=h.scaldiv(q,g),q=h.scalmult(b,q),b=h.abs(h.add(c,q)),q=h.abs(h.sub(c,q));return Math.min(b.value.real,q.value.real)};h.conicDist=function(a,g){var c=u(a),q=u(g);console.log(Z(c),Z(q));return h.projectiveDistMinScal(c,q)};h.crossOperator=function(a){var g=a.value[0],c=a.value[1];
+a=a.value[2];return h.turnIntoCSList([h.turnIntoCSList([m.zero,m.neg(a),c]),h.turnIntoCSList([a,m.zero,m.neg(g)]),h.turnIntoCSList([m.neg(c),g,m.zero])])};h.cross=function(a,g){var c=m.sub(m.mult(a.value[1],g.value[2]),m.mult(a.value[2],g.value[1])),q=m.sub(m.mult(a.value[2],g.value[0]),m.mult(a.value[0],g.value[2])),b=m.sub(m.mult(a.value[0],g.value[1]),m.mult(a.value[1],g.value[0]));return h.turnIntoCSList([c,q,b])};h.crossratio3harm=function(a,g,c,q,b){var d=h.det3(a,c,b),e=h.det3(g,q,b);a=h.det3(a,
+q,b);g=h.det3(g,c,b);d=m.mult(d,e);e=m.mult(a,g);return h.turnIntoCSList([d,e])};h.crossratio3=function(a,g,c,q,b){a=h.crossratio3harm(a,g,c,q,b);return m.div(a.value[0],a.value[1])};h.veronese=function(a){var g=m.mult(a.value[0],a.value[0]),c=m.mult(a.value[1],a.value[1]),q=m.mult(a.value[2],a.value[2]),b=m.mult(a.value[0],a.value[1]),d=m.mult(a.value[0],a.value[2]);a=m.mult(a.value[1],a.value[2]);return h.turnIntoSCList([g,c,q,b,d,a])};h.matrixFromVeronese=function(a){var g=a.value[0],c=a.value[1],
+q=a.value[2],b=m.realmult(.5,a.value[3]),d=m.realmult(.5,a.value[4]);a=m.realmult(.5,a.value[5]);return h.turnIntoCSList([h.turnIntoCSList([g,b,d]),h.turnIntoCSList([b,c,a]),h.turnIntoCSList([d,a,q])])};h.det2=function(a,g){var c=m.mult(a.value[0],g.value[1]);return c=m.sub(c,m.mult(a.value[1],g.value[0]))};h.det3=function(a,g,c){return m.complex(a.value[0].value.real*g.value[1].value.real*c.value[2].value.real-a.value[0].value.imag*g.value[1].value.imag*c.value[2].value.real-a.value[0].value.imag*
+g.value[1].value.real*c.value[2].value.imag-a.value[0].value.real*g.value[1].value.imag*c.value[2].value.imag+a.value[2].value.real*g.value[0].value.real*c.value[1].value.real-a.value[2].value.imag*g.value[0].value.imag*c.value[1].value.real-a.value[2].value.imag*g.value[0].value.real*c.value[1].value.imag-a.value[2].value.real*g.value[0].value.imag*c.value[1].value.imag+a.value[1].value.real*g.value[2].value.real*c.value[0].value.real-a.value[1].value.imag*g.value[2].value.imag*c.value[0].value.real-
+a.value[1].value.imag*g.value[2].value.real*c.value[0].value.imag-a.value[1].value.real*g.value[2].value.imag*c.value[0].value.imag-a.value[0].value.real*g.value[2].value.real*c.value[1].value.real+a.value[0].value.imag*g.value[2].value.imag*c.value[1].value.real+a.value[0].value.imag*g.value[2].value.real*c.value[1].value.imag+a.value[0].value.real*g.value[2].value.imag*c.value[1].value.imag-a.value[2].value.real*g.value[1].value.real*c.value[0].value.real+a.value[2].value.imag*g.value[1].value.imag*
+c.value[0].value.real+a.value[2].value.imag*g.value[1].value.real*c.value[0].value.imag+a.value[2].value.real*g.value[1].value.imag*c.value[0].value.imag-a.value[1].value.real*g.value[0].value.real*c.value[2].value.real+a.value[1].value.imag*g.value[0].value.imag*c.value[2].value.real+a.value[1].value.imag*g.value[0].value.real*c.value[2].value.imag+a.value[1].value.real*g.value[0].value.imag*c.value[2].value.imag,-a.value[0].value.imag*g.value[1].value.imag*c.value[2].value.imag+a.value[0].value.imag*
+g.value[1].value.real*c.value[2].value.real+a.value[0].value.real*g.value[1].value.real*c.value[2].value.imag+a.value[0].value.real*g.value[1].value.imag*c.value[2].value.real-a.value[2].value.imag*g.value[0].value.imag*c.value[1].value.imag+a.value[2].value.imag*g.value[0].value.real*c.value[1].value.real+a.value[2].value.real*g.value[0].value.real*c.value[1].value.imag+a.value[2].value.real*g.value[0].value.imag*c.value[1].value.real-a.value[1].value.imag*g.value[2].value.imag*c.value[0].value.imag+
+a.value[1].value.imag*g.value[2].value.real*c.value[0].value.real+a.value[1].value.real*g.value[2].value.real*c.value[0].value.imag+a.value[1].value.real*g.value[2].value.imag*c.value[0].value.real+a.value[0].value.imag*g.value[2].value.imag*c.value[1].value.imag-a.value[0].value.imag*g.value[2].value.real*c.value[1].value.real-a.value[0].value.real*g.value[2].value.real*c.value[1].value.imag-a.value[0].value.real*g.value[2].value.imag*c.value[1].value.real+a.value[2].value.imag*g.value[1].value.imag*
+c.value[0].value.imag-a.value[2].value.imag*g.value[1].value.real*c.value[0].value.real-a.value[2].value.real*g.value[1].value.real*c.value[0].value.imag-a.value[2].value.real*g.value[1].value.imag*c.value[0].value.real+a.value[1].value.imag*g.value[0].value.imag*c.value[2].value.imag-a.value[1].value.imag*g.value[0].value.real*c.value[2].value.real-a.value[1].value.real*g.value[0].value.real*c.value[2].value.imag-a.value[1].value.real*g.value[0].value.imag*c.value[2].value.real)};h.det4m=function(a){var g=
+a.value,c=g[0].value,q=c[0].value,b=+q.real,d=+q.imag,q=c[1].value,h=+q.real,e=+q.imag,q=c[2].value,f=+q.real,k=+q.imag,q=c[3].value,l=+q.real,n=+q.imag,c=g[1].value,q=c[0].value,p=+q.real,r=+q.imag,q=c[1].value,t=+q.real,v=+q.imag,q=c[2].value,u=+q.real,w=+q.imag,q=c[3].value,c=+q.real,q=+q.imag;a=b*t-d*v-h*p+e*r;var x=b*v+d*t-h*r-e*p,y=b*u-d*w-f*p+k*r,A=b*w+d*u-f*r-k*p,z=b*c-d*q-l*p+n*r,B=b*q+d*c-l*r-n*p,C=h*u-e*w-f*t+k*v,D=h*w+e*u-f*v-k*t,F=h*c-e*q-l*t+n*v,E=h*q+e*c-l*v-n*t,G=f*c-k*q-l*u+n*w,H=
+f*q+k*c-l*w-n*u,c=g[2].value,q=c[0].value,b=+q.real,d=+q.imag,q=c[1].value,h=+q.real,e=+q.imag,q=c[2].value,f=+q.real,k=+q.imag,q=c[3].value,l=+q.real,n=+q.imag,c=g[3].value,q=c[0].value,p=+q.real,r=+q.imag,q=c[1].value,t=+q.real,v=+q.imag,q=c[2].value,u=+q.real,w=+q.imag,q=c[3].value,c=+q.real,q=+q.imag,g=b*t-d*v-h*p+e*r,L=b*v+d*t-h*r-e*p,J=b*u-d*w-f*p+k*r,M=b*w+d*u-f*r-k*p,N=b*c-d*q-l*p+n*r,b=b*q+d*c-l*r-n*p,d=h*u-e*w-f*t+k*v,p=h*w+e*u-f*v-k*t,r=h*c-e*q-l*t+n*v,h=h*q+e*c-l*v-n*t,e=f*c-k*q-l*u+n*
+w,f=f*q+k*c-l*w-n*u;return m.complex(a*e-x*f-y*r+A*h+z*d-B*p+C*N-D*b-F*J+E*M+G*g-H*L,a*f+x*e-y*h-A*r+z*p+B*d+C*b+D*N-F*M-E*J+G*L+H*g)};h.eucangle=function(a,g){var c=h.cross(a,h.linfty),q=h.cross(g,h.linfty),b=h.det3(h.ez,c,h.ii),c=h.det3(h.ez,c,h.jj),d=h.det3(h.ez,q,h.ii),q=h.det3(h.ez,q,h.jj),b=m.div(m.mult(b,q),m.mult(d,c)),b=m.log(b);return b=m.mult(b,m.complex(0,.5))};h.zerovector=function(a){a=Math.floor(a.value.real);for(var g=Array(a),c=0;c<a;c++)g[c]=0;return h.realVector(g)};h.zeromatrix=
+function(a,g){for(var c=Math.floor(a.value.real),q=Array(c),b=0;b<c;b++)q[b]=h.zerovector(g);return h.turnIntoCSList(q)};h.vandermonde=function(a){for(var g=a.value.length,c=h.zeromatrix(g,g),q=0;q<g;q++)for(var b=0;b<g;b++)c.value[q].value[b]=m.pow(a.value[q],m.real(b-1));return c};h.transpose=function(a){for(var g=[],c=a.value[0].value.length,q=a.value.length,b=0;b<c;b++){for(var d=[],e=0;e<q;e++)d[e]=a.value[e].value[b];g[b]=h.turnIntoCSList(d)}return h.turnIntoCSList(g)};h.column=function(a,g){for(var c=
+[],q=a.value.length,b=Math.floor(g.value.real-1),d=0;d<q;d++)c[d]=a.value[d].value[b];return h.turnIntoCSList(c)};h.row=function(a,g){for(var c=[],q=a.value[0].value.length,b=Math.floor(g.value.real-1),d=0;d<q;d++)c[d]=a.value[b].value[d];return h.turnIntoCSList(c)};h.adjoint2=function(a){var g=a.value[0].value[0],c=a.value[1].value[0],q=Array(2);q[0]=h.turnIntoCSList([a.value[1].value[1],m.neg(a.value[0].value[1])]);q[1]=h.turnIntoCSList([m.neg(c),g]);return q=h.turnIntoCSList(q)};h.adjoint3=function(a){var g,
+c,q,b,d,h,e,f,m,k,l,n,p,r,t,v,u;g=a.value[0].value;c=g[0].value;q=c.real;b=c.imag;c=g[1].value;d=c.real;h=c.imag;c=g[2].value;e=c.real;f=c.imag;g=a.value[1].value;c=g[0].value;m=c.real;k=c.imag;c=g[1].value;l=c.real;n=c.imag;c=g[2].value;p=c.real;r=c.imag;g=a.value[2].value;c=g[0].value;a=c.real;t=c.imag;c=g[1].value;v=c.real;u=c.imag;c=g[2].value;g=c.real;c=c.imag;return{ctype:"list",value:[{ctype:"list",value:[{ctype:"number",value:{real:l*g-p*v-n*c+r*u,imag:l*c-p*u-v*r+g*n}},{ctype:"number",value:{real:-d*
+g+e*v+h*c-f*u,imag:-d*c+e*u+v*f-g*h}},{ctype:"number",value:{real:d*p-e*l-h*r+f*n,imag:d*r-e*n-l*f+p*h}}]},{ctype:"list",value:[{ctype:"number",value:{real:-m*g+p*a+k*c-r*t,imag:-m*c+p*t+a*r-g*k}},{ctype:"number",value:{real:q*g-e*a-b*c+f*t,imag:q*c-e*t-a*f+g*b}},{ctype:"number",value:{real:-q*p+e*m+b*r-f*k,imag:-q*r+e*k+m*f-p*b}}]},{ctype:"list",value:[{ctype:"number",value:{real:m*v-l*a-k*u+n*t,imag:m*u-l*t-a*n+v*k}},{ctype:"number",value:{real:-q*v+d*a+b*u-h*t,imag:-q*u+d*t+a*h-v*b}},{ctype:"number",
+value:{real:q*l-d*m-b*n+h*k,imag:q*n-d*k-m*h+l*b}}]}]}};h.inverse=function(a){var g=a.value.length;if(g!==a.value[0].value.length)return console.log("Inverse works only for square matrices"),k;if(2===g)return h.scaldiv(h.det(a),h.adjoint2(a));if(3===g)return h.scaldiv(h.det(a),h.adjoint3(a));g=h.LUdecomp(a);a=a.value.length;var c=m.real(0),q=m.real(1),b=h.zerovector(m.real(a));b.value[0]=q;for(var d=Array(a),e=0;e<a;e++)d[e]=h._helper.LUsolve(g,b),b.value[e]=c,b.value[e+1]=q;d=h.turnIntoCSList(d);
+return d=h.transpose(d)};h.linearsolve=function(a,g){return 2===a.value.length?h.linearsolveCramer2(a,g):3===a.value.length?h.linearsolveCramer3(a,g):h.LUsolve(a,g)};h.getDiag=function(a){if(a.value.length!==a.value[0].value.length)return k;for(var g=Array(a.value.length),c=0;c<a.value.length;c++)g[c]=a.value[c].value[c];return h.turnIntoCSList(g)};h.getSubDiag=function(a){if(a.value.length!==a.value[0].value.length)return k;for(var g=Array(a.value.length-1),c=0;c<a.value.length-1;c++)g[c]=a.value[c+
+1].value[c];return h.turnIntoCSList(g)};h.eig2=function(a){var g=m.add(a.value[0].value[0],a.value[1].value[1]);a=h.det2(a.value[0],a.value[1]);var c=m.mult(g,g),b=g=m.mult(g,m.real(.5));a=m.sqrt(m.sub(m.div(c,m.real(4)),a));g=m.add(g,a);b=m.sub(b,a);return h.turnIntoCSList([g,b])};h.eig=function(a,g){var c=g||!0,b=a,d=m.real(b.value.length),e=d.value.real;m.real(0);var b=h._helper.QRIteration(b)[0],b=h.getDiag(b),b=h.sort1(b),d=h.idMatrix(d,d),f=Array(e),f=h.turnIntoCSList(f);if(c){for(var k,l,n,
+p=0,r=!1,c=0;c<e;c++)r?l=k.value[p]:(k=b.value[c],k=h.sub(a,h.scalmult(k,d)),k=h.nullSpace(k),l=k.value[0],void 0!==l&&(n=l)),void 0===l&&(l=n),1E-8>h.abs(l).value.real&&0===p&&(l=h._helper.inverseIteration(a,b.value[c])),f.value[c]=h._helper.isAlmostZeroVec(l)?l:h.scaldiv(h.abs(l),l),c<e-1&&((r=1E-6>m.abs(m.sub(b.value[c],b.value[c+1])).value.real)?p++:p=0);f=h.transpose(f)}return h.turnIntoCSList([b,f])};h._helper.isNormalMatrix=function(a){return 1E-10>h.abs(h.sub(a,h.transjugate(a))).value.real};
+h._helper.QRIteration=function(a,g){var c,b=a;c=m.real(b.value.length);var d=c.value.real,e=c.value.real;m.real(0);var f;h.idMatrix(c,c);var k=h.zeromatrix(c,c),l=h.idMatrix(c,c),n=g?g:2500,p,r,t,v=0,u=Array(e);for(c=0;c<n;c++){f=h._helper.getBlock(b,[e-2,e-1],[e-2,e-1]);p=h.eig2(f);f=p.value[0];p=p.value[1];h.abs(f);h.abs(p);r=b.value[e-1].value[e-1];t=m.abs(m.sub(r,f)).value.real;r=m.abs(m.sub(r,p)).value.real;p=t<r?f:p;f=h.idMatrix(m.real(e),m.real(e));p=h.scalmult(p,f);f=h.QRdecomp(h.sub(b,p));
+b=w.mult(f.R,f.Q);b=h.add(b,p);f.Q=h._helper.buildBlockMatrix(f.Q,h.idMatrix(m.real(v),m.real(v)));l=w.mult(l,f.Q);if(1E-48>m.abs2(b.value[b.value.length-1].value[b.value[0].value.length-2]).value.real&&1<e){u[d-v-1]=b.value[e-1].value[e-1];for(c=0;c<e;c++)k.value[e-1].value[c]=b.value[e-1].value[c],k.value[c].value[e-1]=b.value[c].value[e-1];b=h._helper.getBlock(b,[0,e-2],[0,e-2]);v++;e--}if(1===e){k.value[0].value[0]=b.value[0].value[0];break}if(h._helper.isUpperTriangular(b)){for(c=0;c<e;c++)k.value[c].value[c]=
+b.value[c].value[c];break}}return[k,l]};h.rank=function(a,g){return h.RRQRdecomp(a,g).rank};h._helper.isAlmostZeroVec=function(a){for(var g=a.value.length,c=0;c<g;c++)if(!m._helper.isAlmostZero(a.value[c]))return!1;return!0};h._helper.isLowerTriangular=function(a){for(var g=a.value.length,c=a.value[0].value.length,b=0;b<g;b++)for(var d=b+1;d<c;d++)if(!m._helper.isAlmostZero(a.value[b].value[d]))return!1;return!0};h._helper.isUpperTriangular=function(a){return h._helper.isLowerTriangular(h.transpose(a))};
+h._helper.isAlmostId=function(a){var g=a.value.length,c=m.real(g);if(g!==a.value[0].value.length)return!1;a=h.sub(a,h.idMatrix(c),c);for(c=0;c<g;c++)for(var b=0;b<g;b++)if(1E-16<m.abs(a.value[c].value[b]).value.real)return!1;return!0};h.nullSpace=function(a,g){var c=a.value.length,b=h.RRQRdecomp(h.transjugate(a),g),d=h.transpose(b.Q),b=c-b.rank.value.real,e=Array(b);d.value.reverse();for(var f,k=0;k<b;k++)f=d.value[k],e[k]=h.scaldiv(h.abs(f),f);e=h.turnIntoCSList(e);return 0<e.value.length?e:h.turnIntoCSList([h.zerovector(m.real(c))])};
+h._helper.isAlmostDiagonal=function(a){var g=a.value.length;m.real(g);m.real(0);if(g!==a.value[0].value.length)return!1;for(var c=0;c<g;c++)for(var b=0;b<g;b++)if(c!==b&&1E-16<m.abs(a.value[c].value[b]).value.real)return!1;return!0};h._helper.inverseIteration=function(a,g){console.log("warning: code untested");for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=2*Math.random()-.5;for(var b=h.realVector(b),c=h.idMatrix(m.real(c),m.real(c)),d=m.add(g,m.real(.1*Math.random()-.5)),e=0;100>e;e++)b=h.scaldiv(h.abs(b),
+b),b=h.LUsolve(h.sub(a,h.scalmult(d,c)),JSON.parse(JSON.stringify(b)));return h.scaldiv(h.abs(b),b)};h._helper.toHessenberg=function(a){var g=JSON.parse(JSON.stringify(a)),c=g.value.length,b=m.real(c-1),d=m.real(c);m.real(1);if(h._helper.isUpperTriangular(g))return[h.idMatrix(b,b),a];var e;a=h.idMatrix(d,d);for(var f,d=1;d<c-1;d++)e=h.column(g,m.real(d)),e.value=e.value.splice(d),f=h.abs2(e).value.real,1E-16<f&&(e=h._helper.getHouseHolder(e),a=w.mult(a,e),g=w.mult(w.mult(e,g),e)),b.value.real--;return[a,
+g]};h._helper.swapEl=function(a,g,c){var b;"[object Array]"===Object.prototype.toString.call(a)?(b=a[g],a[g]=a[c],a[c]=b):"list"===a.ctype&&(b=a.value[g],a.value[g]=a.value[c],a.value[c]=b)};h.RRQRdecomp=function(a,g){var c=Math.sqrt(m.eps);void 0!==g&&(c=.1*g.value.real);var c=c*c,b,d=a.value.length,e=m.real(d),f=m.real(1),k=h._helper.unitvector(m.real(a.value.length),f),l=h.idMatrix(e,e),n=JSON.parse(JSON.stringify(a)),p=h.transpose(a),r=Array(d);for(b=0;b<d;b++)r[b]=h.abs2(p.value[b]);r=h.turnIntoCSList(r);
+p=Array(d);for(b=0;b<d;b++)p[b]=b;b=h.maxIndex(r,m.abs);for(var t=r.value[b],v=0,u=0;1E-16<m.abs2(t).value.real;u++){v++;h._helper.swapColumn(n,u,b);h._helper.swapEl(r,u,b);h._helper.swapEl(p,u,b);b=h._helper.getBlock(n,[u],[u]);b=h.column(b,f);t=h.abs2(b).value.real;1E-8<t&&(b=h._helper.getHouseHolder(b),b=h._helper.buildBlockMatrix(h.idMatrix(m.real(u),m.real(u)),b),l=w.mult(l,h.transjugate(b)),n=w.mult(b,n));for(b=u+1;b<d;b++)r.value[b]=m.sub(r.value[b],m.mult(n.value[u].value[b],m.conjugate(n.value[u].value[b])));
+b=h.maxIndex(r,m.abs2,u+1);t=r.value[b];if(u+2===d){m.abs(t).value.real>c&&v++;break}e=m.sub(e,f);k.value=k.value.splice(0,k.value.length-1)}return{Q:l,R:n,P:h.turnIntoCSList(p),rank:m.real(v)}};h._helper.getHouseHolder=function(a){var g=m.real(a.value.length);if(1E-16>h.abs2(a))return h.idMatrix(g,g);var c,b=m.real(1),d=h._helper.unitvector(m.real(a.value.length),b);c=h._helper.QRgetAlpha(a,0);c=h.sub(a,h.scalmult(c,d));c=h.scaldiv(h.abs(c),c);a=m.div(h.sesquilinearproduct(a,c),h.sesquilinearproduct(c,
+a));g=h.idMatrix(g,g);return g=h.sub(g,h.scalmult(m.add(b,a),h._helper.transposeMult(c,h.conjugate(c))))};h._helper.reOrderbyPivots=function(a,g){for(var c=a.value.length.length,b=h.transpose(a),c=Array(c),d=0;d<g.length;d++)c[g[d]]=b.value[d];c=h.turnIntoCSList(c);return h.transpose(c)};h.QRdecomp=function(a){var g,c=a.value.length,b=m.real(c);if(h._helper.isUpperTriangular(a))return{Q:h.idMatrix(b,b),R:a};var d=m.real(1),e=h._helper.unitvector(m.real(a.value.length),d),f,k=h.idMatrix(b,b);a=JSON.parse(JSON.stringify(a));
+for(var l=0;;l++){g=h._helper.getBlock(a,[l],[l]);g=h.column(g,d);f=h.abs2(g).value.real;1E-8<f&&(g=h._helper.getHouseHolder(g),g=h._helper.buildBlockMatrix(h.idMatrix(m.real(l),m.real(l)),g),k=w.mult(k,h.transjugate(g)),a=w.mult(g,a));if(l+2===c)break;b=m.sub(b,d);e.value=e.value.splice(0,e.value.length-1)}return{Q:k,R:a}};h._helper.swapColumn=function(a,g,c){for(var b,d=0;d<a.value.length;d++)b=a.value[d].value[g],a.value[d].value[g]=a.value[d].value[c],a.value[d].value[c]=b};h._helper.buildBlockMatrix=
+function(a,g){if(0===a.value.length)return g;if(0===g.value.length)return a;for(var c=a.value.length,b=a.value[0].value.length,d=b+g.value[0].value.length,d=h.zeromatrix(m.real(c+g.value.length),m.real(d)),e=0;e<a.value.length;e++)for(var f=0;f<a.value[0].value.length;f++)d.value[e].value[f]=a.value[e].value[f];for(e=0;e<g.value.length;e++)for(f=0;f<g.value[0].value.length;f++)d.value[c+e].value[b+f]=g.value[e].value[f];return d};h._helper.getBlock=function(a,g,c){a=JSON.parse(JSON.stringify(a));
+var b=g[0],d=c[0];g=void 0===g[1]?a.value.length:g[1];c=void 0===c[1]?a.value[0].value.length:c[1];g++;c++;a.value=a.value.slice(b,g);for(b=0;b<a.value.length;b++)a.value[b].value=a.value[b].value.slice(d,c);return a};h._helper.setBlock=function(a,g,c){a=JSON.parse(JSON.stringify(a));var b=c[0];c=c[1];for(var d=g.value.length,h=g.value[0].value.length,e=0;e<d;e++)for(var f=0;f<h;f++)a.value[b+e].value[c+f]=g.value[e].value[f];return a};h._helper.transposeMult=function(a,g){if(a.value.length!==g.value.length)return k;
+for(var c=a.value.length,b=Array(c),d=0;d<c;d++)b[d]=h.scalmult(a.value[d],g);return h.turnIntoCSList(b)};h._helper.QRgetAlpha=function(a,g){return 0>a.value[g].value.real?h.abs(a):m.neg(h.abs(a))};h.LUdecomp=function(a){a=JSON.parse(JSON.stringify(a));var g,c,b,d,h,e=0,f,k=a.value.length,l=k-1,n=Array(k);for(b=0;b<k;++b){h=b;d=a.value[b];f=m.abs(d.value[b]).value.real;for(c=b+1;c<k;++c)g=m.abs(a.value[c].value[b]),f<g.value.real&&(f=g.value.real,h=c);f<m.eps&&console.log("Warning: singular matrix!");
+n[b]=h;h!==b&&(a.value[b]=a.value[h],a.value[h]=d,d=a.value[b],e++);c=d.value[b];for(g=b+1;g<k;++g)a.value[g].value[b]=m.div(a.value[g].value[b],c);for(g=b+1;g<k;++g){h=a.value[g];for(c=b+1;c<l;++c)h.value[c]=m.sub(h.value[c],m.mult(h.value[b],d.value[c])),++c,h.value[c]=m.sub(h.value[c],m.mult(h.value[b],d.value[c]));c===l&&(h.value[c]=m.sub(h.value[c],m.mult(h.value[b],d.value[c])))}}return{LU:a,P:n,TransPos:e}};h.LUsolve=function(a,g){var c=h.LUdecomp(a);return h._helper.LUsolve(c,g)};h._helper.LUsolve=
+function(a,g){var c=JSON.parse(JSON.stringify(g)),b,d=a.LU,h=d.value.length,e=JSON.parse(JSON.stringify(c)),f=a.P,k;for(b=h-1;-1!==b;--b)e.value[b]=c.value[b];for(b=0;b<h;++b)for(c=f[b],f[b]!==b&&(k=e.value[b],e.value[b]=e.value[c],e.value[c]=k),k=d.value[b],c=0;c<b;++c)e.value[b]=m.sub(e.value[b],m.mult(e.value[c],k.value[c]));for(b=h-1;0<=b;--b){k=d.value[b];for(c=b+1;c<h;++c)e.value[b]=m.sub(e.value[b],m.mult(e.value[c],k.value[c]));e.value[b]=m.div(e.value[b],k.value[b])}return e};h.linearsolveCramer2=
+function(a,g){var c=h.column(a,m.real(1)),b=h.column(a,m.real(2)),d=h.det2(c,b);m._helper.isZero(d)&&console.log("A is not regular!");b=h.det2(g,b);b=m.div(b,d);c=h.det2(c,g);c=m.div(c,d);return h.turnIntoCSList([b,c])};h.linearsolveCramer3=function(a,g){var c=h.column(a,m.real(1)),b=h.column(a,m.real(2)),d=h.column(a,m.real(3)),e=h.det3(c,b,d);m._helper.isZero(e)&&console.log("A is not regular!");var f=h.det3(g,b,d),d=h.det3(c,g,d),c=h.det3(c,b,g),f=h.turnIntoCSList([f,d,c]);return f=h.scaldiv(e,
+f)};h.linearsolveCGNR=function(a,g){var c=h.transpose(a),b=w.mult(c,a),c=w.mult(c,g);return h.linearsolveCG(b,c)};h.linearsolveCG=function(a,g){var c,b,d,e,f,k;e=g;b=c=h.sub(g,w.mult(a,g));for(var l=Math.ceil(1.2*a.value.length),n=0;n<l;){n++;f=w.mult(a,b);k=d=h.scalproduct(c,c);d=m.div(d,h.scalproduct(b,f));e=h.add(e,w.mult(d,b));c=h.sub(c,w.mult(d,f));if(h.abs(c).value.real<m.eps)break;d=h.scalproduct(c,c);d=m.div(d,k);b=h.add(c,w.mult(d,b))}n>=l&&console.log("CG did not converge");return e};h.det=
+function(a){if(1===a.value.length)return a.value[0].value[0];if(2===a.value.length)return h.det2(a.value[0],a.value[1]);if(3===a.value.length)return h.det3(a.value[0],a.value[1],a.value[2]);if(4===a.value.length)return h.det4m(a);var g=a.value.length,c=m.real(1),b,d,e=JSON.parse(JSON.stringify(a)),f,k,l,n;for(a=0;a<g-1;a++){d=a;for(b=a+1;b<g;b++)m.abs(e.value[b].value[a]).value.real>m.abs(e.value[d].value[a]).value.real&&(d=b);d!==a&&(b=e.value[d],e.value[d]=e.value[a],e.value[a]=b,c=m.neg(c));f=
+e.value[a];for(b=a+1;b<g;b++){k=e.value[b];l=m.div(k.value[a],f.value[a]);for(d=a+1;d<g-1;d+=2)n=d+1,k.value[d]=m.sub(k.value[d],m.mult(f.value[d],l)),k.value[n]=m.sub(k.value[n],m.mult(f.value[n],l));d!==g&&(k.value[d]=m.sub(k.value[d],m.mult(f.value[d],l)))}if(m._helper.isZero(f.value[a]))return m.real(0);c=m.mult(c,f.value[a])}return m.mult(c,e.value[a].value[a])};h.LUdet=function(a){a=h.LUdecomp(a);for(var g=a.LU,c=g.value.length,b=g.value[0].value[0],d=1;d<c;d++)b=m.mult(b,g.value[d].value[d]);
+1===a.TransPos%2&&(b=m.neg(b));return b};h.getField=function(a,g){var c;if("homog"===g){if(h._helper.isNumberVecN(a,3))return a;if(h._helper.isNumberVecN(a,2))return h.turnIntoCSList([a.value[0],a.value[1],m.real(1)])}if("xy"===g){if(h._helper.isNumberVecN(a,2))return a;if(h._helper.isNumberVecN(a,3))return h.turnIntoCSList([m.div(a.value[0],a.value[2]),m.div(a.value[1],a.value[2])])}if("x"===g&&h.isNumberVector(a)){c=a.value.length;if(0<c&&3!==c)return a.value[0];if(3===c)return"Point"===a.usage?
+m.div(a.value[0],a.value[2]):a.value[0]}if("y"===g&&h.isNumberVector(a)){c=a.value.length;if(1<c&&3!==c)return a.value[1];if(3===c)return"Point"===a.usage?m.div(a.value[1],a.value[2]):a.value[1]}return"z"===g&&h.isNumberVector(a)&&(c=a.value.length,2<c)?a.value[2]:k};h.nil=h.turnIntoCSList([]);h.ofGeos=function(a){return h.turnIntoCSList(a.map(function(a){return{ctype:"geo",value:a}}))};var Na={key:function(a){if("string"===a.ctype)return"s"+a.value.length+":"+a.value+";";if("number"===a.ctype)return"n"+
+a.value.real+","+a.value.imag+";";if("list"===a.ctype)return"l"+a.value.length+":"+a.value.map(Na.key).join(",")+";";if("boolean"===a.ctype)return"b"+a.value+";";if("dict"===a.ctype)return a=Object.keys(a.value).sort(),"d"+a.length+":"+a.join(",")+";";"undefined"!==a.ctype&&wa.err("Bad dictionary key: "+Z(a));return"undef"},create:function(){return{ctype:"dict",value:{}}},clone:function(a){var g=Na.create(),c;for(c in a.value)a.value.hasOwnProperty(c)&&(g.value[c]=a.value[c]);return g},put:function(a,
+g,c){a.value[Na.key(g)]={key:g,value:c}},get:function(a,g,c){return(a=a.value[Na.key(g)])?a.value:c},niceprint:function(a){return"{"+Object.keys(a.value).sort().map(function(g){g=a.value[g];return Z(g.key)+":"+Z(g.value)}).join(", ")+"}"}},w={_helper:{},order:{undefined:0,"boolean":1,number:2,term:3,atomic:4,variable:5,geo:6,string:7,list:8},string:function(a){return{ctype:"string",value:a}},bool:function(a){return{ctype:"boolean",value:a}},not:function(a){return w.bool(!a.value)},isLessThan:function(a,
+g){return-1===w.compare(a,g)},isEqual:function(a,g){return 0===w.compare(a,g)},compareResults:function(a,g){return w.compare(a.result,g.result)},compare:function(a,g){if(a.ctype!==g.ctype)return w.order[a.ctype]-w.order[g.ctype];if("number"===a.ctype)return m._helper.compare(a,g);if("list"===a.ctype)return h._helper.compare(a,g);if("geo"===a.ctype)return a.value.name===g.value.name?0:a.value.name<g.value.name?-1:1;if("string"===a.ctype)return a.value===g.value?0:a.value<g.value?-1:1;if("boolean"===
+a.ctype)return a.value===g.value?0:!1===a.value?-1:1},add:function(a,g){return"void"===a.ctype&&"number"===g.ctype||"void"===a.ctype&&"list"===g.ctype?g:"number"===a.ctype&&"number"===g.ctype?m.add(a,g):"string"===a.ctype||"string"===g.ctype?{ctype:"string",value:Z(a)+Z(g)}:"list"===a.ctype&&"list"===g.ctype?h.add(a,g):k},sub:function(a,g){return"void"===a.ctype&&"number"===g.ctype?m.neg(g):"void"===a.ctype&&"list"===g.ctype?h.neg(g):"number"===a.ctype&&"number"===g.ctype?m.sub(a,g):"list"===a.ctype&&
+"list"===g.ctype?h.sub(a,g):k},mult:function(a,g){return"number"===a.ctype&&"number"===g.ctype?m.mult(a,g):"number"===a.ctype&&"list"===g.ctype?h.scalmult(a,g):"list"===a.ctype&&"number"===g.ctype?h.scalmult(g,a):"list"===a.ctype&&"list"===g.ctype?h.mult(a,g):k},div:function(a,g){return"number"===a.ctype&&"number"===g.ctype?m.div(a,g):"list"===a.ctype&&"number"===g.ctype?h.scaldiv(g,a):k},max:function(a,g){return"number"===a.ctype&&"number"===g.ctype?m.max(a,g):"list"===a.ctype&&"list"===g.ctype?
+h.max(a,g):k},min:function(a,g){return"number"===a.ctype&&"number"===g.ctype?m.min(a,g):"list"===a.ctype&&"list"===g.ctype?h.min(a,g):k},wrap:function(a){if("number"===typeof a)return m.real(a);if("object"===typeof a&&void 0!==a.length){for(var g=[],c=0;c<a.length;c++)g[c]=w.wrap(a[c]);return h.turnIntoCSList(g)}return"string"===typeof a?{ctype:"string",value:a}:"boolean"===typeof a?{ctype:"boolean",value:a}:k},unwrap:function(a){if("object"!==typeof a||null===a)return a;if(Array.isArray(a))return a.map(w.unwrap);
+switch(a.ctype){case "string":case "boolean":return a.value;case "number":return 0===a.value.imag?a.value.real:{r:a.value.real,i:a.value.imag};case "list":return a.value.map(w.unwrap);default:return null}},withUsage:function(a,g){return{ctype:a.ctype,value:a.value,usage:g}},wrapJSON:function(a){switch(typeof a){case "number":return m.real(a);case "string":return w.string(a);case "boolean":return w.bool(a);case "object":if(null===a)return k;if(Array.isArray(a))return h.turnIntoCSList(a.map(w.wrapJSON));
+var g=Na.create(),c;for(c in a)Na.put(g,w.string(c),w.wrapJSON(a[c]));return g;default:return console.log("Failed to convert "+typeof a+" to CindyJS data type"),k}},identity:function(a){return a},deeplyEqual:function(a,g){if("object"!==typeof a||"object"!==typeof g||null===a||null===g)return a===g;var c=0,b;for(b in a)if(++c,!(b in g&&w.deeplyEqual(a[b],g[b])))return!1;for(b in g)--c;return 0===c},DeepCloneJSON:function(a){var g,c,b;g=Array.isArray(a)?[]:{};for(b in a)c=a[b],g[b]="object"===typeof c&&
+null!==c?w.DeepCloneJSON(c):c;return g}},db={},Q={};Q[":"]=C(":");Q["\u00b0"]=function(a,g){var c=B(a[0]);return"number"===c.ctype&&"void"===a[1].ctype?w.withUsage(m.realmult(Math.PI/180,c),"Angle"):k};Q._=vc;Q["^"]=Uc;Q["\u221a"]=function(a,g){return"void"===a[0].ctype?t.sqrt$1([a[1]],g):k};Q["*"]=Sc;Q["\u00d7"]=$c;Q["/"]=Tc;Q["+"]=Rc;Q["-"]=jc;Q["!"]=function(a,g){var c=B(a[1]);return"void"===a[0].ctype&&"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};Q["=="]=vb;Q["~="]=hc;Q["~<"]=function(a,
+g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real<=-m.eps}:k};Q["~>"]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>=m.eps}:k};Q["=:="]=C("=:=");Q[">="]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&
+m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>=b.value}:k};Q["<="]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<=b.value}:k};Q["~>="]=function(a,g){var c=B(a[0]),
+b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>-m.eps}:k};Q["~<="]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real<m.eps}:k};Q[">"]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?
+{ctype:"boolean",value:c.value.real>b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>b.value}:k};Q["<"]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<b.value}:k};Q["<>"]=Oc;Q["\u2208"]=function(a,g){var c=z(a[0]),b=z(a[1]);return"list"===b.ctype?h.contains(b,
+c):k};Q["\u2209"]=function(a,g){var c=z(a[0]),b=z(a[1]);return"list"===b.ctype?w.not(h.contains(b,c)):k};Q["&"]=Pc;Q["%"]=Qc;Q["!="]=Oc;Q["~!="]=function(a,g){return w.not(hc(a,g))};Q[".."]=function(a,g){var c=z(a[0]),b=z(a[1]);return"number"===c.ctype&&"number"===b.ctype?h.sequence(c,b):k};Q["++"]=ad;Q["--"]=cd;Q["~~"]=bd;Q[":>"]=dd;Q["<:"]=ed;Q["="]=ab;Q[":="]=function(a,g,c){g="undefined"===a[1].ctype;if("undefined"===a[0].ctype||g)return k;if("function"===a[0].ctype){g=a[0].oper;var b=a[0].args,
+d=a[1],h=1;if(db.hasOwnProperty(g)){h=db[g];if(h.definer===c)return k;h=h.generation+1}db[g]={oper:g,body:d,arglist:b,definer:c,generation:h}}"variable"===a[0].ctype&&J.setvar(a[0].name,a[1]);return k};Q[":=_"]=function(a,g){if("void"!==a[1].ctype)return k;"function"===a[0].ctype&&delete db[a[0].oper];return k};Q["::="]=C("::=");Q[";"]=function(a,g){var c="void"===a[0].ctype,b="void"===a[1].ctype;if(c&&b)return k;if(!c&&b)return z(a[0]);c||b||z(a[0]);return b?k:z(a[1])};var t={},D={evaluate:function(a,
+g,c){if(db.hasOwnProperty(a)){a=db[a];if(void 0===a)g=k;else{var b=[];for(c=0;c<a.arglist.length;c++)b[c]=z(g[c]);for(c=0;c<a.arglist.length;c++)J.newvar(a.arglist[c].name),J.setvar(a.arglist[c].name,b[c]);J.pushVstack("*");g=z(a.body);J.cleanVstack();for(c=0;c<a.arglist.length;c++)J.removevar(a.arglist[c].name)}return g}if(b=t[a])return b(g,c);var d=a.lastIndexOf("$");if(-1!==d&&(d=a.substr(0,d),b=t[d]))return b(g,c);wa.err("Called undefined function "+d+" (as "+a+")");return k},equals:function(a,
+g){return"number"===a.ctype&&"number"===g.ctype?{ctype:"boolean",value:a.value.real===g.value.real&&a.value.imag===g.value.imag}:"string"===a.ctype&&"string"===g.ctype||"boolean"===a.ctype&&"boolean"===g.ctype?{ctype:"boolean",value:a.value===g.value}:"list"===a.ctype&&"list"===g.ctype?h.equals(a,g):"geo"===a.ctype&&"geo"===g.ctype?{ctype:"boolean",value:a.value===g.value}:{ctype:"boolean",value:!1}}},J={};J.vars=function(){var a={pi:m.real(Math.PI),"\u03c0":m.real(Math.PI),i:m.complex(0,1),"true":w.bool(!0),
+"false":w.bool(!1),"#":k,nil:h.turnIntoCSList([]),newline:w.string("\n"),tab:w.string("\t")},g=[],c;for(c in a)g[c]=[a[c]];return g}();J.isVariable=function(a){return this.vars.hasOwnProperty(a)};J.create=function(a){if(this.vars.hasOwnProperty(a))return this.vars[a];var g=[null];return this.vars[a]=g};J.newvar=function(a){a=this.vars[a];a.push(k);return a};J.removevar=function(a){var g=this.vars[a];0===g.length&&console.error("Removing non-existing "+a);g.pop();0===g.length&&console.warn("Removing last "+
+a)};J.setvar=function(a,g){var c=this.vars[a];0===c.length&&console.error("Setting non-existing variable "+a);void 0===g&&(console.error("Setting variable "+a+" to undefined value"),g=k);if("undefined"===g.ctype)c[c.length-1]=g;else{var b=g;null===b&&(b=k);c[c.length-1]=b}};J.undefinedWarning={};J.getvar=function(a){var g=this.vars[a]||[];0===g.length&&console.error("Getting non-existing variable "+a);g=g[g.length-1];if(null===g){if(v.csnames.hasOwnProperty(a))return{ctype:"geo",value:v.csnames[a]};
+console&&console.log&&void 0===this.undefinedWarning[a]&&(this.undefinedWarning[a]=!0,console.log("Warning: Accessing undefined variable: "+a));return k}return g};J.dump=function(a){var g=this.vars[a];console.log("*** Dump "+a);for(a=0;a<g.length;a++)console.log(a+":> "+Z(g[a]))};J.vstack=[];J.pushVstack=function(a){this.vstack.push(a)};J.popVstack=function(){this.vstack.pop()};J.cleanVstack=function(){for(var a=this.vstack;0<a.length&&"*"!==a[a.length-1];)this.removevar(a[a.length-1]),a.pop();0<
+a.length&&a.pop()};var ta={generalFields:{color:"color",colorhsb:"",size:"size",alpha:"alpha",fillcolor:"fillcolor",fillalpha:"fillalpha",isshowing:"isshowing",visible:"visible",name:"name",caption:"caption",trace:"",tracelength:"",selected:"",labeled:"labeled",labelled:"labeled"},getGeoField:function(a,g){return"undefined"!==typeof v.csnames[a]?ta.getField(v.csnames[a],g):k},setGeoField:function(a,g,c){return"undefined"!==typeof v.csnames[a]?ta.setField(v.csnames[a],g,c):k},getField:function(a,g){var c;
+if("P"===a.kind){if("xy"===g)return c=h.dehom(a.homog),w.withUsage(c,"Point");if("homog"===g)return w.withUsage(a.homog,"Point");if("x"===g)return m.div(a.homog.value[0],a.homog.value[2]);if("y"===g)return m.div(a.homog.value[1],a.homog.value[2])}if("L"===a.kind||"S"===a.kind){if("homog"===g)return w.withUsage(a.homog,"Line");if("angle"===g)return c=h.eucangle(h.ey,a.homog),w.withUsage(c,"Angle");if("slope"===g)return m.neg(m.div(a.homog.value[0],a.homog.value[1]))}if("Tr"===a.kind&&"matrix"===g)return a.matrix;
+if("C"===a.kind){if("radius"===g){var b=a.matrix;c=b.value[0].value[0];var d=b.value[0].value[2],e=b.value[1].value[2],b=b.value[2].value[2];m.mult(c,c);d=m.div(d,c);e=m.div(e,c);c=m.div(b,c);return c=m.sqrt(m.sub(m.add(m.mult(d,d),m.mult(e,e)),c))}if("size"===g)return a.size;if("matrix"===g)return a.matrix;if("center"===g)return c=l._helper.CenterOfConic(a.matrix),c=h.dehom(c),w.withUsage(c,"Point");if("dualMatrix"===g)return h.normalizeMax(h.adjoint3(a.matrix))}if("Text"===a.kind){if("pressed"===
+g)return a.checkbox?w.bool(a.checkbox.checked):w.bool(!1);if("xy"===g)return c=h.dehom(a.homog),w.withUsage(c,"Point");if("homog"===g)return w.withUsage(a.homog,"Point");if("x"===g)return m.div(a.homog.value[0],a.homog.value[2]);if("y"===g)return m.div(a.homog.value[1],a.homog.value[2])}if("trace"===g)return w.bool(!!a.drawtrace);if(ta.generalFields[g])return(c=a[ta.generalFields[g]])&&c.ctype?c:"object"!==typeof c?w.wrap(c):k;if(a.behavior){if("mass"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.mass);
+if("radius"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.radius);if("charge"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.charge);if("friction"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.friction);if("vx"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.vx);if("vy"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.vy);if("v"===g&&"Mass"===a.behavior.type)return h.realVector([a.behavior.vx,a.behavior.vy]);if("fx"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.fx);
+if("fy"===g&&"Mass"===a.behavior.type)return m.real(a.behavior.fy);if("f"===g&&"Mass"===a.behavior.type)return h.realVector([a.behavior.fx,a.behavior.fy]);if("ldiff"===g&&"Spring"===a.behavior.type)return m.real(a.behavior.ldiff)}c=l[a.type]["get_"+g];return"function"===typeof c?c(a):k},setField:function(a,g,c){"color"===g&&h._helper.isNumberVecN(c,3)&&(a.color=c);"size"===g&&"number"===c.ctype&&(a.size=c);"alpha"===g&&"number"===c.ctype&&(a.alpha=c);"fillcolor"===g&&h._helper.isNumberVecN(c,3)&&
+(a.fillcolor=c);"fillalpha"===g&&"number"===c.ctype&&(a.fillalpha=c);"visible"===g&&"boolean"===c.ctype&&(a.visible=c.value);"pinned"===g&&"boolean"===c.ctype&&(a.pinned=c.value);"labeled"!==g&&"labelled"!==g||"boolean"!==c.ctype||(a.labeled=c.value);"printlabel"===g&&(a.printname=Z(c));"trace"===g&&"boolean"===c.ctype&&(c.value&&!a.drawtrace?(a.drawtrace=!0,yd(a)):a.drawtrace=c.value);"P"===a.kind&&a.movable&&("xy"===g&&h._helper.isNumberVecN(c,2)&&La(a,h.turnIntoCSList([c.value[0],c.value[1],m.real(1)]),
+"homog"),"xy"===g&&h._helper.isNumberVecN(c,3)&&La(a,c,"homog"),"x"===g&&"number"===c.ctype&&La(a,h.turnIntoCSList([m.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]),"homog"),"y"===g&&"number"===c.ctype&&La(a,h.turnIntoCSList([a.homog.value[0],m.mult(c,a.homog.value[2]),a.homog.value[2]]),"homog"),"homog"===g&&h._helper.isNumberVecN(c,3)&&La(a,c,"homog"));"homog"===g&&"L"===a.kind&&a.movable&&h._helper.isNumberVecN(c,3)&&La(a,c,"homog");"Text"===a.kind&&("pressed"===g&&"boolean"===c.ctype&&
+a.checkbox&&(a.checkbox.checked=c.value),a.movable&&("xy"===g?h._helper.isNumberVecN(c,2)?a.homog=h.turnIntoCSList([c.value[0],c.value[1],m.real(1)]):h._helper.isNumberVecN(c,3)&&(a.homog=c):"homog"===g&&h._helper.isNumberVecN(c,3)?a.homog=c:"x"===g&&"number"===c.ctype?a.homog=h.turnIntoCSList([m.mult(c,a.homog.value[2]),a.homog.value[1],a.homog.value[2]]):"y"===g&&"number"===c.ctype&&(a.homog=h.turnIntoCSList([a.homog.value[0],m.mult(c,a.homog.value[2]),a.homog.value[2]]))));a.behavior&&("mass"===
+g&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"mass"===g&&"Sun"===a.behavior.type&&"number"===c.ctype&&(a.behavior.mass=c.value.real),"friction"===g&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.friction=c.value.real),"charge"===g&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.charge=c.value.real),"radius"===g&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.radius=c.value.real),"vx"===g&&"Mass"===a.behavior.type&&"number"===c.ctype&&
+(a.behavior.vx=c.value.real),"vy"===g&&"Mass"===a.behavior.type&&"number"===c.ctype&&(a.behavior.vy=c.value.real),"v"===g&&"Mass"===a.behavior.type&&h._helper.isNumberVecN(c,2)&&(a.behavior.vx=c.value[0].value.real,a.behavior.vy=c.value[1].value.real));g=l[a.type]["set_"+g];if("function"===typeof g)return g(a,c)},getuserData:function(a,g){var c;a.userData&&a.userData[g]&&(c=a.userData[g]);return c&&c.ctype?c:"object"!==typeof c?w.wrap(c):k},setuserData:function(a,g,c){a.userData||(a.userData={});
+a.userData[g]=c}};t.version$0=function(a,g){var c=["CindyJS"].concat(ve);return h.turnIntoCSList(c.map(w.wrap))};t.clearconsole$0=function(a,g){wa.clear()};t.err$1=function(a,g){var c="",b;"variable"===a[0].ctype?(c=a[0].name,b=J.getvar(a[0].name)):b=a[0];b=c+" ===> "+Z(z(b));ka(b);return k};t.errc$1=function(a,g){var c;"variable"===a[0].ctype?(c=z(J.getvar(a[0].name)),console.log(a[0].name+" ===> "+Z(c))):(c=z(a[0]),console.log(" ===> "+Z(c)));return k};t.print$1=function(a,g){wa.out(Z(z(a[0])),
+!0);return k};t.println$1=function(a,g){wa.out(Z(z(a[0])));return k};t.assert$2=function(a,g){var c=z(a[0]);if("boolean"===c.ctype){if(!1===c.value)return t.println$1([a[1]],g)}else ka("Condition for assert is not boolean");return k};t.dump$1=function(a,g){console.log(JSON.stringify(a[0]));return k};t.repeat$2=function(a,g){return t.repeat$3([a[0],null,a[1]],g)};t.repeat$3=function(a,g){var c=B(a[0]),b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);if("number"!==c.ctype)return k;var c=Math.round(c.value.real),
+d=1,h=1,e=c+1,f=!1,m=!1,l=!1,n;void 0!==g.start&&(n=z(g.start),"number"===n.ctype&&(f=!0,h=n.value.real));void 0!==g.step&&(n=z(g.step),"number"===n.ctype&&(l=!0,d=n.value.real));void 0!==g.stop&&(n=z(g.stop),"number"===n.ctype&&(m=!0,e=n.value.real));!f||m||l||(e=d*c+h);f||!m||l||(h=-d*(c-1)+e,e+=d);f||m||!l||(e=d*c+h);f&&m&&!l&&(d=(e-h)/(c-1),e+=d);f&&!m&&l&&(e=d*c+h);!f&&m&&l&&(h=-d*(c-1)+e,e+=d);f&&m&&l&&(e+=d);(h<=e&&0<d||h>=e&&0>d)&&f&&m&&l&&(c=Math.floor((e-h)/d));J.newvar(b);e=k;for(f=0;f<
+c;f++)J.setvar(b,{ctype:"number",value:{real:f*d+h,imag:0}}),e=z(a[2]);J.removevar(b);return e};t.while$2=function(a,g){for(var c=a[1],b=a[0],d=z(b),h=k;"list"!==d.ctype&&d.value;)h=z(c),d=z(b);return h};t.apply$2=function(a,g){return t.apply$3([a[0],null,a[1]],g)};t.apply$3=function(a,g){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);for(var h=0;h<c.length;h++)J.setvar(b,c[h]),d[h]=z(a[2]);J.removevar(b);return{ctype:"list",
+value:d}};t.forall$2=function(a,g){return t.forall$3([a[0],null,a[1]],g)};t.forall$3=function(a,g){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);c=c.value;J.newvar(b);for(var d,h=0;h<c.length;h++)J.setvar(b,c[h]),d=z(a[2]);J.removevar(b);return d};t.select$2=function(a,g){return t.select$3([a[0],null,a[1]],g)};t.select$3=function(a,g){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);
+var c=c.value,d=[];J.newvar(b);for(var h=0,e=0;e<c.length;e++){J.setvar(b,c[e]);var f=z(a[2]);"boolean"===f.ctype&&!0===f.value&&(d[h]=c[e],h++)}J.removevar(b);return{ctype:"list",value:d}};t.flatten$1=function(a,g){function c(a,g){return-1===g||"list"!==a.ctype?a:[].concat.apply([],a.value.map(function(a){return c(a,g-1)}))}var b=B(a[0]);if("list"!==b.ctype)return b;var d=g.levels;void 0===d?d=1:(d=z(d),d="number"===d.ctype?d.value.real:"string"===d.ctype&&"all"===d.value?-2:1);return{ctype:"list",
+value:c(b,d)}};t.createvar$1=function(a,g){"variable"===a[0].ctype&&J.newvar(a[0].name);return k};t.local=function(a,g){for(var c=0;c<a.length;c++)"variable"===a[c].ctype&&J.newvar(a[c].name);return k};t.removevar$1=function(a,g){var c=z(a[0]);"variable"===a[0].ctype&&J.removevar(a[0].name);return c};t.release=function(a,g){if(0===a.length)return k;for(var c=z(a[a.length-1]),b=0;b<a.length;b++)"variable"===a[b].ctype&&J.removevar(a[b].name);return c};t.regional=function(a,g){for(var c=0;c<a.length;c++)if("variable"===
+a[c].ctype){var b=a[c].name;J.newvar(b);J.pushVstack(b)}return k};t.genList=function(a,g){return h.turnIntoCSList(a.map(z))};D.assigntake=function(a,g){var c=a.args[0],b=z(c),d=B(a.args[1]),e=k;if("list"===b.ctype||"string"===b.ctype)d=Math.floor(d.value.real),0>d&&(d=b.value.length+d+1),0<d&&d<=b.value.length&&("list"===b.ctype?(e=b.value.slice(),e[d-1]=z(g),e=h.turnIntoCSList(e),b.userData&&(e.userData=b.userData)):(b=b.value,b=b.substring(0,d-1)+Z(z(g))+b.substring(d,b.length),e=w.string(b)));
+ab([c,e])};D.assigndot=function(a,g){var c=z(a.obj),b=a.key;"geo"===c.ctype&&b&&ta.setField(c.value,b,B(g));return k};D.assigncolon=function(a,g){var c=a.obj,b=z(c),d=Z(z(a.key));"_?_"===d&&(d=void 0);if("geo"===b.ctype&&d)ta.setuserData(b.value,d,B(g));else if("list"===b.ctype||"string"===b.ctype&&d){var h={},e;for(e in b)h[e]=b[e];if(h.userData){var b={},f;for(f in h.userData)b[f]=h.userData[f];h.userData=b}else h.userData={};h.userData[d]=B(g);ab([c,h])}else d?console.log("User data can only be assigned to geo objects and lists."):
+console.log("Key is undefined");return k};D.assignlist=function(a,g){var c=a.length,b=g.length;b<c&&(c=b);for(b=0;b<c;b++)ab([a[b],g[b]],[])};t.if$2=function(a,g){return t.if$3(a,g)};t.if$3=function(a,g){var c=B(a[0]);if("boolean"===c.ctype){if(!0===c.value)return z(a[1]);if(3===a.length)return z(a[2])}else ka("Condition for if is not boolean");return k};t.and$2=Pc;t.or$2=Qc;t.xor$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"boolean"===c.ctype&&"boolean"===b.ctype?{ctype:"boolean",value:c.value!==
+b.value}:k};t.not$1=function(a,g){var c=B(a[0]);return"boolean"===c.ctype?{ctype:"boolean",value:!c.value}:k};D.genericListMathGen=function(a,g,c){t[a+"$1"]=function(a,b){var q=z(a[0]);if("list"!==q.ctype)return k;q=q.value;if(0===q.length)return c;for(var d=q[0],h=1;h<q.length;h++)d=g(d,q[h]);return d};var b=a+"$3";t[a+"$2"]=function(a,c){return t[b]([a[0],null,a[1]])};t[b]=function(a,b){var q=B(a[0]);if("list"!==q.ctype)return k;q=q.value;if(0===q.length)return c;var d="#";null!==a[1]&&"variable"===
+a[1].ctype&&(d=a[1].name);J.newvar(d);J.setvar(d,q[0]);for(var h=z(a[2]),e=1;e<q.length;e++){J.setvar(d,q[e]);var f=z(a[2]),h=g(h,f)}J.removevar(d);return h}};D.genericListMathGen("product",w.mult,m.real(1));D.genericListMathGen("sum",w.add,m.real(0));D.genericListMathGen("max",w.max,k);D.genericListMathGen("min",w.min,k);t.max$2=function(a,g){var c=B(a[0]);if("list"===c.ctype)return t.max$3([c,null,a[1]]);var b=B(a[1]);return t.max$1([h.turnIntoCSList([c,b])])};t.min$2=function(a,g){var c=B(a[0]);
+if("list"===c.ctype)return t.min$3([c,null,a[1]]);var b=B(a[1]);return t.min$1([h.turnIntoCSList([c,b])])};t.add$2=Rc;t.sub$2=jc;t.mult$2=Sc;t.div$2=Tc;t.mod$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?m.mod(c,b):k};t.pow$2=Uc;t.exp$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.exp(c):k};t.sin$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.sin(c):k};t.sqrt$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.sqrt(c):k};D.laguerre=function(a,
+g,c){if("list"!==a.ctype)return k;var b=a.value.length-1,d;for(d=0;d<=b;d++)if("number"!==a.value[d].ctype)return k;if("number"!==g.ctype)return k;for(var h=[1,.3141,.5926,.5358,.9793,.2385,.6264,.3383,.2795,.0288],e,f,l,n=1;n<=c;n++){f=l=m.zero;e=a.value[b];for(d=b-1;0<=d;d--)l=m.add(f,m.mult(l,g)),f=m.add(e,m.mult(f,g)),e=m.add(a.value[d],m.mult(e,g));if(m._helper.isLessThan(m.abs(e),m.real(1E-14)))break;d=m.div(f,e);f=m.mult(d,d);e=m.sub(f,m.div(m.mult(m.real(2),l),e));l=m.sqrt(m.mult(m.real(b-
+1),m.sub(m.mult(m.real(b),e),f)));e=m.add(d,l);d=m.sub(d,l);m._helper.isLessThan(m.abs(e),m.abs(d))&&(e=d);d=m._helper.isLessThan(m.real(1E-14),m.abs(e))?m.div(m.real(b),e):m.mult(m.add(m.abs(g),m.one),m.complex(Math.cos(n),Math.sin(n)));if(m._helper.isLessThan(m.abs(d),m.real(1E-14)))break;0===n%20&&n<c-19&&(d=m.mult(d,m.real(h[Math.floor(n/20)])));g=m.sub(g,d)}return g};D.quadratic_roots=function(a){if("list"!==a.ctype)return k;var g=a.value[2],c=a.value[1];a=a.value[0];if(m._helper.isZero(a))return[m.zero,
+m.neg(m.div(c,g))];var b=m.sqrt(m.sub(m.mult(c,c),m.mult(m.real(4),m.mult(g,a))));0<=m.re(c)&&(b=m.neg(b));return[m.div(m.sub(b,c),m.mult(m.real(2),g)),m.div(m.mult(m.real(2),a),m.sub(b,c))]};D.roots=function(a){var g=[],c=a,b=a.value.length-1;if(0>=b)return h.turnIntoCSList([]);if(m._helper.isZero(a.value[b]))return g=D.roots(h.turnIntoCSList(a.value.slice(0,b))),h.append(g,m.infinity);if(1===b)g[0]=m.neg(m.div(a.value[0],a.value[1]));else if(2===b)g=D.quadratic_roots(a);else{for(var d=0;d<b-2;d++){g[d]=
+D.laguerre(a,m.zero,200);g[d]=D.laguerre(c,g[d],1);var e=[];e[b-d]=a.value[b-d];for(var f=b-d;0<f;f--)e[f-1]=m.add(a.value[f-1],m.mult(e[f],g[d]));e.shift();a=h.turnIntoCSList(e)}a=D.quadratic_roots(a);g[b-2]=a[0];g[b-1]=a[1]}return h.turnIntoCSList(g)};t.roots$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){for(var b=0;b<c.value.length;b++)if("number"!==c.value[b].ctype)return k;c=D.roots(c);return h.sort1(c)}return k};t.autodiff$3=function(a,g){var c="x",b;if("function"===a[0].ctype)b=db[a[0].oper].body,
+c=a[0].args[0].name;else if("function"===typeof a[0].impl)b=a[0];else return ka("could not parse function"),k;var d=B(a[1]),h=B(a[2]);if(1>h.value.real)return ka("grade cant be < 1"),k;h=m.add(h,m.real(1));return P.autodiff(b,c,d,h)};t.cos$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.cos(c):k};t.tan$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.tan(c):k};t.arccos$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.arccos(c):k};t.arcsin$1=function(a,g){var c=B(a[0]);return"number"===
+c.ctype?m.arcsin(c):k};t.arctan$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.arctan(c):k};t.arctan2$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?m.arctan2(c,b):k};t.arctan2$1=function(a,g){var c=B(a[0]);if("list"===c.ctype&&2===c.value.length){if(c=c.value,"number"===c[0].ctype&&"number"===c[1].ctype)return t.arctan2$2(c,g)}else if("number"===c.ctype)return m.arctan2(c);return k};t.log$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.log(c):
+k};D.recursiveGen=function(a){var g=m[a],c=h[a];t[a+"$1"]=function(a,b){var d=B(a[0]);return"number"===d.ctype?g(d):"list"===d.ctype?c(d):k}};D.recursiveGen("im");D.recursiveGen("re");D.recursiveGen("conjugate");D.recursiveGen("round");D.recursiveGen("ceil");D.recursiveGen("floor");D.recursiveGen("abs");t.abs_infix=t.abs$1;t.random$0=function(a,g){return m.real(m._helper.rand())};t.random$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.complex(c.value.real*m._helper.rand(),c.value.imag*m._helper.rand()):
+k};t.seedrandom$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&m._helper.seedrandom(c.value.real);return k};t.randomnormal$0=function(a,g){return m.real(m._helper.randnormal())};t.randominteger$1=function(a,g){var c=B(a[0]);if("number"===c.ctype){var b=c.value.real|0,c=c.value.imag|0,b=b*m._helper.rand()|0,c=c*m._helper.rand()|0;return m.complex(b,c)}return k};t.randomint$1=t.randominteger$1;t.randombool$0=function(a,g){return.5<m._helper.rand()?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};
+t.isreal$1=function(a,g){var c=z(a[0]);return"number"===c.ctype&&m._helper.isAlmostReal(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isinteger$1=function(a,g){var c=z(a[0]);return"number"===c.ctype&&m._helper.isAlmostReal(c)&&c.value.real===Math.floor(c.value.real)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iseven$1=function(a,g){var c=z(a[0]);return"number"===c.ctype&&m._helper.isAlmostReal(c)&&c.value.real/2===Math.floor(c.value.real/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",
+value:!1}};t.isodd$1=function(a,g){var c=z(a[0]);return"number"===c.ctype&&m._helper.isAlmostReal(c)&&(c.value.real-1)/2===Math.floor((c.value.real-1)/2)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscomplex$1=function(a,g){return"number"===z(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isstring$1=function(a,g){return"string"===z(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.islist$1=function(a,g){return"list"===z(a[0]).ctype?{ctype:"boolean",
+value:!0}:{ctype:"boolean",value:!1}};t.ismatrix$1=function(a,g){var c=z(a[0]);return-1!==h._helper.colNumb(c)?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.iscircle$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&"C"===c.value.kind&&"Circle"===c.value.matrix.usage?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isconic$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&"C"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isline$1=function(a,g){var c=
+z(a[0]);return"geo"===c.ctype&&"L"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ispoint$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&"P"===c.value.kind?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isgeometric$1=function(a,g){return"geo"===z(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isnumbermatrix$1=function(a,g){var c=z(a[0]);return h.isNumberMatrix(c)};t.isnumbervector$1=function(a,g){var c=z(a[0]);return h.isNumberVector(c)};
+t.issun$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Sun"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.ismass$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Mass"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isspring$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Spring"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",
+value:!1}};t.isbouncer$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&void 0!==c.value.behavior&&"Bouncer"===c.value.behavior.type?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};t.isundefined$1=function(a,g){return"undefined"===z(a[0]).ctype?{ctype:"boolean",value:!0}:{ctype:"boolean",value:!1}};var Od={ArcBy3:"Arc",CenterOfConic:"Center",ConicBy1p4l:"Conic1P4L",ConicBy4p1l:"Conic4P1L",ConicBy5lines:"Conic5L",ConicBy2Foci1P:"ConicFoci",ConicFromPrincipalDirections:"ConicPrincipleDirs",
+Free:"FreePoint",PolarOfLine:"PolarLine",PolarOfPoint:"PolarPoint",PointOnSegment:"PointOnLine",Button:"Text",ToggleButton:"Text",TrReflectionL:"TrReflection",TrReflectionP:"TrReflection",TrReflectionC:"TrReflection",TrTranslation:"TrProjection",TrSimilarity:"TrProjection",TrAffine:"TrProjection",TransformP:"Transform",TransformL:"Transform",TransformSegment:"Transform",TransformS:"Transform",TransformPolygon:"Transform",TransformArc:"Transform",TransformConic:"Transform",TransformC:"Transform",TrMoebiusP:"Transform",
+TrMoebiusL:"Transform",TrMoebiusSegment:"Transform",TrMoebiusS:"Transform",TrMoebiusPolygon:"Transform",TrMoebiusArc:"Transform",TrMoebiusCircle:"Transform",TrMoebiusC:"Transform",TrInverseMoebius:"TrInverse",Perp:"Orthogonal",Para:"Parallel",AngleBisector:"AngularBisector",IntersectLC:"IntersectionConicLine",IntersectCirCir:"IntersectionCircleCircle",OtherPointOnCircle:"PointOnCircle"};t.algorithm$1=function(a,g){var c=z(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=B(g.compatibility);"string"===
+d.ctype&&/^cinderella$/i.test(d.value)&&(/^Select/.test(b)&&(c=v.csnames[c.args[0]],b=c.type),Od.hasOwnProperty(b)?b=Od[b]:"CircleMr"===b&&(b=c.pinned?"CircleByFixedRadius":"CircleByRadius"));return w.string(b)}return k};t.inputs$1=function(a,g){var c=z(a[0]);if("geo"===c.ctype){var c=c.value,b=c.type,d=[];c.args&&(d=c.args.map(function(a){return{ctype:"geo",value:v.csnames[a]}}));if(/^Select/.test(b)||l[b].isMovable)switch(c.kind){case "P":case "L":d.push(c.homog);break;case "C":d.push(c.matrix)}return h.turnIntoCSList(d)}return k};
+t.moveto$2=function(a,g){var c=z(a[0]),b=B(a[1]);"geo"===c.ctype&&(c=c.value,h._helper.isNumberVecN(b,2)?ta.setField(c,"xy",b):h._helper.isNumberVecN(b,3)&&ta.setField(c,"homog",b));return k};t.continuefromhere$0=function(a,g){zb();return k};t.matrixrowcolumn$1=function(a,g){var c=z(a[0]);return-1!==h._helper.colNumb(c)?h.realVector([c.value.length,c.value[0].value.length]):k};t.rowmatrix$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.turnIntoCSList([c]):k};t.columnmatrix$1=function(a,g){var c=
+z(a[0]);return"list"===c.ctype?h.turnIntoCSList(c.value.map(function(a){return h.turnIntoCSList([a])})):k};t.submatrix$3=function(a,g){var c=z(a[0]),b=z(a[1]),d=z(a[2]);if("list"===c.ctype&&"number"===b.ctype&&"number"===d.ctype){var e=Math.round(b.value.real),b=Math.round(d.value.real),c=c.value.slice();0<b&&b<=c.length&&c.splice(b-1,1);var f=!0,c=c.map(function(a){if("list"!==a.ctype)f=!1;else return a=a.value.slice(),0<e&&e<=a.length&&a.splice(e-1,1),h.turnIntoCSList(a)});return f?h.turnIntoCSList(c):
+k}return k};t.complex$1=function(a,g){var c,b,d;d=B(a[0]);if("list"===d.ctype&&h.isNumberVector(d)){if(2===d.value.length)return c=d.value[0],b=d.value[1],m.complex(c.value.real-b.value.imag,b.value.real+c.value.imag);if(3===d.value.length)return c=d.value[0],b=d.value[1],d=d.value[2],c=m.div(c,d),b=m.div(b,d),m.complex(c.value.real-b.value.imag,b.value.real+c.value.imag)}return k};t.gauss$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?h.realVector([c.value.real,c.value.imag]):k};t.cross$2=
+$c;t.crossratio$4=function(a,g){var c=z(a[0]),b=z(a[1]),d=z(a[2]),e=z(a[3]),f=K(c),l=K(b),n=K(d),p=K(e);return f!==k&&l!==k&&n!==k&&p!==k?h.crossratio3(f,l,n,p,h.ii):"number"===c.ctype&&"number"===b.ctype&&"number"===d.ctype&&"number"===e.ctype?m.div(m.mult(m.sub(c,d),m.sub(b,e)),m.mult(m.sub(c,e),m.sub(b,d))):k};t.para$2=function(a,g){var c=B(a[0]),b=B(a[1]),d=K(c),e=K(b);if(c!==k&&b!==k){var b=b.usage,f=d,m=e;if("Line"===c.usage||"Point"===b)f=e,m=d;c=h.cross(h.cross(h.linfty,m),f);return w.withUsage(c,
+"Line")}return k};t.perp$2=function(a,g){var c=B(a[0]),b=B(a[1]),d=K(c),e=K(b);if(c!==k&&b!==k){var f=b.usage||e.usage,b=d,l=e;if("Line"===(c.usage||d.usage)||"Point"===f)b=e,l=d;c=h.turnIntoCSList([l.value[0],l.value[1],m.zero]);c=h.cross(c,b);return w.withUsage(c,"Line")}return k};t.perp$1=function(a,g){var c=B(a[0]);return h._helper.isNumberVecN(c,2)?h.turnIntoCSList([m.neg(c.value[1]),c.value[0]]):k};t.parallel$2=t.para$2;t.perpendicular$2=t.perp$2;t.perpendicular$1=t.perp$1;t.meet$2=function(a,
+g){var c=K(a[0]),b=K(a[1]);return c!==k&&b!==k?(c=h.cross(c,b),w.withUsage(c,"Point")):k};t.join$2=function(a,g){var c=K(a[0]),b=K(a[1]);return c!==k&&b!==k?(c=h.cross(c,b),w.withUsage(c,"Line")):k};t.dist$2=function(a,g){var c=B(a[0]),b=B(a[1]),c=jc([c,b],[]);return t.abs$1([c],[])};t.dist_infix=t.dist$2;t.point$1=function(a,g){var c=z(a[0]);return h._helper.isNumberVecN(c,3)||h._helper.isNumberVecN(c,2)?w.withUsage(c,"Point"):c};t.line$1=function(a,g){var c=z(a[0]);return h._helper.isNumberVecN(c,
+3)?w.withUsage(c,"Line"):c};t.det$3=function(a,g){var c=K(a[0]),b=K(a[1]),d=K(a[2]);if(c!==k&&b!==k&&d!==k)return h.det3(c,b,d)};t.det$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);if(-1!==b&&b===c.value.length)return h.det(c)}return k};t.eig$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);if(-1!==b&&b===c.value.length)return h.eig(c)}return k};t.eigenvalues$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);
+if(-1!==b&&b===c.value.length)return h.eig(c,!1).value[0]}return k};t.rank$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);if(-1!==b&&b===c.value.length)return h.rank(c,g.precision)}return k};t.kernel$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);if(-1!==b&&b===c.value.length)return c=h.nullSpace(c,g.precision),h.transpose(c)}return k};t.eigenvectors$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);if(-1!==
+b&&b===c.value.length)return h.eig(c).value[1]}return k};t.area$3=function(a,g){var c=K(a[0]),b=K(a[1]),d=K(a[2]);if(c!==k&&b!==k&&d!==k){var e=c.value[2],f=b.value[2],l=d.value[2];if(!m._helper.isAlmostZero(e)&&!m._helper.isAlmostZero(f)&&!m._helper.isAlmostZero(l))return c=h.scaldiv(e,c),b=h.scaldiv(f,b),d=h.scaldiv(l,d),c=h.det3(c,b,d),m.realmult(.5,c)}return k};t.inverse$1=function(a,g){var c=B(a[0]);if("list"===c.ctype){var b=h._helper.colNumb(c);if(-1!==b&&b===c.value.length)return h.inverse(c)}return k};
+t.linearsolve$2=function(a,g){var c=B(a[0]),b=B(a[1]);if("list"===c.ctype){var d=h._helper.colNumb(c);if(-1!==d&&d===c.value.length&&h._helper.isNumberVecN(b,d))return h.linearsolve(c,b)}return k};var be=[[[]],[[0]],[[0,1],[1,0]],[[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]],[[0,1,2,3],[0,1,3,2],[0,2,1,3],[0,2,3,1],[0,3,1,2],[0,3,2,1],[1,0,2,3],[1,0,3,2],[1,2,0,3],[1,2,3,0],[1,3,0,2],[1,3,2,0],[2,0,1,3],[2,0,3,1],[2,1,0,3],[2,1,3,0],[2,3,0,1],[2,3,1,0],[3,0,1,2],[3,0,2,1],[3,1,0,2],[3,1,2,0],
+[3,2,0,1],[3,2,1,0]]];t.mincostmatching$1=function(a,g){var c=z(a[0]);if(h.isNumberMatrix(c).value){var b=c.value.length,d=h._helper.colNumb(c),e=b<d?d:b,f,l,n=Array(e);for(f=0;f<e;++f)for(n[f]=Array(e),l=0;l<e;++l)n[f][l]=f<b&&l<d?c.value[f].value[l].value.real:0;c=uc(n);e=Array(b);for(f=0;f<b;++f)l=c[f],e[f]=l<d?m.real(l+1):m.real(0);return h.turnIntoCSList(e)}return k};t.take$2=vc;t.length$1=function(a,g){var c=z(a[0]);return"list"===c.ctype||"string"===c.ctype?m.real(c.value.length):k};t.pairs$1=
+function(a,g){var c=z(a[0]);return"list"===c.ctype?h.pairs(c):k};t.triples$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.triples(c):k};t.cycle$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.cycle(c):k};t.consecutive$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.consecutive(c):k};t.reverse$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.reverse(c):k};t.directproduct$2=function(a,g){var c=z(a[0]),b=z(a[1]);return"list"===c.ctype&&"list"===b.ctype?h.directproduct(c,b):
+k};t.concat$2=ad;t.common$2=bd;t.remove$2=cd;t.append$2=dd;t.prepend$2=ed;t.contains$2=function(a,g){var c=z(a[0]),b=z(a[1]);return"list"===c.ctype?h.contains(c,b):k};t.sort$2=function(a,g){return t.sort$3([a[0],null,a[1]],g)};t.sort$3=function(a,g){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);var h;for(h=0;h<c.length;h++)J.setvar(b,c[h]),d[h]={val:c[h],result:z(a[2])};J.removevar(b);d.sort(w.compareResults);
+b=[];for(h=0;h<c.length;h++)b[h]=d[h].val;return{ctype:"list",value:b}};t.sort$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.sort1(c):k};t.set$1=function(a,g){var c=z(a[0]);return"list"===c.ctype?h.set(c):k};t.combinations$2=function(a,g){function c(a,g){a===f?n.push(h.turnIntoCSList(l.slice())):g<e&&(l[a]=b.value[g],c(a+1,g+1),c(a,g+1))}var b=z(a[0]),d=z(a[1]),e,f,l,n;if("number"===d.ctype){f=d.value.real|0;if("number"===b.ctype){e=b.value.real|0;e-f<f&&(f=e-f);if(0>f)return m.real(0);if(0===
+f)return m.real(1);if(1===f)return b;for(var p=d=1,r=1;r<=f;++r)var t=e-f+r|0,u=r|0,v=wc(t,u)|0,t=t/v|0,u=u/v|0,v=wc(d,u)|0,d=d/v|0,u=u/v|0,v=wc(t,p)|0,t=t/v|0,p=p/v|0,d=d*t|0,p=p*u|0;return m.real(d/p)}if("list"===b.ctype){e=b.value.length;if(0>f||f>e)return h.turnIntoCSList([]);if(0===f)return h.turnIntoCSList([h.turnIntoCSList([])]);if(f===e)return h.turnIntoCSList([b]);n=[];l=Array(f);c(0,0);return h.turnIntoCSList(n)}}return k};t.zeromatrix$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===
+c.ctype&&"number"===b.ctype?h.zeromatrix(c,b):k};t.zerovector$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?h.zerovector(c):k};t.transpose$1=function(a,g){var c=B(a[0]);return"list"===c.ctype&&-1!==h._helper.colNumb(c)?h.transpose(c):k};t.row$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==h._helper.colNumb(c)?h.row(c,b):k};t.column$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==h._helper.colNumb(c)?h.column(c,
+b):k};t.dict$0=function(a,g){var c=Na.create(),b;for(b in g)g.hasOwnProperty(b)&&Na.put(c,w.string(b),z(g[b]));return c};t.put$3=function(a,g){var c=z(a[0]),b=z(a[1]),d=z(a[2]);return"dict"===c.ctype?(c=Na.clone(c),Na.put(c,b,d),c):k};t.get$2=function(a,g){var c=z(a[0]),b=z(a[1]);return"dict"===c.ctype?Na.get(c,b,k):k};t.red$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?h.realVector([Math.min(1,Math.max(0,c.value.real)),0,0]):k};t.green$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?
+h.realVector([0,Math.min(1,Math.max(0,c.value.real)),0]):k};t.blue$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?h.realVector([0,0,Math.min(1,Math.max(0,c.value.real))]):k};t.gray$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?(c=Math.min(1,Math.max(0,c.value.real)),h.realVector([c,c,c])):k};t.grey$1=t.gray$1;D.HSVtoRGB=function(a,g,c){var b,d,e,f,k,m;a&&void 0===g&&void 0===c&&(g=a.s,c=a.v,a=a.h);f=Math.floor(6*a);k=6*a-f;a=c*(1-g);m=c*(1-k*g);g=c*(1-(1-k)*g);switch(f%6){case 0:b=
+c;d=g;e=a;break;case 1:b=m;d=c;e=a;break;case 2:b=a;d=c;e=g;break;case 3:b=a;d=m;e=c;break;case 4:b=g;d=a;e=c;break;case 5:b=c,d=a,e=m}return h.realVector([b,d,e])};t.hue$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?(c=c.value.real,c-=Math.floor(c),D.HSVtoRGB(c,1,1)):k};D.shapeconvert=function(a){var g,c;if("circle"===a.type){g=a.value.value[0];g=w.div(g,g.value[2]);var b=g.value[0].value.real,d=g.value[1].value.real;a=a.value.value[1].value.real;c=Array(125);var h=2*Math.PI/125;for(g=0;125>
+g;g++)c[g]={X:b+Math.cos(g*h)*a,Y:d+Math.sin(g*h)*a};return[c]}if("polygon"===a.type){b=[];for(g=0;g<a.value.length;g++){d=a.value[g];c=[];for(h=0;h<d.length;h++)c[h]={X:d[h].X,Y:d[h].Y};b[g]=c}return b}};D.shapeop=function(a,g,c){a=D.shapeconvert(a);var b=D.shapeconvert(g);ClipperLib.JS.ScaleUpPaths(a,1E3);ClipperLib.JS.ScaleUpPaths(b,1E3);g=new ClipperLib.Clipper;g.AddPaths(a,ClipperLib.PolyType.ptSubject,!0);g.AddPaths(b,ClipperLib.PolyType.ptClip,!0);var b=a=ClipperLib.PolyFillType.pftNonZero,
+d=new ClipperLib.Paths;g.Execute(c,d,a,b);ClipperLib.JS.ScaleDownPaths(d,1E3);return{ctype:"shape",type:"polygon",value:d}};D.shapecommon=function(a,g){return D.shapeop(a,g,ClipperLib.ClipType.ctIntersection)};D.shaperemove=function(a,g){return D.shapeop(a,g,ClipperLib.ClipType.ctDifference)};D.shapeconcat=function(a,g){return D.shapeop(a,g,ClipperLib.ClipType.ctUnion)};t.key$0=function(a,g){return{ctype:"string",value:Yc}};t.keycode$0=function(a,g){return m.real(Zc)};t.mouse$0=function(a,g){return h.realVector([ra[0],
+ra[1]])};t.mover$0=function(a,g){if(ja&&ja.mover)return{ctype:"geo",value:ja.mover};console.log("Not moving anything at the moment");return k};t.translate$1=function(a,g){var c=B(a[0]);"list"===c.ctype&&h.isNumberVector(c)&&2===c.value.length&&y.translate(c.value[0].value.real,c.value[1].value.real);return k};t.rotate$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&y.rotate(c.value.real);return k};t.scale$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&y.scale(c.value.real);return k};t.greset$0=
+function(a,g){var c=eb.stack.length;y.greset();for(var b=0;b<c;b++)A.restore();return k};t.gsave$0=function(a,g){y.gsave();A.save();return k};t.grestore$0=function(a,g){y.grestore();A.restore();return k};t.color$1=function(a,g){var c=B(a[0]);"list"===c.ctype&&h.isNumberVector(c).value&&y.setcolor(c);return k};t.linecolor$1=function(a,g){var c=B(a[0]);"list"===c.ctype&&h.isNumberVector(c).value&&y.setlinecolor(c);return k};t.pointcolor$1=function(a,g){var c=B(a[0]);"list"===c.ctype&&h.isNumberVector(c).value&&
+y.setpointcolor(c);return k};t.alpha$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&y.setalpha(c);return k};t.pointsize$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&y.setpointsize(c);return k};t.linesize$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&y.setlinesize(c);return k};t.textsize$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&y.settextsize(c);return k};t.playanimation$0=function(a,g){M();return k};t.pauseanimation$0=function(a,g){Ga();return k};t.stopanimation$0=function(a,g){Ha();
+return k};t.text$1=function(a,g){var c=B(a[0]);return w.string(Z(c))};t.replace$3=function(a,g){var c=z(a[0]),b=z(a[1]),d=z(a[2]);if("string"===c.ctype&&"string"===b.ctype&&"string"===d.ctype)return c=c.value,b=b.value.replace(/[^A-Za-z0-9]/g,"\\$&"),d=d.value.replace(/\$/g,"$$$$"),c=c.replace(new RegExp(b,"g"),d),{ctype:"string",value:c}};t.replace$2=function(a,g){function c(a,c,g){var h="";d=b=-1;for(var e=0;e<c.length;e++){var f=c[e][0],k=a.indexOf(f,g);-1!==k&&(-1===b?(h=f,b=k,d=e):k<b&&(h=f,
+b=k,d=e))}return h}var b,d,h,e=z(a[0]);h=z(a[1]);if("string"===e.ctype&&"list"===h.ctype){for(var e=e.value,f=[],m=0;m<h.value.length;m++){var l=h.value[m];"list"===l.ctype&&2===l.value.length&&"string"===l.value[0].ctype&&"string"===l.value[1].ctype&&(f[f.length]=[l.value[0].value,l.value[1].value])}b=-1;for(h=c(e,f,0);-1!==b;)e=e.substring(0,b)+f[d][1]+e.substring(b+h.length,e.length),h=b+f[d][1].length,h=c(e,f,h);return{ctype:"string",value:e}}return k};t.substring$3=function(a,g){var c=z(a[0]),
+b=B(a[1]),d=B(a[2]);return"string"===c.ctype&&"number"===b.ctype&&"number"===d.ctype?{ctype:"string",value:c.value.substring(Math.floor(b.value.real),Math.floor(d.value.real))}:k};t.tokenize$2=function(a,g){var c=z(a[0]),b=z(a[1]);if("string"===c.ctype&&"string"===b.ctype)return t.tokenize$2([c,h.turnIntoCSList([b])],g);if("string"===c.ctype&&"list"===b.ctype){c=c.value;if(0===b.value.length){b=!0;if(void 0!==g.autoconvert){var d=z(g.autoconvert);"boolean"===d.ctype&&(b=d.value)}return b&&""!==c&&
+(b=Number(c),!isNaN(b))?m.real(b):w.string(c)}var d=b.value[0],e=h.turnIntoCSList(b.value.slice(1)),c=c.split(d.value);return h.turnIntoCSList(c.map(function(a){return t.tokenize$2([w.string(a),e],g)}))}return k};t.indexof$2=function(a,g){var c=z(a[0]),b=z(a[1]);return"string"===c.ctype&&"string"===b.ctype?(c=c.value.indexOf(b.value),m.real(c+1)):k};t.indexof$3=function(a,g){var c=z(a[0]),b=z(a[1]),d=z(a[2]);return"string"===c.ctype&&"string"===b.ctype&&"number"===d.ctype?(c=c.value.indexOf(b.value,
+Math.round(d.value.real)-1),m.real(c+1)):k};t.parse$1=function(a,g){var c=z(a[0]);return"string"===c.ctype?(c=Ua(c.value),z(c)):k};t.unicode$1=function(a,g){var c;c=z(a[0]);var b=16;if(g.base){var d=z(g.base);"number"===d.ctype&&(b=d.value.real)}if("string"===c.ctype)c=parseInt(c.value,b);else if("number"===c.ctype)c=c.value.real;else return k;"undefined"!==typeof String.fromCodePoint?c=String.fromCodePoint(c):65535>=c?c=String.fromCharCode(c):(c-=65536,c=String.fromCharCode((c>>10)+55296,(c&1023)+
+56320));return w.string(c)};t.international$1=function(a,g){return t.international$2([a[0],null],g)};t.international$2=function(a,g){var c=z(a[0]);if("string"!==c.ctype)return k;var b=(p.translations||{})[p.language||"en"]||{};if(!b.hasOwnProperty(c.value))return c;var d=b[c.value];if("string"===typeof d)return w.string(d);if(null===a[1])return c;var h=z(a[1]),h="number"===h.ctype?h.value.real:0,b=(b._pluralFormFunction||ce)(h);return b<d.length?w.string(d[b]):c};t.currentlanguage$0=function(a,g){return w.string(p.language||
+"en")};D.basismap=function(a,g,c,b){var d=h.turnIntoCSList([a,g,c]),d=h.adjoint3(h.transpose(d));b=w.mult(d,b);d=h.turnIntoCSList([w.mult(b.value[0],a),w.mult(b.value[1],g),w.mult(b.value[2],c)]);return h.transpose(d)};t.map$8=function(a,g){var c=K(a[0]),b=K(a[1]),d=K(a[2]),e=K(a[3]),f=K(a[4]),m=K(a[5]),l=K(a[6]),n=K(a[7]);return f!==k&&m!==k&&l!==k&&n!==k&&c!==k&&b!==k&&d!==k&&e!==k?(f=D.basismap(f,m,l,n),c=D.basismap(c,b,d,e),c=w.mult(f,h.adjoint3(c)),h.normalizeMax(c)):k};t.map$6=function(a,g){var c=
+K(a[0]),b=K(a[1]),d=K(a[2]),e=h.realVector([0,0,1]),f=h.cross,m=f(f(d,f(e,f(c,b))),f(b,f(e,f(c,d)))),l=K(a[3]),n=K(a[4]),p=K(a[5]),e=f(f(p,f(e,f(l,n))),f(n,f(e,f(l,p))));return l!==k&&n!==k&&p!==k&&e!==k&&c!==k&&b!==k&&d!==k&&m!==k?(l=D.basismap(l,n,p,e),c=D.basismap(c,b,d,m),c=w.mult(l,h.adjoint3(c)),h.normalizeMax(c)):k};t.map$4=function(a,g){var c=h.ii,b=h.jj,d=K(a[0]),e=K(a[1]),f=K(a[2]),m=K(a[3]);return f!==k&&m!==k&&d!==k&&e!==k?(f=D.basismap(f,m,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,h.adjoint3(c)),
+h.normalizeMax(c)):k};t.map$2=function(a,g){var c=h.ii,b=h.jj,d=K(a[0]),e=w.add(h.realVector([1,0,0]),d),f=K(a[1]),m=w.add(h.realVector([1,0,0]),f);return f!==k&&m!==k&&d!==k&&e!==k?(f=D.basismap(f,m,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,h.adjoint3(c)),h.normalizeMax(c)):k};t.pointreflect$1=function(a,g){var c=h.ii,b=h.jj,d=K(a[0]),e=w.add(h.realVector([1,0,0]),d),f=w.add(h.realVector([-1,0,0]),d);return f!==k&&d!==k&&e!==k?(f=D.basismap(d,f,c,b),c=D.basismap(d,e,c,b),c=w.mult(f,h.adjoint3(c)),h.normalizeMax(c)):
+k};t.linereflect$1=function(a,g){var c=h.ii,b=h.jj,d=K(a[0]),e=h.realVector([Math.random(),Math.random(),Math.random()]),f=h.realVector([Math.random(),Math.random(),Math.random()]),e=h.cross(e,d),f=h.cross(f,d);return d!==k&&e!==k?(d=D.basismap(e,f,c,b),c=D.basismap(e,f,b,c),c=w.mult(d,h.adjoint3(c)),h.normalizeMax(c)):k};D.extractPointVec=function(a){var g={ok:!1};if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return g.x=ta.getField(c,"x"),g.y=ta.getField(c,"y"),g.z=m.real(1),g.ok=!0,g}if("list"!==
+a.ctype)return g;var b=a.value;if(2===b.length&&(a=b[0],c=b[1],"number"===a.ctype&&"number"===c.ctype))return g.x=a,g.y=c,g.z=m.real(1),g.ok=!0,g;3===b.length&&(a=b[0],c=b[1],b=b[2],"number"===a.ctype&&"number"===c.ctype&&"number"===b.ctype&&(g.x=m.div(a,b),g.y=m.div(c,b),g.z=m.real(1),g.ok=!0));return g};t.polygon$1=function(a,g){var c=z(a[0]);if("list"===c.ctype){for(var b=[],d=0;d<c.value.length;d++){var h=D.extractPoint(c.value[d]);if(!h.ok)return k;b[d]={X:h.x,Y:h.y}}return{ctype:"shape",type:"polygon",
+value:[b]}}return k};t.circle$2=function(a,g){var c=B(a[0]),b=B(a[1]),c=D.extractPointVec(c);if(!c.ok||"number"!==b.ctype)return k;c=h.turnIntoCSList([c.x,c.y,c.z]);return{ctype:"shape",type:"circle",value:h.turnIntoCSList([c,b])}};t.screen$0=function(a,g){var c=y.drawingstate.initialmatrix,b=function(a,g){var b=a-c.tx,d=g+c.ty;return{X:(b*c.d-d*c.b)/c.det,Y:-(-b*c.c+d*c.a)/c.det}};return{ctype:"shape",type:"polygon",value:[[b(0,0),b(ca,0),b(ca,da),b(0,da)]]}};t.halfplane$2=function(a,g){var c=B(a[0]),
+b=B(a[1]),d=K(c),e=K(b);if(c!==k&&b!==k){var f=b.usage,b=d,l=e;if("Line"===c.usage||"Point"===f)b=e,l=d;c=h.turnIntoCSList([l.value[0],l.value[1],m.zero]);c=h.cross(c,b);c=h.cross(l,c);c=w.div(c,c.value[2]);b=w.div(b,b.value[2]);b=h.sub(b,c);l=h.abs(b);b=w.div(b,l);l=c.value[0].value.real;c=c.value[1].value.real;d=1E3*b.value[0].value.real;b=1E3*b.value[1].value.real;return{ctype:"shape",type:"polygon",value:[[{X:l+b/2,Y:c-d/2},{X:l+b/2+d,Y:c-d/2+b},{X:l-b/2+d,Y:c+d/2+b},{X:l-b/2,Y:c+d/2}]]}}return k};
+t.element$1=function(a,g){var c=z(a[0]);return"string"===c.ctype&&v.csnames.hasOwnProperty(c.value)?{ctype:"geo",value:v.csnames[c.value]}:k};D.all$1=function(a,g){var c=z(a[0]);return"geo"===c.ctype&&c.value.incidences?h.ofGeos(c.value.incidences.map(function(a){return v.csnames[a]}).filter(g)):h.nil};t.allpoints$0=function(a,g){return h.ofGeos(v.points)};t.allpoints$1=function(a,g){return D.all$1(a,function(a){return"P"===a.kind})};t.allmasses$0=function(a,g){return h.ofGeos(ma)};t.allmasses$1=
+function(a,g){return D.all$1(a,function(a){return"P"===a.kind&&a.behavior&&"Mass"===a.behavior.type})};t.allsprings$0=function(a,g){return h.ofGeos(Hc)};t.allsprings$1=function(a,g){return D.all$1(a,function(a){return"S"===a.kind&&a.behavior&&"Spring"===a.behavior.type})};t.alllines$0=function(a,g){return h.ofGeos(v.lines)};t.alllines$1=function(a,g){return D.all$1(a,function(a){return"L"===a.kind||"S"===a.kind})};t.allsegments$0=function(a,g){return h.ofGeos(v.lines.filter(function(a){return"S"===
+a.kind}))};t.allsegments$1=function(a,g){return D.all$1(a,function(a){return"S"===a.kind})};t.allconics$0=function(a,g){return h.ofGeos(v.conics)};t.allconics$1=function(a,g){return D.all$1(a,function(a){return"C"===a.kind})};t.allcircles$0=function(a,g){return h.ofGeos(v.conics.filter(function(a){return"Circle"===a.matrix.usage}))};t.allcircles$1=function(a,g){return D.all$1(a,function(a){return"C"===a.kind&&"Circle"===a.matrix.usage})};t.allelements$0=function(a,g){return h.ofGeos(v.gslp)};t.allelements$1=
+function(a,g){return D.all$1(a,function(a){return!0})};t.elementsatmouse$0=function(a,g){var c=h.realVector([ra[0],ra[1],1]),b=function(a){if(m._helper.isAlmostZero(a.value[2]))return Infinity;a=h.normalizeZ(a);return h.abs(h.sub(a,c)).value.real},d=function(a){a=h.turnIntoCSList([a.value[0],a.value[1],m.zero]);return h.normalizeMax(h.cross(c,a))},e=function(a){var g=w.mult(a.matrix,c),g=d(g);a=l._helper.IntersectLC(g,a.matrix).map(function(a){return b(a)});return.5>Math.min(a[0],a[1])},f=v.points.filter(function(a){return.5>
+b(a.homog)}),k=v.lines.filter(function(a){var g;g=d(a.homog);g=h.normalizeMax(h.cross(a.homog,g));if((g=.5>b(g))&&"S"===a.kind){var e=a.homog,e=h.turnIntoCSList([e.value[0],e.value[1],m.zero]);a=h.crossratio3(a.farpoint,a.startpos,a.endpos,c,e).value.real;if(0>a||1<a)g=!1}return g}),n=v.conics.filter(function(a){var g=e(a);if(g&&a.isArc){var b=h.crossratio3harm(a.startPoint,a.endPoint,a.viaPoint,c,h.ii);a=b.value[0];b=b.value[1];m._helper.isAlmostZero(a)?(a=m.div(a,b),b=m.real(1)):(b=m.div(b,a),a=
+m.real(1));var d=h.abs(h.turnIntoCSList([b,a]));a=m.div(a,d);b=m.div(b,d);b=m.mult(b,a);0>a.value.real&&(b=m.neg(b));0>b.value.real&&(g=!1)}return g}),f=f.concat(k,n);return h.ofGeos(f)};t.incidences$1=t.allelements$1;t.createpoint$2=function(a,g){var c=z(a[0]),b=K(a[1]);return"string"!==c.ctype?(ka("Name must be a string"),k):"list"!==b.ctype&&h.isNumberVector(b)?(ka("Position must be a number vector"),k):Ka({name:c.value,type:"Free",labeled:!0,pos:b})};t.create$3=function(a,g){var c=z(a[0]),b=z(a[1]),
+d=z(a[2]),e,f;if("string"===c.ctype)e=c.value;else{if("list"!==c.ctype)return ka("Names must be a string or a list of strings"),k;if(1!==c.value.length){e=w.string(c.value.map(function(a){return a.value}).join("__"));e=t.create$3([e,b,d],g);if(e!==k)for(b=w.string(e.kind.replace(/^(.*)s$/,"Select$1")),d=h.turnIntoCSList([w.string(e.name)]),f=0;f<c.value.length;++f)t.create$3([c.value[f],b,d],{index:m.real(f+1)});return e}if("string"!==c.value[0].ctype)return ka("Element of names list must be a string"),
+k;e=c.value[0].value}if("string"!==b.ctype)return ka("Type must be a string"),k;if("list"!==d.ctype)return ka("Arguments must be a list"),k;if(!l.hasOwnProperty(b.value)&&!Ac.hasOwnProperty(b.value)&&!zd.hasOwnProperty(b.value))return ka("Invalid geometric operation: '"+b.value+"'"),k;var c=[],n=null;for(f=0;f<d.value.length;f++){var p=d.value[f];if("string"===p.ctype)c.push(p.value);else if("geo"===p.ctype)c.push(p.value.name);else if(n=K(p),n===k)return ka("Unknown argument type"),k}e={name:e,type:b.value,
+labeled:!0};n&&(e.pos=n);0<c.length&&(e.args=c);b=B(g.index);"number"===b.ctype&&(e.index=b.value.real|0);return Ka(e)};t.javascript$1=function(a,g){var c=z(a[0]);"string"===c.ctype&&(new Function(c.value)).call(sa);return k};t.use$1=function(a,g){function c(a,c,g){t[a.toLowerCase()+"$"+c]=g}var b=z(a[0]);if("string"===b.ctype){var b=b.value,d;p.plugins&&(d=p.plugins[b]);d||(d=va._pluginRegistry[b]);if(d)return d({instance:sa,config:p,nada:k,evaluate:z,extractPoint:D.extractPoint,evaluateAndVal:B,
+defineFunction:c,addShutdownHook:jb.push.bind(jb),addAutoCleaningEventListener:H,getVariable:J.getvar.bind(J),getInitialMatrix:function(){return y.drawingstate.initialmatrix},setTextRenderer:function(a,c){Jc=a;c&&(Bd=c)},getImage:function(a,c){"string"===typeof a&&(a=w.string(a));var g=Ja(a);if(!g)return null;!c&&g.cdyUpdate&&g.cdyUpdate();return g},getMyfunction:function(a){return db.hasOwnProperty(a)?db[a]:null}}),{ctype:"boolean",value:!0};ka("Plugin "+b+" not found");return{ctype:"boolean",value:!1}}return k};
+t.format$2=function(a,g){function c(a){a=a.toFixed(e);var c;do c=a,a=a.substring(0,a.length-1);while(""!==a&&"-"!==a&&+a===+c);return""+c}function b(a){var g;return"number"===a.ctype?(g=c(a.value.real),a=c(a.value.imag),g="0"===a?g:"-"===a.substring(0,1)?g+" - i*"+a.substring(1):g+" + i*"+a,{ctype:"string",value:g}):"list"===a.ctype?{ctype:"list",value:a.value.map(b)}:{ctype:"string",value:Z(a).toString()}}var d=B(a[0]),h=B(a[1]),e;return"number"!==d.ctype&&"list"!==d.ctype||"number"!==h.ctype?k:
+(e=Math.max(0,Math.min(20,Math.round(h.value.real))),b(d))};Date.now||(Date.now=function(){return(new Date).getTime()});var Pd=0;t.timestamp$0=function(a,g){return m.real(Date.now())};t.seconds$0=function(a,g){return m.real((Date.now()-Pd)/1E3)};t.resetclock$0=function(a,g){Pd=Date.now();return k};t.time$0=function(a,g){var c=new Date;return h.realVector([c.getHours(),c.getMinutes(),c.getSeconds(),c.getMilliseconds()])};t.date$0=function(a,g){var c=new Date;return h.realVector([c.getFullYear(),c.getMonth()+
+1,c.getDate()])};t.simulationtime$0=function(a,g){return m.real(Ib*Md)};t.settimeout$2=function(a,g){function c(){z(d);e()}var b=z(a[0]),d=a[1];"number"===b.ctype&&"undefined"!==typeof window&&window.setTimeout(c,1E3*b.value.real);return k};D.formatForWebGL=function(a){return a.toFixed(10)};t.generateWebGL$2=function(a,g){var c=D.formatForWebGL,b=a[0],d=z(a[1]);console.log(d);if("list"!==d.ctype)return k;for(var h=[],e=0;e<d.value.length;e++)"string"===d.value[e].ctype&&h.push(d.value[e].value);console.log("***********");
+console.log(h);d=D.plotvars(b);console.log(d);-1===d.indexOf("a")&&-1===d.indexOf("b")&&-1===d.indexOf("c")&&-1===d.indexOf("d")&&-1===d.indexOf("e")&&-1===d.indexOf("f")&&(b=B(b));if("number"===b.ctype)return{ctype:"string",value:"vec2("+c(b.value.real)+","+c(b.value.imag)+")"};if("variable"===b.ctype)return{ctype:"string",value:b.name};if("string"===b.ctype||"void"===b.ctype)return b;if(2===b.args.length&&("infix"===b.ctype||"function"===b.ctype)){c=t.compileToWebGL$1([b.args[0]],{});d=t.compileToWebGL$1([b.args[1]],
+{});if("+"===b.oper||"add"===b.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:d.value}:{ctype:"string",value:"addc("+c.value+","+d.value+")"};if("*"===b.oper||"mult"===b.oper)return{ctype:"string",value:"multc("+c.value+","+d.value+")"};if("/"===b.oper||"div"===b.oper)return{ctype:"string",value:"divc("+c.value+","+d.value+")"};if("-"===b.oper||"sub"===b.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+d.value+")"}:{ctype:"string",value:"subc("+c.value+
+","+d.value+")"};if("^"===b.oper||"pow"===b.oper)return{ctype:"string",value:"powc("+c.value+","+d.value+")"}}if("function"===b.ctype&&1===b.args.length){c=t.compileToWebGL$1([b.args[0]],{});if("sin$1"===b.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===b.oper)return{ctype:"string",value:"cosc("+c.value+")"};if("tan$1"===b.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===b.oper)return{ctype:"string",value:"expc("+c.value+")"};if("log$1"===b.oper)return{ctype:"string",
+value:"logc("+c.value+")"};if("arctan$1"===b.oper)return{ctype:"string",value:"arctanc("+c.value+")"};if("arcsin$1"===b.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===b.oper)return{ctype:"string",value:"arccosc("+c.value+")"};if("sqrt$1"===b.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};t.compileToWebGL$1=function(a,g){var c,b;c=D.formatForWebGL;var d=a[0];b=D.plotvars(d);-1===b.indexOf("a")&&-1===b.indexOf("b")&&-1===b.indexOf("c")&&-1===b.indexOf("d")&&
+-1===b.indexOf("e")&&-1===b.indexOf("f")&&(d=B(d));if("number"===d.ctype)return{ctype:"string",value:"vec2("+c(d.value.real)+","+c(d.value.imag)+")"};if("variable"===d.ctype)return{ctype:"string",value:d.name};if("string"===d.ctype||"void"===d.ctype)return d;if(2===d.args.length&&("infix"===d.ctype||"function"===d.ctype)){c=t.compileToWebGL$1([d.args[0]],{});b=t.compileToWebGL$1([d.args[1]],{});if("+"===d.oper||"add"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:b.value}:
+{ctype:"string",value:"addc("+c.value+","+b.value+")"};if("*"===d.oper||"mult"===d.oper)return{ctype:"string",value:"multc("+c.value+","+b.value+")"};if("/"===d.oper||"div"===d.oper)return{ctype:"string",value:"divc("+c.value+","+b.value+")"};if("-"===d.oper||"sub"===d.oper)return void 0===c.value||"void"===c.ctype?{ctype:"string",value:"negc("+b.value+")"}:{ctype:"string",value:"subc("+c.value+","+b.value+")"};if("^"===d.oper||"pow"===d.oper)return{ctype:"string",value:"powc("+c.value+","+b.value+
+")"}}if("function"===d.ctype&&1===d.args.length){c=t.compileToWebGL$1([d.args[0]],{});if("sin$1"===d.oper)return{ctype:"string",value:"sinc("+c.value+")"};if("cos$1"===d.oper)return{ctype:"string",value:"cosc("+c.value+")"};if("tan$1"===d.oper)return{ctype:"string",value:"tanc("+c.value+")"};if("exp$1"===d.oper)return{ctype:"string",value:"expc("+c.value+")"};if("log$1"===d.oper)return{ctype:"string",value:"logc("+c.value+")"};if("arctan$1"===d.oper)return{ctype:"string",value:"arctanc("+c.value+
+")"};if("arcsin$1"===d.oper)return{ctype:"string",value:"arcsinc("+c.value+")"};if("arccos$1"===d.oper)return{ctype:"string$1",value:"arccosc("+c.value+")"};if("sqrt$1"===d.oper)return{ctype:"string",value:"sqrtc("+c.value+")"}}return k};t.setsimulationspeed$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&ha(c.value.real);return k};t.setsimulationaccuracy$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(O.env.accuracy=Math.max(1,c.value.real|
+0));return k};t.setsimulationquality$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&"undefined"!==typeof O&&"undefined"!==typeof O.env&&(c=c.value.real,0===c&&(O.env.errorbound=.01,O.env.lowestdeltat=1E-5,O.env.slowdownfactor=2),1===c&&(O.env.errorbound=.001,O.env.lowestdeltat=1E-7,O.env.slowdownfactor=2),2===c&&(O.env.errorbound=1E-5,O.env.lowestdeltat=1E-10,O.env.slowdownfactor=4),3===c&&(O.env.errorbound=1E-6,O.env.lowestdeltat=1E-12,O.env.slowdownfactor=4));return k};var fc=null,mc=null;t.createtool$3=
+function(a,g){var c,b="left",d="top",h=null;g.space&&(c=z(g.space),"number"===c.ctype&&(h=c.value.real/2));var e=null;g.toolbar&&(c=z(g.toolbar),"string"===c.ctype&&((e=document.getElementById(c.value))||console.warn("Element #"+c.value+" not found")));if(!e){if(g.reference){var f=z(g.reference);if("string"===f.ctype)switch(f.value){case "UR":b="right";break;case "LL":d="bottom";break;case "LR":b="right",d="bottom"}}e=document.createElement("div");e.className="CindyJS-toolbar";na.parentNode.appendChild(e);
+f=z(a[1]);c=z(a[2]);"number"===f.ctype&&(e.style[b]=f.value.real+"px");"number"===c.ctype&&(e.style[d]=c.value.real+"px");null!==h&&(e.style.margin=-h+"px")}f=z(a[0]);if("string"===f.ctype)f=[[f.value]];else if("list"===f.ctype)f=f.value.map(function(a){return"string"===a.ctype?[a.value]:"list"===a.ctype?a.value.map(function(a){return"string"===a.ctype?a.value:null}):[null]});else return ka("Name must be a string or a list of strings"),k;if(g.flipped&&(c=z(g.flipped),"boolean"===c.ctype&&c.value)){ka("Flipping");
+var m=0;c=f.length;f.forEach(function(a){a.length>m&&(m=a.length)});for(var l=[],n=0;n<m;++n){l[n]=[];for(var p=0;p<c;++p)l[n][p]=f[p][n]||null}f=l}"bottom"===d&&f.reverse();f.forEach(function(a){"right"===b&&a.reverse();var c=document.createElement("div");e.appendChild(c);a.forEach(function(a){function g(){fc&&fc.classList.remove("CindyJS-active");fc=d;d.classList.add("CindyJS-active");xc=a;var c=G[xc].actions;mc&&(mc.textContent=c[0].tooltip||"");Aa=[];xb=Ya=0}G.hasOwnProperty(a)||(ka("Tool '"+
+a+"' not implemented yet."),a=null);if(null===a){var b=document.createElement("span");b.className="CindyJS-spacer";c.appendChild(b)}else{var d=document.createElement("button"),b=document.createElement("img");b.src=va.getBaseDir()+"images/"+a+".png";d.appendChild(b);d.addEventListener("click",g);fc||g();null!==h&&(d.style.margin=h+"px");c.appendChild(d)}})});return k};t.dropped$0=function(){return rc};t.droppoint$0=function(){return sc};t.parsecsv$1=function(a,g){var c=!0,b=B(g.autoconvert);"boolean"===
+b.ctype&&(c=b.value);var d=null,b=B(g.delimiter);"string"===b.ctype&&/^[^\"\r\n]$/.test(b.value)&&(d=b.value);b=B(a[0]);if("string"!==b.ctype)return ka("CSV data is not a string"),k;var b=b.value,e='(?:"((?:[^"]+|"")*)"|([^]*?))(\r\n|(,)|[\r\n]|$)';d&&(d=d.replace(/[^A-Za-z0-9]/g,"\\$&").replace(/\$/g,"$$$$"),e=e.replace(/,/g,d));for(var e=new RegExp(e,"g"),d=[],f=[],l=null;e.lastIndex<b.length;){var n=e.exec(b),p=n[2];"string"===typeof n[1]&&(p=n[1].replace(/""/g,'"'));p=c?/^[Tt]rue$/.test(p)?w.bool(!0):
+/^[Ff]alse$/.test(p)?w.bool(!1):/^[\-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+|Infinity)$/.test(p)?m.real(Number(p)):w.string(p):w.string(p);d.push(p);n[4]&&e.lastIndex===b.length&&(d.push(w.string("")),n={});if(!n[4]){null===l&&(l=d.length);if(l<d.length)for(l=d.length,n=0;n<f.length;++n)for(p=f[n].length;p<l;++p)f[n][p]=k;else if(l>d.length)for(n=d.length;n<l;++n)d[n]=k;f.push(d);d=[]}}return h.turnIntoCSList(f.map(h.turnIntoCSList))};t.load$2=function(a,g){return t.load$3([a[0],null,a[1]],g)};t.load$3=function(a,
+g){function c(){if(f.readyState===XMLHttpRequest.DONE){var c;200===f.status?c=w.string(String(f.responseText)):(ka("Failed to load "+h+": "+f.statusText),c=k);J.newvar(b);J.setvar(b,c);z(a[2]);J.removevar(b);e()}}var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var d=B(a[0]),h=null,f=null;"string"===d.ctype&&/^https?:\/\//.test(d.value)&&(h=d.value);return null!==h?(f=new XMLHttpRequest,f.onreadystatechange=c,f.open("GET",h),f.send(),w.bool(!0)):k};D.extractPoint=function(a){var g={ok:!1};
+if("geo"===a.ctype){var c=a.value;if("P"===c.kind)return g.x=ta.getField(c,"x").value.real,g.y=ta.getField(c,"y").value.real,g.ok=!0,g}if("list"!==a.ctype)return g;var b=a.value;if(2===b.length&&(a=b[0],c=b[1],"number"===a.ctype&&"number"===c.ctype))return g.x=a.value.real,g.y=c.value.real,g.ok=!0,g;3===b.length&&(a=b[0],c=b[1],b=b[2],"number"===a.ctype&&"number"===c.ctype&&"number"===b.ctype&&(a=m.div(a,b),c=m.div(c,b),g.x=a.value.real,g.y=c.value.real,g.ok=!0));return g};t.draw$1=function(a,g){var c=
+B(a[0]);if("shape"===c.ctype)D.drawshape(c,g);else if("Line"===c.usage)x.handleModifs(g,x.lineModifs),x.drawline(c);else{var b=D.extractPoint(c);if(!b.ok){if("undefined"!==typeof c.value&&2===c.value.length)return t.draw$2(c.value,g);return}null!==g&&x.handleModifs(g,x.pointModifs);x.drawpoint(b)}return k};t.draw$2=function(a,g){var c=B(a[0]),b=B(a[1]),c=D.extractPoint(c),b=D.extractPoint(b);if(!c.ok||!b.ok)return k;null!==g&&x.handleModifs(g,x.lineModifs);x.drawsegcore(c,b);return k};t.drawcircle$2=
+function(a,g){return D.drawcircle(a,g,"D")};D.arcHelper=function(a){var g={};g.startPoint=K(a[0]);g.viaPoint=K(a[1]);g.endPoint=K(a[2]);return g};t.fillcircle$2=function(a,g){return D.drawcircle(a,g,"F")};t.drawarc$3=function(a,g){var c=D.arcHelper(a);return D.drawarc(c,g,"D")};t.fillarc$3=function(a,g){var c=D.arcHelper(a);return D.drawarc(c,g,"F")};D.drawarc=function(a,g,c){var b=a.startPoint,d=a.viaPoint;a=a.endPoint;if(!h._helper.isAlmostReal(h.turnIntoCSList([b,d,a])))return k;x.handleModifs(g,
+x.conicModifs);x.preDrawCurve();g=h.det3(b,d,a);if(1E-12<Math.abs(g.value.real)){g=l._helper.ConicBy5(null,b,d,a,h.ii,h.jj);var e=l._helper.CenterOfConic(g),e=h.normalizeMax(e);g=m.real(0);var f=h.turnIntoCSList([h.turnIntoCSList([e.value[2],g,m.neg(e.value[0])]),h.turnIntoCSList([g,e.value[2],m.neg(e.value[1])]),h.turnIntoCSList([g,g,e.value[2]])]);g=h.normalizeZ(w.mult(f,b));h.normalizeZ(w.mult(f,d));f=h.normalizeZ(w.mult(f,a));g=-Math.atan2(g.value[1].value.real,g.value[0].value.real);f=-Math.atan2(f.value[1].value.real,
+f.value[0].value.real);e=h.normalizeZ(e);b=h.normalizeZ(b);d=h.normalizeZ(d);a=h.normalizeZ(a);var n=h.abs(h.sub(b,e)),p=[e.value[0].value.real,e.value[1].value.real],e=y.drawingstate.matrix,r=p[0]*e.a-p[1]*e.b+e.tx,p=p[0]*e.c-p[1]*e.d-e.ty,b=0<h.det3(b,d,a).value.real;A.save();A.beginPath();A.translate(r,p);A.arc(0,0,n.value.real*e.sdet,g,f,b);"F"===c&&(A.fillStyle=x.lineColor,A.closePath(),A.fill());"D"===c&&A.stroke();A.restore()}else{if("D"!==c)return k;c=D.extractPoint(b);g=D.extractPoint(d);
+f=D.extractPoint(a);if(!c.ok||!g.ok||!f.ok)return k;n=(c.x-f.x)*(c.x-f.x)+(c.y-f.y)*(c.y-f.y);e=(f.x-g.x)*(f.x-g.x)+(f.y-g.y)*(f.y-g.y);if(1E-12>(c.x-g.x)*(c.x-g.x)+(c.y-g.y)*(c.y-g.y)||1E-12>n||1E-12>e)return k;0>h.crossratio3(b,a,d,h.cross(h.cross(b,d),h.linfty),h.ii).value.real?x.drawsegcore(c,f):x.drawRaySegment(b,a)}return k};D.drawcircle=function(a,g,c){var b=B(a[0]);a=B(a[1]);var d=D.extractPoint(b);if(!d.ok||"number"!==a.ctype||!m._helper.isAlmostReal(a))return k;var b=y.drawingstate.matrix,
+e=d.x*b.a-d.y*b.b+b.tx,d=d.x*b.c-d.y*b.d-b.ty;x.handleModifs(g,x.conicModifs);x.preDrawCurve();A.lineJoin="miter";A.beginPath();A.arc(e,d,Math.abs(a.value.real)*b.sdet,0,2*Math.PI);A.closePath();"D"===c&&A.stroke();"F"===c&&(A.fillStyle=x.lineColor,A.fill());"C"===c&&A.clip();return k};t.drawconic$1=function(a,b){var c=B(a[0]);if("list"!==c.ctype||3!==c.value.length&&6!==c.value.length)return console.error("could not parse conic"),k;if(6===c.value.length){for(var d=0;6>d;d++)if("number"!==c.value[d].ctype)return console.error("could not parse conic"),
+k;var e=m.real(.5),d=c.value[0],f=c.value[2],f=m.mult(f,e),l=c.value[1],n=c.value[3],n=m.mult(n,e),p=c.value[4],p=m.mult(p,e),c=c.value[5],c=h.turnIntoCSList([h.turnIntoCSList([d,f,n]),h.turnIntoCSList([f,l,p]),h.turnIntoCSList([n,p,c])])}else{if(!h.isNumberMatrix(c).value||3!==c.value.length||3!==c.value[0].value.length)return k;d=h.transpose(c);h.equals(c,d).value||(c=h.add(d,c))}return D.drawconic(c,b)};D.drawconic=function(a,b){function c(a,c){var b=(p*a+r*c+t)*a+(u*c+v)*c+w;return 0<=b?1:0>b?
+-1:NaN}function d(a){K.next=a;a.prev=K;return K=a}function e(a,b,g,d){return{a:a,b1:b,b2:g,vertical:!0,index:d,sign:function(b){return c(a,b)},mkp:function(c){return{x:a,y:c}},sol:Jb(u,r*a+v,(p*a+t)*a+w),discr:function(){return Jb(E,-2*C,z)},tpt:function(a){return{x:a,y:-.5*(r*a+v)/u}}}}function f(a,b,g,d){return{a:a,b1:b,b2:g,vertical:!1,index:d,sign:function(b){return c(b,a)},mkp:function(c){return{x:c,y:a}},sol:Jb(p,r*a+t,(u*a+v)*a+w),discr:function(){return Jb(E,-2*F,D)},tpt:function(a){return{x:-.5*
+(r*a+t)/p,y:a}}}}function m(a){var c=Math.min(a.b1,a.b2),b=Math.max(a.b1,a.b2),g=a.sign(c),e=a.sign(b);if(!isFinite(g*e))return!1;var h=a.sol,f;if(g!==e){if(null===h)return!1;f=.5*(h[0]+h[1]);f>c&&f<b?(c=a.sign(f),f=h[c===e?0:1]):(g=.5*(c+b),f=h[Math.abs(g-h[0])<Math.abs(g-h[1])?0:1]);N.push(d(a.mkp(f)))}else{if(null===h){if(0>=G)return!0;h=a.discr();if(null===h)return!0;a=a.tpt(h[a.index]);a.x>=H&&a.x<=J&&a.y>=L&&a.y<=M&&d(a);return!0}f=.5*(h[0]+h[1]);if(!(f>c&&f<b))return!0;c=a.sign(f);if(c===g||
+isNaN(c))return!0;a.b1>a.b2&&(h=[h[1],h[0]]);N.push(d(a.mkp(h[0])));N.push(d(a.mkp(h[1])))}return!0}function k(a,c,b,g,d){var e=c-g,h=b-a,q=a*g-c*b,f=C*e+F*h+E*q;if(1E-14>Math.abs(f))return A.lineTo(b,g);var m=(z*e+B*h+C*q)/f,e=(B*e+D*h+F*q)/f;if(!isFinite(m)||!isFinite(e)||.04>Math.abs(a*e+m*g+b*c-b*e-m*c-a*g))return A.lineTo(b,g);do if(!(10<d)){var q=.5*(a+b),h=.5*(c+g),l=m-q,f=e-h;if(!(.04>l*l+f*f)){var n=p*l*l+r*l*f+u*f*f,oa=2*p*l*q+r*(l*h+f*q)+2*u*f*h+t*l+v*f,W=(p*q+r*h+t)*q+(u*h+v)*h+w,xa=Jb(n,
+oa,W);xa||(xa=[-.5*oa/n,-2*W/oa]);if(0<xa[0])xa=xa[0];else if(0<=xa[1])xa=xa[1];else break;l=q+xa*l;f=h+xa*f;q=l-.5*(m+q);h=f-.5*(e+h);if(!(.04>q*q+h*h)){k(a,c,l,f,d+1);k(l,f,b,g,d+1);return}}}while(0);A.quadraticCurveTo(m,e,b,g)}x.handleModifs(b,x.conicModifs);if(0!==x.lsize){x.preDrawCurve();var l;l=h.normalizeMax(a);if(h._helper.isAlmostReal(l)){var n=y.toMat();l=h.mult(h.transpose(n),l);l=h.mult(l,n);l=h.normalizeMax(l);var p=l.value[0].value[0].value.real,r=2*l.value[0].value[1].value.real,t=
+2*l.value[0].value[2].value.real,u=l.value[1].value[1].value.real,v=2*l.value[1].value[2].value.real,w=l.value[2].value[2].value.real,z=4*w*u-v*v,B=v*t-2*w*r,C=v*r-2*u*t,D=4*w*p-t*t,F=t*r-2*v*p,E=4*u*p-r*r,G=E;l=u*D+r*B+p*z-w*E;0>l&&(p=-p,r=-r,t=-t,u=-u,v=-v,w=-w,l=-l);l=x.lsize;var H=-l,L=-l,J=ca+l,M=da+l,N=[],K=l={};if(m(e(H,L,M,0))&&m(f(M,H,J,1))&&m(e(J,M,L,1))&&m(f(L,J,H,0))&&K!==l){K.next=l.next;l.next.prev=K;A.beginPath();var I,O;if(0===N.length){I=K;A.moveTo(I.x,I.y);do O=I.next,k(I.x,I.y,
+O.x,O.y,0),I=O;while(I!==K);A.closePath()}n=1===c(H,L)?0:1;if(4===N.length){var P=0;for(l=0;2>l;++l){I=N[l];O=N[l+2];var Q=O.x-I.x;I=O.y-I.y;I=(p*Q+r*I)*Q+u*I*I;Math.abs(I)>Math.abs(P)&&(P=I)}if(isNaN(P))return;0<=P&&(n=1-n)}for(l=n;l<N.length;l+=2)for(I=N[l],n=N[(l+1)%N.length],A.moveTo(I.x,I.y),O=I.next;I!==n;O=(I=O).next)k(I.x,I.y,O.x,O.y,0);A.stroke()}}}};t.drawall$1=function(a,b){var c=z(a[0]);if("list"===c.ctype){x.handleModifs(b,x.pointAndLineModifs);for(var d=0;d<c.value.length;d++)t.draw$1([c.value[d]],
+null)}return k};t.connect$1=function(a,b){return D.drawpolygon(a,b,"D",!1)};t.drawpoly$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpoly$1=function(a,b){return D.drawpolygon(a,b,"F",!0)};t.drawpolygon$1=function(a,b){return D.drawpolygon(a,b,"D",!0)};t.fillpolygon$1=function(a,b){return D.drawpolygon(a,b,"F",!0)};D.drawpolygon=function(a,b,c,d){function e(){for(var a=m.value,c=0;c<a.length;c++){var b=a[c],g;for(g=0;g<b.length;g++){var d=b[g],h=d.X*f.a-d.Y*f.b+f.tx,d=d.X*f.c-d.Y*f.d-f.ty;
+0===g?A.moveTo(h,d):A.lineTo(h,d)}A.closePath()}}function h(){var a;for(a=0;a<m.value.length;a++){var c=D.extractPoint(m.value[a]);if(!c.ok)return;var b=c.x*f.a-c.y*f.b+f.tx,c=c.x*f.c-c.y*f.d-f.ty;0===a?A.moveTo(b,c):A.lineTo(b,c)}d&&A.closePath()}x.handleModifs(b,x.conicModifs);x.preDrawCurve();var f=y.drawingstate.matrix,m=z(a[0]);A.beginPath();"list"===m.ctype&&h();"shape"===m.ctype&&e();"D"===c&&(x.fillColor&&(A.fillStyle=x.fillColor,A.fill(x.fillrule)),A.stroke());"F"===c&&(A.fillStyle=x.lineColor,
+A.fill(x.fillrule));"C"===c&&A.clip();return k};var Jc=fd,Bd=function(a,b,c){if(-1!==b.indexOf("\n"))for(b=b.split("\n"),a.textContent=b[0],c=1;c<b.length;++c)a.appendChild(document.createElement("br")),a.appendChild(document.createTextNode(b[c]));else a.textContent=b};D.drawtext=function(a,b,c){var d=B(a[0]);a=z(a[1]);var e=D.extractPoint(d);if(!e.ok)return null;x.handleModifs(b,x.textModifs);b=y.drawingstate.textsize;null===b&&(b=ga.textsize);null!==x.size&&(b=x.size);A.fillStyle=x.textColor;var h=
+y.drawingstate.matrix,d=e.x*h.a-e.y*h.b+h.tx+x.xOffset,e=e.x*h.c-e.y*h.d-h.ty-x.yOffset;a=Z(a);va._pluginRegistry.katex||"string"!==typeof a||3<=a.split("$").length&&pa("katex","katex-plugin.js",!0);h=x.bold+x.italics+Math.round(10*b)/10+"px "+x.family;A.font=h;return c?c(a,h,d,e,x.align,b):Jc(A,a,d,e,x.align,b,b*ga.lineHeight)};t.drawtext$2=function(a,b){D.drawtext(a,b,null);return k};t.drawtable$2=function(a,b){var c=B(a[0]),d=B(a[1]),e=D.extractPoint(c);if(!e.ok||"list"!==d.ctype)return k;var d=
+d.value,c=d.length,f=-1,m;for(m=0;m<c;++m)"list"===d[m].ctype&&d[m].value.length>f&&(f=d[m].value.length);-1===f?(d=d.map(function(a){return[a]}),f=1):d=d.map(function(a){return h.asList(a).value});var l=100,n=null,p=!0,r=y.drawingstate.textcolor;x.handleModifs(b,{size:!0,color:function(a){h._helper.isNumberVecN(a,3)&&(r=x.makeColor([a.value[0].value.real,a.value[1].value.real,a.value[2].value.real]))},alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0,width:function(a){"number"===
+a.ctype&&(l=a.value.real)},height:function(a){"number"===a.ctype&&(n=a.value.real)},border:function(a){"boolean"===a.ctype&&(p=a.value)}});var t=y.drawingstate.textsize;null===t&&(t=ga.textsize);null!==x.size&&(t=x.size);null===n&&(n=1.6*t);A.font=x.bold+x.italics+Math.round(10*t)/10+"px "+x.family;m=y.drawingstate.matrix;var u=f*l,v=c*n,t=e.x*m.a-e.y*m.b+m.tx+x.xOffset,w=e.x*m.c-e.y*m.d-m.ty-x.yOffset-v;if(p){x.preDrawCurve();A.strokeStyle=x.lineColor;A.beginPath();for(m=1;m<c;++m)A.moveTo(t,w+m*
+n),A.lineTo(t+u,w+m*n);for(e=1;e<f;++e)A.moveTo(t+e*l,w),A.lineTo(t+e*l,w+v);A.stroke();A.lineWidth=x.lsize+1;A.beginPath();A.rect(t,w,u,v);A.stroke()}t+=x.align*l+(1-2*x.align)*n*.3;w+=.7*n;A.fillStyle=r;for(m=0;m<c;++m)for(e=0;e<f;++e)u=Z(d[m][e]),Jc(A,u,t+e*l,w+m*n,x.align);return k};D.drawshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"D",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"D"):k};D.fillshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],
+b,"F",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"F"):k};D.clipshape=function(a,b){return"polygon"===a.type?D.drawpolygon([a],b,"C",1):"circle"===a.type?D.drawcircle([a.value.value[0],a.value.value[1]],b,"C"):k};t.fill$1=function(a,b){var c=z(a[0]);return"shape"===c.ctype?D.fillshape(c,b):k};t.clip$1=function(a,b){var c=z(a[0]);return"shape"===c.ctype?D.clipshape(c,b):"list"===c.ctype?(c=t.polygon$1(a,[]),t.clip$1([c],[])):k};t.plot$1=function(a,b){return t.plot$2([a[0],
+null],b)};t.plot$2=function(a,b){function c(a){return"number"===a.ctype&&m._helper.isAlmostReal(a)}function d(a,c,b,g,e){n++;c=+c.value.real;e=+g.value.real;g=c*E.a-e*E.b+E.tx;c=c*E.c-e*E.d-E.ty;a=+a.value.real;e=+b.value.real;b=a*E.a-e*E.b+E.tx;a=a*E.c-e*E.d-E.ty;p?(A.lineTo(b,a),A.lineTo(g,c)):(A.beginPath(),A.moveTo(b,a),A.lineTo(g,c),p=!0)}function e(a,b,g,h,k){var n=c(g),r=c(h);if(.001>k)!f&&p&&(A.stroke(),p=!1);else if(n||r){var t=m.real((a.value.real+b.value.real)/2);J.setvar(B,t);var u=z(w),
+v=c(u);if(n&&r&&v){var Wb=g.value.real,r=u.value.real,v=h.value.real;if(n=1>Math.abs(Wb+v-2*r)/l){var Wa=m.real((a.value.real+t.value.real)/2);J.setvar(B,Wa);var Wa=z(w),Ra=m.real((t.value.real+b.value.real)/2);J.setvar(B,Ra);Ra=z(w);Wb=Math.abs(Wb+r-2*Wa.value.real)/l;r=Math.abs(r+v-2*Ra.value.real)/l;n=n&&1>Wb&&1>r}n?(d(a,t,g,u,k/2),d(t,b,u,h,k/2)):(e(a,t,g,u,k/2),e(t,b,u,h,k/2))}else e(a,t,g,u,k/2),e(t,b,u,h,k/2)}}var f=!1,l=.2/Tb,n=0,p=!1,r=-10,t=10,u=.1,v=1E3,w=a[0],B;if(null!==a[1]&&"variable"===
+a[1].ctype)B=a[1].name;else{var C=D.plotvars(w);B="#";-1!==C.indexOf("t")&&(B="t");-1!==C.indexOf("z")&&(B="z");-1!==C.indexOf("y")&&(B="y");-1!==C.indexOf("x")&&(B="x")}J.newvar(B);var E=y.drawingstate.matrix;x.handleModifs(b,{color:!0,alpha:!0,size:!0,dashpattern:!0,dashtype:!0,dashing:!0,lineCap:!0,lineJoin:!0,miterLimit:!0,connect:function(a){"boolean"===a.ctype&&(f=a.value)},start:function(a){"number"===a.ctype&&(r=a.value.real)},stop:function(a){"number"===a.ctype&&(t=a.value.real)},steps:function(a){"number"===
+a.ctype&&(v=a.value.real)}});A.strokeStyle=x.lineColor;A.lineWidth=x.lsize;var F,G,H,I,p=!1,C=m.real(14.32);J.setvar(B,C);H=z(w);if("number"!==H.ctype){if(h.isNumberVector(H).value&&2===H.value.length){p=!1;u=(t-r)/v;for(C=r;C<t;C+=u)J.setvar(B,m.real(C)),I=z(w),h.isNumberVector(I).value&&2===I.value.length&&(F=+I.value[0].value.real,G=+I.value[1].value.real,I=F*E.a-G*E.b+E.tx,F=F*E.c-G*E.d-E.ty,p?A.lineTo(I,F):(A.beginPath(),A.moveTo(I,F),p=!0));A.stroke();J.removevar(B)}return k}for(I=r;I<t+u;I+=
+u)C=m.real(I),J.setvar(B,C),H=z(w),C.value.real>r&&e(F,C,G,H,u),F=C,G=H;J.removevar(B);p&&A.stroke();return k};t.plotX$1=function(a,b){var c=a[0],d=D.plotvars(c),e="#";-1!==d.indexOf("t")&&(e="t");-1!==d.indexOf("z")&&(e="z");-1!==d.indexOf("y")&&(e="y");-1!==d.indexOf("x")&&(e="x");J.newvar(e);d=y.drawingstate.matrix;A.fillStyle=y.drawingstate.linecolor;A.lineWidth=1;A.lineCap=x.lineCap;A.lineJoin=x.lineJoin;A.miterLimit=x.miterLimit;for(var h=!1,f=-10;10>f;f+=.01){J.setvar(e,m.real(f));var l=z(c);
+if("number"===l.ctype){var n=+l.value.real,l=f*d.a-n*d.b+d.tx,n=f*d.c-n*d.d-d.ty;h?A.lineTo(l,n):(A.beginPath(),A.moveTo(l,n),h=!0)}}A.stroke();J.removevar(e);return k};D.plotvars=function(a){function b(a,c){var g={},d;for(d=a.length-1;0<=d;--d)g[a[d]]=a[d];for(d=c.length-1;0<=d;--d)g[c[d]]=c[d];d=[];for(var e in g)g.hasOwnProperty(e)&&d.push(g[e]);return d}function c(a,c){for(var b=0;b<a.length;b++)a[b]===c&&(a.splice(b,1),b--);return a}var d,e,h,f;if("variable"===a.ctype)return[a.name];if("infix"===
+a.ctype)return d=D.plotvars(a.args[0]),a=D.plotvars(a.args[1]),b(d,a);if("list"===a.ctype){h=a.value;e=[];for(f=0;f<h.length;f++)d=D.plotvars(h[f]),e=b(e,d);return e}if("function"===a.ctype){h=a.args;e=[];for(f=0;f<h.length;f++)d=D.plotvars(h[f]),e=b(e,d);"apply"!==a.oper&&"select"!==a.oper&&"forall"!==a.oper&&"sum"!==a.oper&&"product"!==a.oper&&"repeat"!==a.oper&&"min"!==a.oper&&"max"!==a.oper&&"sort"!==a.oper||"variable"!==a.args[1].ctype||(e=c(e,a.args[1].name));return e}return[]};t.clrscr$0=function(a,
+b){"undefined"!==typeof ca&&"undefined"!==typeof da&&A.clearRect(0,0,ca,da);return k};t.repaint$0=function(a,b){e();return k};t.screenbounds$0=function(a,b){var c=w.withUsage(h.realVector(y.to(0,0)),"Point"),d=w.withUsage(h.realVector(y.to(ca,0)),"Point"),e=w.withUsage(h.realVector(y.to(ca,da)),"Point"),f=w.withUsage(h.realVector(y.to(0,da)),"Point");return h.turnIntoCSList([c,d,e,f])};t.createimage$3=function(a,b){var c=z(a[0]),d=B(a[1]),e=B(a[2]);if("number"!==d.ctype||"number"!==e.ctype||"string"!==
+c.ctype)return k;var h=document.createElement("canvas");h.id=c.value;h.width=d.value.real;h.height=e.value.real;h.style.display="none";document.body.appendChild(h);bb[c.value]=fa(h,!1);return k};t.clearimage$1=function(a,b){var c=z(a[0]);if("string"!==c.ctype&&"image"!==c.ctype)return k;c=Ja(c);if(!c)return k;var d=c.img;if("undefined"===typeof d||null===d)return k;var e=c.width,h=c.height;d.getContext("2d").clearRect(0,0,e,h);c.generation++;return k};t.canvas$4=function(a,b){var c=B(a[0]),d=B(a[1]),
+e=z(a[2]),h=a[3],f=D.extractPoint(c),m=D.extractPoint(d);if(!f.ok||!m.ok||"string"!==e.ctype&&"image"!==e.ctype)return k;e=Ja(e);if(!e||!e.img.getContext)return k;var d=e.img,l=e.width,c=e.height,n=m.x-f.x,p=m.y-f.y,r=f.x-p*c/l,t=f.y+n*c/l,p=m.x-p*c/l,n=m.y+n*c/l,m=y.from(f.x,f.y,1),r=y.from(r,t,1),p=y.from(p,n,1),f=m[0],t=m[1],n=r[0],u=r[1],v=p[0],w=p[1],r=l*(t-u)/((f-n)*(t-w)-(f-v)*(t-u)),l=l*(f-n)/((t-u)*(f-v)-(t-w)*(f-n)),p=-r*f-l*t,m=(c*(t-w)-c*(t-u))/((f-n)*(t-w)-(f-v)*(t-u)),n=(c*(f-v)-c*(f-
+n))/((t-u)*(f-v)-(t-w)*(f-n)),c=c-m*f-n*t,d=d.getContext("2d"),f=A;A=d;A.save();A.transform(r,m,l,n,p,c);e.generation++;z(h);A.restore();A=f};t.canvas$5=function(a,b){var c=B(a[0]),d=B(a[1]),e=B(a[2]),h=z(a[3]),f=a[4],c=D.extractPoint(c),m=D.extractPoint(d),l=D.extractPoint(e);if(!c.ok||!m.ok||!l.ok||"string"!==h.ctype&&"image"!==h.ctype)return k;h=Ja(h);if(!h||!h.img.getContext)return k;var e=h.img,n=h.width,d=h.height,p=y.from(c.x,c.y,1),r=y.from(m.x,m.y,1),m=y.from(l.x,l.y,1),c=p[0],l=p[1],t=r[0],
+u=r[1],v=m[0],w=m[1],m=((0-n)*(l-w)-0*(l-u))/((c-t)*(l-w)-(c-v)*(l-u)),n=((0-n)*(c-v)-0*(c-t))/((l-u)*(c-v)-(l-w)*(c-t)),r=0-m*c-n*l,p=((d-d)*(l-w)-(d-0)*(l-u))/((c-t)*(l-w)-(c-v)*(l-u)),t=((d-d)*(c-v)-(d-0)*(c-t))/((l-u)*(c-v)-(l-w)*(c-t)),d=d-p*c-t*l,e=e.getContext("2d"),c=A;A=e;A.save();A.transform(m,p,n,t,r,d);h.generation++;z(f);A.restore();A=c};t.screenresolution$0=function(a,b){return m.real(y.drawingstate.matrix.a)};t.layer$1=function(a,b){};t.imagesize$1=function(a,b){var c=Ja(B(a[0]));return c?
+h.realVector([+c.width,+c.height]):k};t.imageready$1=function(a,b){var c=Ja(B(a[0]));return w.bool(!(!c||!c.ready))};t.drawimage$2=function(a,b){function c(){var a=1,c=1,d=1,f=1,q=0,m=1,n=D.extractPoint(e);if(!n.ok)return k;l=Ja(l);if(!l)return k;A.save();var p;void 0!==b.angle&&(p=z(b.angle),"number"===p.ctype&&(q=p.value.real));void 0!==b.rotation&&(p=z(b.rotation),"number"===p.ctype&&(q=p.value.real));void 0!==b.scale&&(p=B(b.scale),"number"===p.ctype&&(c=a=p.value.real),h.isNumberVector(p).value&&
+2===p.value.length&&(a=p.value[0].value.real,c=p.value[1].value.real));void 0!==b.scalex&&(p=z(b.scalex),"number"===p.ctype&&(a=p.value.real));void 0!==b.scaley&&(p=z(b.scaley),"number"===p.ctype&&(c=p.value.real));void 0!==b.flipx&&(p=z(b.flipx),"boolean"===p.ctype&&p.value&&(d=-1));void 0!==b.flipy&&(p=z(b.flipy),"boolean"===p.ctype&&p.value&&(f=-1));void 0!==b.alpha&&(p=z(b.alpha),"number"===p.ctype&&(m=p.value.real));var r=y.drawingstate.matrix,W=y.drawingstate.initialmatrix,t=l.width,u=l.height;
+p=n.x*r.a-n.y*r.b+r.tx;var v=n.x*r.c-n.y*r.d-r.ty,xa=(n.x+1)*r.a-n.y*r.b+r.tx-p,r=(n.x+1)*r.c-n.y*r.d-r.ty-v,w=(n.x+1)*W.a-n.y*W.b+W.tx-(n.x*W.a-n.y*W.b+W.tx),W=(n.x+1)*W.c-n.y*W.d-W.ty-(n.x*W.c-n.y*W.d-W.ty),n=Math.sqrt(xa*xa+r*r)/Math.sqrt(w*w+W*W),xa=-Math.atan2(xa,r)+Math.atan2(w,W),r=y.drawingstate.matrix.sdet/72,a=a*r,c=c*r;1!==m&&(A.globalAlpha=m);A.translate(p,v);A.scale(a*d*n,c*f*n);A.rotate(q+xa);A.translate(-p,-v);A.translate(-t/2,-u/2);a=l;a.drawTo?a.drawTo(A,p,v):A.drawImage(a.img,p,
+v);A.globalAlpha=1;A.restore()}function d(){var a=1,c=1,h=1,q=1,n=D.extractPoint(e),p=D.extractPoint(f),r;if(!n.ok||!p.ok)return k;l=Ja(l);if(!l)return k;var t=l.width,u=l.height;if(0===m)r={},r.x=n.x-(p.y-n.y),r.y=n.y+(p.x-n.x),q=u/t;else if(r=D.extractPoint(m),!n.ok)return k;A.save();var v;void 0!==b.alpha&&(v=z(b.alpha),"number"===v.ctype&&(a=v.value.real));void 0!==b.aspect&&(v=z(b.aspect),"number"===v.ctype&&(q=v.value.real));void 0!==b.flipx&&(v=z(b.flipx),"boolean"===v.ctype&&v.value&&(c=-1));
+void 0!==b.flipy&&(v=z(b.flipy),"boolean"===v.ctype&&v.value&&(h=-1));v=y.drawingstate.matrix;1!==a&&(A.globalAlpha=a);a=n.x*v.a-n.y*v.b+v.tx;n=n.x*v.c-n.y*v.d-v.ty;A.transform(p.x*v.a-p.y*v.b+v.tx-a,p.x*v.c-p.y*v.d-v.ty-n,r.x*v.a-r.y*v.b+v.tx-a,r.x*v.c-r.y*v.d-v.ty-n,a,n);A.scale(1/t,-1/u*q);A.translate(t/2,-u/2);A.scale(c,h);A.translate(-t/2,u/2);A.translate(0,-u);c=l;c.drawTo?c.drawTo(A,0,0):A.drawImage(c.img,0,0);A.globalAlpha=1;A.restore()}var e,f,m,l;return 2===a.length?(e=B(a[0]),l=B(a[1]),
+c()):3===a.length?(e=B(a[0]),f=B(a[1]),m=0,l=B(a[2]),d()):4===a.length?(e=B(a[0]),f=B(a[1]),m=B(a[2]),l=B(a[3]),d()):k};t.drawimage$3=t.drawimage$2;t.drawimage$4=t.drawimage$2;t.allimages$0=function(){var a=[];Object.keys(bb).forEach(function(b){a.push({ctype:"string",value:b})});return h.turnIntoCSList(a)};t.cameravideo$0=function(a,b){function c(a){return{video:{width:a,advanced:[{width:{max:a,min:a}},{width:{ideal:a}}]},audio:!1}}var d=!0,e={};if(void 0!==b.resolution){var f=z(b.resolution);"string"===
+f.ctype&&"maximal"===f.value?d=!0:"number"===f.ctype?(d=!1,e=c(f.value.real)):h._helper.isNumberVecN(f,2)&&(d=!1,e=c(f.value[0].value.real),f=f.value[1].value.real,10>f||!Number.isInteger(f)?(e.video.aspectRatio=f,e.video.advanced[0].aspectRatio={min:f,max:f},e.video.advanced[1].aspectRatio={ideal:f}):(e.video.height=f,e.video.advanced[0].height={min:f,max:f},e.video.advanced[1].height={ideal:f}))}d&&(e=[320,640,1024,1280,1920,2560],e=e.map(function(a){return{width:{min:a}}}),e={video:{width:16E3,
+height:9E3,advanced:e},audio:!1});var d=null,m=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;m?d=function(a,c){navigator.mediaDevices.getUserMedia(e).then(a,c)}:(m=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)&&(d=function(a,c){m.call(navigator,e,a,c)});if(!d)return console.warn("getUserMedia call not supported"),k;var l=document.createElement("video");l.autoplay=!0;f=fa(l,!0);console.log("Opening stream.");d(function(a){l.srcObject=
+a;l.setAttribute("autoplay","");l.setAttribute("muted","");l.setAttribute("playsinline","");l.play();l.addEventListener("loadeddata",M)},function(a){console.error("Could not get user video:",String(a),a)});return f};t.playvideo$1=function(a,b){var c=Ja(B(a[0]));c.live&&c.img.play&&c.img.play();return k};t.pausevideo$1=function(a,b){var c=Ja(B(a[0]));c.live&&c.img.pause&&c.img.pause();return k};var Kb;t.imagergba$3=function(a,b){var c=Ja(B(a[0])),d=B(a[1]),e=B(a[2]);if(!c||"number"!==d.ctype||"number"!==
+e.ctype||!c.ready)return k;d=Math.round(d.value.real);e=Math.round(e.value.real);if(!Ia(d)||!Ia(e))return k;c=pb(c,d,e,1,1);return h.realVector([255*c[0],255*c[1],255*c[2],c[3]])};t.imagergb$3=t.imagergba$3;t.imagergba$4=function(a,b){var c=Ja(B(a[2]));if(!c||!c.ready)return k;var d=c.width,e=c.height,f=K(a[0]),m=K(a[1]),l=K(h.realVector([0,e,1])),d=K(h.realVector([d,e,1]));if(f===k||m===k||n===k)return k;var n=h.ii,e=h.jj,l=D.basismap(l,d,n,e),f=D.basismap(f,m,e,n),n=K(a[3]);var p=D.extractPoint(w.mult(l,
+w.mult(h.adjoint3(f),n)));if(p.ok){var m=c.width,l=c.height,n=!0,r=!1;void 0!==b.interpolate&&(f=z(b.interpolate),"boolean"===f.ctype&&(n=f.value));void 0!==b.repeat&&(f=z(b.repeat),"boolean"===f.ctype&&(r=f.value));n&&(p.x-=.5,p.y-=.5);r&&(p.x=(p.x%m+m)%m,p.y=(p.y%l+l)%l);d=Math.floor(p.x);e=Math.floor(p.y);if(Ia(d)&&Ia(e)){f=[0,0,0,0];if(n){var n=p.x-d,p=p.y-e,t=pb(c,d,e,2,2);if(r){if(d===m-1||e===l-1)var r=pb(c,(d+1)%m,e,1,1),v=pb(c,d,(e+1)%l,1,1),c=pb(c,(d+1)%m,(e+1)%l,1,1),t=t.slice(0,4).concat(r,
+v,c)}else{if(-1===d||d===m-1)n=Math.round(n);if(-1===e||e===l-1)p=Math.round(p)}for(c=0;4>c;c++)f[c]=(1-p)*((1-n)*t[c]+n*t[c+4])+p*((1-n)*t[c+8]+n*t[c+12])}else f=pb(c,d,e,1,1);c=h.realVector(f)}else c=k}else c=k;return c};t.imagergb$4=function(a,b){var c=t.imagergba$4(a,b);return c===k?k:h.turnIntoCSList(c.value.slice(0,3))};t.readpixels$1=function(a,b){for(var c=Ja(B(a[0])),c=pb(c,0,0,c.width,c.height),d=[],e=0;e+3<c.length;e+=4)d.push(h.turnIntoCSList([m.real(c[e+0]),m.real(c[e+1]),m.real(c[e+
+2]),m.real(c[e+3])]));return h.turnIntoCSList(d)};"use strict";var ze=[{key:[":"],field:["."],deg:["\u00b0"],take:["_"]},{functionCall:!0},{rassoc:!0,pow:["^"],sqrt:["\u221a"]},{mul:["*","\u2062","\u22c5","\u00b7"],cross:["\u00d7"],div:["/","\u00f7","\u2215","\u2236"]},{add:["+"],sub:["-","\u2212"],neg:["!","\u00ac"]},{seq:[".."]},{eq:["==","\u225f"],ne:["!=","<>","\u2260"],lt:["<"],gt:[">"],le:["<=","\u2264","\u2266"],ge:[">=","\u2265","\u2267"],aeq:["~=","\u2248"],ane:["~!=","\u2249"],alt:["~<",
+"\u2a89"],agt:["~>","\u2a8a"],ale:["~<=","\u2a85"],age:["~>=","\u2a86"],"in":["\u2208"],nin:["\u2209"]},{and:["&","\u2227"],or:["%","\u2228"]},{rassoc:!0,prepend:["<:"]},{concat:["++","\u222a"],remove:["--","\u2216"],common:["~~","\u2229"],append:[":>"]},{rassoc:!0,assign:["="],define:[":="],undefine:[":=_"],bdefine:["::="]},{seq:[";"]},{modif:["->","\u2192"]},{rassoc:!0,list:[","]}],Ae=["+","-"],Be=["!","\u221a"],Ce=["\u00b0",":=_"],De=[";",","],Kc=[],Ca={},kd;(function(){var a=0;ze.forEach(function(b){a+=
+2;var c=!!b.rassoc;b.functionCall&&(kd=a);for(var d in b){var e=b[d];if("boolean"!==typeof e)for(var h={name:d,sym:e[0],symbols:e,rassoc:c,precedence:a,prefix:!1,postfix:!1,infix:!0,bare:!1},f=0;f<e.length;++f){var m=e[f];if(Ca.hasOwnProperty(m))throw Error("Duplicate operator: "+m);Ca[m]=h;Kc.push(m)}}});Ae.forEach(function(a){Ca[a].prefix=!0});Be.forEach(function(a){Ca[a].prefix=!0;Ca[a].infix=!1});Ce.forEach(function(a){Ca[a].postfix=!0;Ca[a].infix=!1});De.forEach(function(a){Ca[a].prefix=!0;Ca[a].postfix=
+!0;Ca[a].infix=!0;Ca[a].bare=!0})})();Kc.sort(function(a,b){return b.length-a.length});var Ee="(?:[0-9](?: [0-9])*(?: \\.(?! \\.)(?: [0-9])*)?|\\.(?: [0-9])+)(?: [Ee](?: [+-])?(?: [0-9])+)?".replace(/ /g,"[ \t]*"),Fe="(?:[\u207a\u207b] )?[\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079](?: [\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079])*".replace(/ /g,"[ \t]*"),Ge="(?:[\u208a\u208b] )?[\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089](?: [\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089])*".replace(/ /g,
+"[ \t]*"),Lc=function(a,b,c){var d,e,h=0,f="(?:[",m=b.length;for(d=0;d<m;++d)e=b.charCodeAt(d),55296<=e?(f+="]|"+b.charAt(d)+"[",h=56320):(f+=String.fromCharCode(e=h=a[e-32]+h),h+=a[b.charCodeAt(++d)-32],h!==e&&(h!==e+1&&(f+="-"),f+=String.fromCharCode(h)));return f+"]|["+c+"][\udc00-\udfff])"}([2,0,106,3,4,1,6,5,7,11,17,8,12,21,9,22,30,10,15,24,25,16,13,42,46,14,18,19,29,37,27,28,35,26,32,36,40,43,47,53,20,48,50,56,33,34,39,51,52,55,63,64,65,68,85,23,31,38,45,49,105,59,66,69,72,88,102,114,117,128,
157,191,41,44,54,60,67,70,71,73,74,75,76,80,81,82,83,84,86,87,89,93,94,98,99,107,108,116,122,130,132,134,138,160,165,185,195,196,255,268,277,310,332,339,362,365,390,449,457,470,512,513,541,568,582,619,673,726,768,820,921,991,1164,2684,6581,8453,11171,20949],"T4(4I!)!'!&/ 0 \u0096')2$+! !\u0083$ %## !(! ! ; u \u0086.\u0088 =#!+YoA& 87C% } !5%+%) #!*! <0a,!4B1%'!&-'!1!$!33`HsG$!;!+.52'(#%#- & !$#$!*!9% 2%H''%#- & % % %B# !H *+ - & % $$!;!5%3!,(#%#- & % $$!X% 5!:! '$ #$% ! %$%$ $)W!G( / 2$!> &%C( / . $$!L! %5%;( D#!*!* 4'&*$W + !#&]F %6&]% !#% !#!(# & ! !#% # %1!#$ !/#L!S( @?$\u00817-!*''#$!$%+ ',6!:= !&!#7 \u0090 ##& ! ##D ##B ##& ! ##9 K ##^Y2*V#'$\u009d#5 4&p((+, #2*2*2, 5OC!'!Uy.D !&_)0J<#$,E'4Q/1Pv!|8:&K<9%)E>@7 )@\u0080# #$%1gT\u008e#'#=#'#( ! ! ! 0#P & !$ &$##'',& &d!9!*,b!'!#. !$$(! ! ! # 1##&$'!G%\u00a58 8 \u0084(#$%6= !&!#Q+!*/1& & & & & & & &t!\u0097%E$&%'V( z #&D${:Aj2\u0099\u00a6q\u00a9E\u00a4UZ#\u008d$2)%-8*0#_J+#b#M#(S1 # /0O2[R'$! !6>)/A?+8<!*$ .)$ D3 (-/$!$[ !$%#$#! !4 #1+ 6'#'#'1& & 7 .)c0\u00a86/'I\u00a7\u0093#\\N&6$&! . , $ ! % % \u007fM\u0092;R#Gh)d$ \u0085=4(4,a$'#'#'# \ud800!) 4 : % 9#6@\u0082\u0094?$IIX*5 ((=)<#@'(\ud801!f~N.Of\u008f1-)(\ud802!'#! E %$!#/)/10^: %)-)4nQ(%T!5# AZ?$?C( >?G)-):9*\ud803!`KJ9J\ud804#PriL3>@7M$!6F2#/! !C* 3V& ! # 9 .+8N(#%#- & % $$!;!6$\ud805eF-% !\u008987#=F-!k7x4\ud806\u0087RB!\u0095K\ud808!\u00a2\ud809e\u008a\ud80d!8\ud811!\u009c\ud81a!\u009b+0c<;F*#BH&:\ud81b\u00a0U,!l,\ud82c!%\ud82f!\"&,$++.\ud835!w m %#!#%## ) ! & S ##( & > # $ !$& \u0091#3 3 0 3 0 3 0 3 0 3 (\ud83a!\u008b\ud83b\u0098# A % !#! . # ! !(!'! ! ! % !#! ! ! ! ! % !## & # # ! . 5& $ 5\ud869!\u009f7\u008c\ud86d!\u00a1,g\ud86e!<#\u00a3\ud873!\u009e\ud87e!\u009a",
-"\ud80c\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872"),ze=("#(?: [1-9])?|(?:'|"+Dc+")(?: (?:[0-9']|"+Dc+"))*").replace(/ /g,"[ \t]*"),$c=["([ \t\n]+)|(//.*)|(/\\*)","("+we+")","("+Cc.map(Zc).join("|")+")","("+"[](){}||".split("").map(Zc).join("|")+")","("+ye+")","("+xe+")","("+ze+")",'("[^"]*")|($)'].join("|"),Ae=new RegExp("[ \t]*".replace(/\*$/,"+"),"g"),Ec="ANY WS COMMENT START_COMMENT NUM OP BRA SUB SUP ID STR EOF".split(" ");(function(){var a=(new RegExp($c,"g")).exec("");if(a.hasOwnProperty(Ec.length))throw Error("RE has more groups than expected");
-if(!a.hasOwnProperty(Ec.length-1))throw Error("RE has fewer groups than expected");})();kb.prototype.advanceBy=function(a){this.advanceTo(this.pos+a)};kb.prototype.advanceTo=function(a){for(this.pos=a;this.bols[0]<=a;)this.bol=this.bols.shift(),this.line++};kb.prototype.curPos=function(){return{row:this.line,col:this.pos-this.bol,pos:this.pos}};kb.prototype.nextInternal=function(){var a=this.re.exec(this.input);if(a.index!==this.pos)throw ha("Invalid token",this.curPos(),this.input.substring(this.pos,
-a.index));var b=this.curPos();this.advanceBy(a[0].length);var c=this.curPos(),d;for(d=1;null==a[d];++d);return{start:b,end:c,raw:a[0],text:a[0].replace(Ae,""),toktype:Ec[d]}};kb.prototype.next=function(){var a;do if(a=this.nextInternal(),"START_COMMENT"===a.toktype){var b=/\*\/|\/\*/g;b.lastIndex=a.start.pos+2;for(var c=1,d;0<c;)if(d=b.exec(this.input))"/*"===d[0]?++c:--c;else throw ha("Unterminated comment",a.start,a.text);this.re.lastIndex=b.lastIndex;this.advanceTo(b.lastIndex);a.end=this.curPos();
-a.raw=this.input.substring(a.start.pos,a.end.pos);a.text=a.raw;a.toktype="COMMENT"}while("WS"===a.toktype||"COMMENT"===a.toktype);return a};var Be={ctype:"void"};Eb.prototype.postprocess=function(a){if(null===a)return Be;if(a){if("infix"===a.ctype)if(":="===a.oper){var b=a.args[0];if("function"===b.ctype)b.args.forEach(function(c){if(null===c||"variable"!==c.ctype)throw ha("Function argument must be an identifier",c.start||a.start);});else if("variable"!==b.ctype)throw ha(a.oper+" can only be used to define functions or variables",
-a.start);}else if(","===a.oper)throw ha("comma may only be used to delimit list elements",a.start);a.args&&(a.args=a.args.map(this.postprocess,this));if(a.modifs)for(var c in a.modifs)a.modifs[c]=this.postprocess(a.modifs[c]);if("paren"===a.ctype)return a.args[0];if("infix"===a.ctype){if("."===a.oper){if(!a.args[1]||"variable"!==a.args[1].ctype)throw ha("Field name must be identifier",a.start,a.text);a.ctype="field";a.obj=a.args[0];a.key=a.args[1].name;delete a.args}this.infixmap&&(a.impl=this.infixmap[a.oper])}else"variable"===
-a.ctype?this.usedVariables[a.name]=!0:"function"===a.ctype&&(this.usedFunctions[a.oper]=!0)}if("infix"===a.ctype)return{ctype:"infix",oper:String(a.oper),args:[a.args[0],a.args[1]],impl:a.impl};if("variable"===a.ctype)return{ctype:"variable",name:String(a.name)};if("number"===a.ctype)return{ctype:"number",value:{real:+a.value.real,imag:+a.value.imag}};if("string"===a.ctype)return{ctype:"string",value:String(a.value)};if("list"===a.ctype)return{ctype:"list",value:a.value};if("function"===a.ctype)return{ctype:"function",
-oper:String(a.oper),args:a.args,modifs:a.modifs};if("field"===a.ctype)return{ctype:"field",obj:a.obj,key:String(a.key)};throw Error("Unsupported AST node of type "+a.ctype);};Eb.prototype.parse=function(a){try{var b=bd(new kb(a));if("EOF"!==b.closedBy.toktype)throw ha("Closing bracket never opened.",b.closedBy.start,b.closedBy.text);return this.postprocess(b.expr)}catch(c){return c.ctype="error",c}};"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===
-typeof window&&(module.exports.Parser=Eb,module.exports.Tokenizer=kb,module.exports.unicodeLetters=Dc,module.exports.parse=function(a){return(new Eb).parse(a)});var Nc={},Fc;Fc=[0,0,0,0,0,0,0,0,0,0,0,0];t.playsin$1=function(a,b){var c=B(a[0]),d=0;if("number"===c.ctype){var e;void 0!==b.line&&(e=A(b.line),"number"===e.ctype&&(d=Math.floor(e.value.real),0>d&&(d=0),10<d&&(d=10)));c=c.value.real;0!==Fc[d]&&Fc[d].set({freq:c})}return k};var P={printArr:function(a){for(var b=a.value.length,c=[],d=[],e=
-!1,f=0;f<b;f++)c[f]=a.value[f].value.real,d[f]=a.value[f].value.imag,0!==d[f]&&(e=!0);console.log(c);e&&console.log(d)},zero:function(a){for(var b=[],c=l.real(0),d=0;d<a.value.real;d++)b[d]=c;return g.turnIntoCSList(b)},number:function(a,b){var c=P.zero(b);c.value[0]=a;return c},variable:function(a,b){var c=P.zero(b);c.value[0]=a;c.value[1]=l.real(1);return c},add:function(a,b){return g.add(a,b)},sub:function(a,b){return g.sub(a,b)},mult:function(a,b){if(a.value.length!==b.value.length)return console.error("dims don't fit return nada"),
-k;for(var c=a.value.length,d=P.zero(l.real(c)),e=l.real(0),f=0;f<c;f++){for(var g=0;g<=f;g++)e=l.add(e,l.mult(a.value[g],b.value[f-g]));d.value[f]=e;e=l.real(0)}return d},pow:function(a,b){if(0>b.value.real||b.value.real!==Math.floor(b.value.real))return P.root(a,b);for(var c=a,d=1;d<b.value.real;d++)c=P.mult(c,a);return c},root:function(a,b){var c=l.real(0),d=l.real(1),e=l.add(d,b),f=a.value.length,g=P.zero(l.real(f));g.value[0]=l.pow(a.value[0],b);for(var k=c,m,n,p=1;p<f;p++){n=l.real(p);for(var q=
-1;q<=p;q++)m=l.mult(e,l.real(q)),m=l.div(m,n),m=l.sub(m,d),m=l.mult(m,a.value[q]),m=l.mult(m,g.value[p-q]),k=l.add(k,m);k=l.div(k,a.value[0]);g.value[p]=k;k=c}return g},findFirstNoneZero:function(a,b,c){for(var d=Infinity,e=Infinity,f=c;f<a.value.length;f++)if(1E-12<l.abs2(a.value[f]).value.real){d=f;break}for(a=c;a<b.value.length;a++)if(1E-12<l.abs2(b.value[a]).value.real){e=a;break}return[d,e]},div:function(a,b){if(a.value.length!==b.value.length)return console.log("dims don't fit - return nada"),
-k;for(var c=a.value.length,d=l.real(0),e=P.zero(l.real(c)),f=d,g,m=0;m<c;m++){g=P.findFirstNoneZero(a,b,m);m<g[0]&&g[0]===g[1]&&Infinity!==g[0]&&(a.value.splice(m,g[0]),b.value.splice(m,g[0]),e.value.splice(m,g[0]),c-=g[0]);g=a.value[m];for(var n=0;n<m;n++)f=l.add(f,l.mult(e.value[n],b.value[m-n]));g=l.sub(g,f);g=l.div(g,b.value[0]);e.value[m]=g;f=d}return e},exp:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c)),e=b,f;d.value[0]=l.exp(a.value[0]);for(var g=1;g<c;g++){for(var k=1;k<=
-g;k++)f=l.mult(l.real(k),a.value[k]),f=l.mult(f,d.value[g-k]),e=l.add(e,f);d.value[g]=l.div(e,l.real(g));e=b}return d},log:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c));d.value[0]=l.log(a.value[0]);for(var e=b,f,g,k=1;k<c;k++){f=a.value[k];for(var m=1;m<k;m++)g=l.mult(l.real(m),d.value[m]),g=l.mult(g,a.value[k-m]),e=l.add(e,g);e=l.div(e,l.real(k));f=l.sub(f,e);f=l.div(f,a.value[0]);d.value[k]=f;e=b}return d},sincos:function(a){var b=l.real(0),c=a.value.length,d=P.zero(l.real(c)),
-e=P.zero(l.real(c));d.value[0]=l.sin(a.value[0]);e.value[0]=l.cos(a.value[0]);for(var f=b,g=b,k,m,n,p=1;p<c;p++){n=l.real(p);for(var q=1;q<=p;q++)m=l.mult(l.real(q),a.value[q]),k=l.mult(m,e.value[p-q]),m=l.mult(m,d.value[p-q]),g=l.add(g,k),f=l.add(f,m);g=l.div(g,n);f=l.div(f,l.neg(n));d.value[p]=g;e.value[p]=f;f=g=b}P.sinsave=d;P.cossave=e;return[d,e]},sin:function(a){return P.sincos(a)[0]},cos:function(a){return P.sincos(a)[1]},faculty:function(a){var b=[];b[0]=l.real(1);for(var c=1,d=1;d<=a.value.real;d++)c*=
-d,b[d]=l.real(c);return b=g.turnIntoCSList(b)},diff:function(a,b,c,d){var e;if("variable"===a.ctype)e=a.name!==b?P.number(A(a),d):P.variable(c,d);else if("number"===a.ctype)e=P.number(a,d);else{if("infix"===a.ctype){if("*"===a.oper)return P.mult(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("^"===a.oper)return P.pow(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d).value[0]);if("/"===a.oper)return P.div(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("+"===a.oper)return P.add(P.diff(a.args[0],
-b,c,d),P.diff(a.args[1],b,c,d));if("-"===a.oper)return P.sub(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));console.log("infix not found",a.oper);return k}if("function"===a.ctype){if("exp$1"===a.oper)return P.exp(P.diff(a.args[0],b,c,d));if("log$1"===a.oper)return P.log(P.diff(a.args[0],b,c,d));if("sin$1"===a.oper)return P.sin(P.diff(a.args[0],b,c,d));if("cos$1"===a.oper)return P.cos(P.diff(a.args[0],b,c,d))}else return console.log("ctype not found",a.ctype),k}return e},adevaluate:function(a,b,
-c,d){a=P.diff(a,b,c,d);d=P.faculty(d);for(b=2;b<a.value.length;b++)a.value[b]=l.mult(a.value[b],d.value[b]);return a},autodiff:function(a,b,c,d){for(var e=[],f=c.value.length,l,k=0;k<f;k++)l=P.adevaluate(a,b,c.value[k],d),e[k]=l;return e=g.turnIntoCSList(e)}},x={handleModifs:function(a,b){x.dashing&&x.unSetDash();x.colorraw=null;x.fillcolorraw=null;x.fillrule="nonzero";x.size=null;0>=x.psize&&(x.psize=0);0>=x.lsize&&(x.lsize=0);x.overhang=1;x.dashing=!1;x.isArrow=!1;x.arrowSides="==>";x.arrowposition=
-1;x.headlen=10;x.arrowShape=x.arrowShapes.line;x.alpha=z.drawingstate.alpha;x.fillalpha=0;x.bold="";x.italics="";x.family="sans-serif";x.align=0;x.xOffset=0;x.yOffset=0;x.lineCap="round";x.lineJoin="round";x.miterLimit=10;var c,d;for(c in a){var e=a[c];e&&((d=b[c])?(!0===d&&(d=x.modifHandlers[c]),d(A(e))):console.log("Modifier not supported: "+c))}null!==x.size?x.psize=x.lsize=x.size:(x.psize=z.drawingstate.pointsize,x.lsize=z.drawingstate.linesize);x.dashing&&x.dashing(x.lsize);null!==x.colorraw?
-x.pointColor=x.lineColor=x.textColor=x.makeColor(x.colorraw):1===x.alpha?(x.pointColor=z.drawingstate.pointcolor,x.lineColor=z.drawingstate.linecolor,x.textColor=z.drawingstate.textcolor):(x.pointColor=x.makeColor(z.drawingstate.pointcolorraw),x.lineColor=x.makeColor(z.drawingstate.linecolorraw),x.textColor=x.makeColor(z.drawingstate.textcolorraw));x.black=1===x.alpha?"rgb(0,0,0)":"rgba(0,0,0,"+x.alpha+")";x.fillColor=x.fillcolorraw&&0<x.fillalpha?x.makeColor(x.fillcolorraw,x.fillalpha):null},modifHandlers:{size:function(a){"number"===
-a.ctype&&(x.size=a.value.real,0>x.size&&(x.size=0),1E3<x.size&&(x.size=1E3))},color:function(a){g.isNumberVector(a).value&&3===a.value.length&&(x.colorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},fillcolor:function(a){g.isNumberVector(a).value&&3===a.value.length&&(x.fillcolorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},alpha:function(a){"number"===a.ctype&&(x.alpha=a.value.real)},fillalpha:function(a){"number"===a.ctype&&(x.fillalpha=a.value.real)},
-dashpattern:function(a){if("list"===a.ctype){for(var b=[],c=0,d=0;c<a.value.length;c++)"number"===a.value[c].ctype&&(b[d++]=a.value[c].value.real);x.dashing=x.setDash.bind(null,b)}},dashtype:function(a){if("number"===a.ctype)a=Math.floor(a.value.real);else if("string"===a.ctype)a=a.value;else return;if(a=x.dashTypes[a])x.dashing=x.setDash.bind(null,a)},dashing:function(a){"number"===a.ctype&&(a=Math.floor(a.value.real),x.dashing=x.setDash.bind(null,[2*a,a]))},overhang:function(a){"number"===a.ctype&&
-(x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real))},arrow:function(a){"boolean"===a.ctype?x.isArrow=a.value:console.error("arrow needs to be of type boolean")},arrowshape:function(a){"string"!==a.ctype?console.error("arrowshape needs to be of type string"):x.arrowShapes.hasOwnProperty(a.value)?(x.arrowShape=x.arrowShapes[a.value],x.isArrow=!0,x.arrowShape.deprecated&&(console.log("arrowshape "+a.value+" is deprecated, use "+x.arrowShape.deprecated+" instead."),x.arrowShape.deprecated=
-null)):(a=Object.keys(x.arrowShapes),a.sort(),a=a.join(", "),console.error("arrowshape needs to be one of "+a))},arrowsides:function(a){"string"!==a.ctype?console.error("arrowsides is not of type string"):"==>"!==a.value&&"<==>"!==a.value&&"<=="!==a.value?console.error("arrowsides is unknows"):(x.arrowSides=a.value,x.isArrow=!0)},arrowposition:function(a){"number"!==a.ctype?console.error("arrowposition is not of type number"):0>a.value.real?console.error("arrowposition has to be positive"):1<a.value.real?
-x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real):(x.arrowposition=a.value.real,x.isArrow=!0)},arrowsize:function(a){"number"!==a.ctype?console.error("arrowsize is not of type number"):0>a.value.real?console.error("arrowsize has to be positive"):x.headlen*=a.value.real},bold:function(a){"boolean"===a.ctype&&a.value&&(x.bold="bold ")},italics:function(a){"boolean"===a.ctype&&a.value&&(x.italics="italic ")},family:function(a){"string"===a.ctype&&(x.family=a.value)},align:function(a){"string"===
-a.ctype&&(a=a.value,"left"===a&&(x.align=0),"right"===a&&(x.align=1),"mid"===a&&(x.align=.5))},x_offset:function(a){"number"===a.ctype&&(x.xOffset=a.value.real)},y_offset:function(a){"number"===a.ctype&&(x.yOffset=a.value.real)},offset:function(a){"list"===a.ctype&&2===a.value.length&&"number"===a.value[0].ctype&&"number"===a.value[1].ctype&&(x.xOffset=a.value[0].value.real,x.yOffset=a.value[1].value.real)},lineCap:function(a){"string"!==a.ctype||"round"!==a.value&&"square"!==a.value&&"butt"!==a.value||
-(x.lineCap=a.value)},lineJoin:function(a){"string"!==a.ctype||"round"!==a.value&&"bevel"!==a.value&&"miter"!==a.value||(x.lineJoin=a.value)},fillrule:function(a){"string"!==a.ctype||"nonzero"!==a.value&&"evenodd"!==a.value||(x.fillrule=a.value)},miterLimit:function(a){"number"===a.ctype&&0<a.value.real&&(x.miterLimit=Math.round(a.value.real))}},lineModifs:{size:!0,color:!0,alpha:!0,dashpattern:!0,dashtype:!0,dashing:!0,overhang:!0,arrow:!0,arrowshape:!0,arrowsides:!0,arrowposition:!0,arrowsize:!0,
-lineCap:!0,lineJoin:!0,miterLimit:!0},pointModifs:{size:!0,color:!0,alpha:!0}};x.pointAndLineModifs=x.lineModifs;x.conicModifs={size:!0,color:!0,alpha:!0,fillcolor:!0,fillrule:!0,fillalpha:!0,lineCap:!0,lineJoin:!0,miterLimit:!0};x.textModifs={size:!0,color:!0,alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0};x.makeColor=function(a,b){void 0===b&&(b=x.alpha);return"rgba("+Math.floor(255*a[0])+","+Math.floor(255*a[1])+","+Math.floor(255*a[2])+","+b+")"};x.preDrawCurve=
-function(){y.lineWidth=x.lsize;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.mozFillRule=x.fillrule;y.fillrule=x.fillrule;y.miterLimit=x.miterLimit;y.strokeStyle=x.lineColor};x.arrowShapes={"default":{close:!1,fill:!1,ratio:1,deprecated:"line"},line:{close:!1,fill:!1,ratio:1},empty:{close:!0,fill:!1,ratio:1},hollow:{close:!0,fill:!1,ratio:1,deprecated:"empty"},full:{close:!0,fill:!0,ratio:1},jet:{close:!0,fill:!0,ratio:1.5},delta:{close:!0,fill:!0,ratio:1.5,deprecated:"jet"}};x.clipSegment=function(a,
-b){var c=b.x-a.x,d=b.y-a.y,e=x.clipLineCore(-d,c,a.x*b.y-b.x*a.y);if(2!==e.length)return[];var f=e[0],e=e[1],g=1/(c*c+d*d),l=((f.x-a.x)*c+(f.y-a.y)*d)*g,c=((e.x-a.x)*c+(e.y-a.y)*d)*g;0>l&&(f=a);1<l&&(f=b);0>c&&(e=a);1<c&&(e=b);return f===e?[]:[f,e]};x.drawsegcore=function(a,b){function c(a,b,c,h){var d=a-h*q+.5*t,e=b-h*t-.5*q,f=a-h*q-.5*t;h=b-h*t+.5*q;y.beginPath();x.arrowShape.fill&&(y.lineWidth=x.lsize/2);y.moveTo(d,e);y.lineTo(a,b);y.lineTo(f,h);x.arrowShape.close&&(y.fillStyle=x.lineColor,y.lineTo(a-
-c*q,b-c*t),y.closePath(),x.arrowShape.fill&&y.fill());y.stroke()}var d=z.drawingstate.matrix,e=a.x*d.a-a.y*d.b+d.tx,f=a.x*d.c-a.y*d.d-d.ty,g=b.x*d.a-b.y*d.b+d.tx,l=b.x*d.c-b.y*d.d-d.ty,k=x.overhang,m=1-k,d=k*e+m*g,n=k*f+m*l,p=k*g+m*e,k=k*l+m*f;if(0>d||d>da||0>n||n>ca||0>p||p>da||0>k||k>ca){k=x.clipSegment({x:d,y:n},{x:p,y:k});if(2!==k.length||.01>x.lsize)return;d=k[0].x;n=k[0].y;p=k[1].x;k=k[1].y}x.preDrawCurve();if(!x.isArrow||e===f&&g===l).01>x.lsize||(y.beginPath(),y.moveTo(d,n),y.lineTo(p,k),
-y.stroke());else{var e=g-e,f=l-f,g=x.headlen/Math.sqrt(e*e+f*f),q=e*g,t=f*g,l=x.arrowposition,m=1-l,f=l*d+m*p,e=l*n+m*k,g=l*p+m*d,l=l*k+m*n,m=x.arrowSides;y.beginPath();x.arrowShape.close?("<==>"===m||"<=="===m?(1>x.arrowposition&&(y.moveTo(d,n),y.lineTo(f,e)),y.moveTo(f+q,e+t)):y.moveTo(d,n),"==>"===m||"<==>"===m?(y.lineTo(g-q,l-t),1>x.arrowposition&&(y.moveTo(g,l),y.lineTo(p,k))):y.lineTo(p,k)):(y.moveTo(d,n),y.lineTo(p,k));y.stroke();"==>"!==m&&"<==>"!==m||c(g,l,1,x.arrowShape.ratio);"<=="!==m&&
-"<==>"!==m||c(f,e,-1,-x.arrowShape.ratio)}};x.drawpoint=function(a){var b=z.drawingstate.matrix,c=a.x*b.a-a.y*b.b+b.tx;a=a.x*b.c-a.y*b.d-b.ty;y.lineWidth=.3*x.psize;y.beginPath();y.arc(c,a,x.psize,0,2*Math.PI);y.fillStyle=x.pointColor;y.fill();y.beginPath();y.arc(c,a,1.15*x.psize,0,2*Math.PI);y.fillStyle=x.black;y.strokeStyle=x.black;y.stroke()};x.clipLineCore=function(a,b,c){var d=Math.SQRT1_2*x.lsize,e=0-d,f=da+d,g=0-d,d=ca+d,l=0>e*a+g*b+c,k=0>f*a+g*b+c,m=0>e*a+d*b+c,n=0>f*a+d*b+c,p=[];l!==k&&p.push({x:(-c-
-b*g)/a,y:g});k!==n&&p.push({x:f,y:(-c-a*f)/b});m!==n&&p.push({x:(-c-b*d)/a,y:d});l!==m&&p.push({x:e,y:(-c-a*e)/b});return p};x.clipLine=function(a){a=g.normalizeMax(g.productVM(a,z.toMat()));return x.clipLineCore(a.value[0].value.real,a.value[1].value.real,a.value[2].value.real)};x.drawline=function(a){g._helper.isAlmostReal(a)&&(a=x.clipLine(a),2===a.length&&.01<=x.lsize&&(x.preDrawCurve(),y.beginPath(),y.moveTo(a[0].x,a[0].y),y.lineTo(a[1].x,a[1].y),y.stroke()))};x.drawRaySegment=function(a,b){var c=
-D.extractPoint(a),d=D.extractPoint(b);if(c.ok&&d.ok){var e=c.x-d.x,f=c.y-d.y,g=25E3/z.drawingstate.matrix.sdet/Math.sqrt(e*e+f*f),e=e*g,f=f*g;x.drawsegcore(c,{x:c.x+e,y:c.y+f});x.drawsegcore(d,{x:d.x-e,y:d.y-f})}};x.dashTypes={solid:[],dashed:[10,10],tightdash:[10,4],dotted:[1,3],dashdot:[10,5,1,5],"dashvalue.solid":[],"dashvalue.dashed":[10,10],"dashvalue.tightdash":[10,4],"dashvalue.dotted":[1,3],"dashvalue.dashdot":[10,5,1,5],0:[],1:[10,10],2:[10,4],3:[1,3],4:[10,5,1,5]};x.setDash=function(a,b){var c=
-Math.sqrt(b);a=a.slice();for(var d=0;d<a.length;d++)a[d]*=c;y.webkitLineDash=a;y.setLineDash(a);y.mozDash=a};x.unSetDash=function(){y.webkitLineDash=[];y.setLineDash([]);y.mozDash=[]};dd.prototype={set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._fill="#"+lb(a.toString(16),2)+lb(d.toString(16),2)+lb(e.toString(16),2);b._fillOpacity=255===f?null:f})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._stroke="#"+lb(a.toString(16),2)+lb(d.toString(16),2)+lb(e.toString(16),2);b._strokeOpacity=
-255===f?null:f})},clearRect:function(){},beginPath:function(){this._path=[]},_pathcmd:function(){this._path.push.apply(this._path,arguments)},closePath:function(){this._pathcmd("Z")},moveTo:function(a,b){this._pathcmd("M",a,b)},lineTo:function(a,b){this._pathcmd("L",a,b)},bezierCurveTo:function(a,b,c,d,e,f){this._pathcmd("C",a,b,c,d,e,f)},quadraticCurveTo:function(a,b,c,d){this._pathcmd("Q",a,b,c,d)},arc:function(a,b,c,d,e,f){var g=c*Math.cos(d)+a,l=c*Math.sin(d)+b,k=c*Math.cos(e)+a,m=c*Math.sin(e)+
-b;e=f?d-e:e-d;e>=2*Math.PI?this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,0,f?1:0,a-c*Math.cos(d),b-c*Math.sin(d),"A",c,c,0,0,f?1:0,g,l):this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,e>Math.PI?1:0,f?1:0,k,m)},rect:function(a,b,c,d){this._pathcmd("M",a,b,"h",c,"v",d,"h",-c,"z")},_cmd:function(a){1!==this.globalAlpha?(this._body.push('<g opacity="'+this.globalAlpha+'">'),this._body.push(a),this._body.push("</g>")):this._body.push(a)},_attrs:function(a){var b="",c;for(c in a)null!==a[c]&&
-(b+=" "+c+'="'+a[c]+'"');return b},fill:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),fill:this._fill,"fill-opacity":this._fillOpacity})+"/>")},stroke:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),stroke:this._stroke,"stroke-opacity":this._strokeOpacity,"stroke-width":this.lineWidth,"stroke-linecap":this.lineCap,"stroke-linejoin":this.lineJoin,"stroke-miterlimit":"miter"===this.lineJoin?this.miterLimit:null})+"/>")},clip:function(){++this._clipIndex;this._body.push('<clipPath id="clip'+
+"\ud80c\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872"),He=("#(?: [1-9])?|(?:'|"+Lc+")(?: (?:[0-9']|"+Lc+"))*").replace(/ /g,"[ \t]*"),hd=["([ \t\n]+)|(//.*)|(/\\*)","("+Ee+")","("+Kc.map(gd).join("|")+")","("+"[](){}||".split("").map(gd).join("|")+")","("+Ge+")","("+Fe+")","("+He+")",'("[^"]*")|($)'].join("|"),Ie=new RegExp("[ \t]*".replace(/\*$/,"+"),"g"),Mc="ANY WS COMMENT START_COMMENT NUM OP BRA SUB SUP ID STR EOF".split(" ");(function(){var a=(new RegExp(hd,"g")).exec("");if(a.hasOwnProperty(Mc.length))throw Error("RE has more groups than expected");
+if(!a.hasOwnProperty(Mc.length-1))throw Error("RE has fewer groups than expected");})();qb.prototype.advanceBy=function(a){this.advanceTo(this.pos+a)};qb.prototype.advanceTo=function(a){for(this.pos=a;this.bols[0]<=a;)this.bol=this.bols.shift(),this.line++};qb.prototype.curPos=function(){return{row:this.line,col:this.pos-this.bol,pos:this.pos}};qb.prototype.nextInternal=function(){var a=this.re.exec(this.input);if(a.index!==this.pos)throw la("Invalid token",this.curPos(),this.input.substring(this.pos,
+a.index));var b=this.curPos();this.advanceBy(a[0].length);var c=this.curPos(),d;for(d=1;null==a[d];++d);return{start:b,end:c,raw:a[0],text:a[0].replace(Ie,""),toktype:Mc[d]}};qb.prototype.next=function(){var a;do if(a=this.nextInternal(),"START_COMMENT"===a.toktype){var b=/\*\/|\/\*/g;b.lastIndex=a.start.pos+2;for(var c=1,d;0<c;)if(d=b.exec(this.input))"/*"===d[0]?++c:--c;else throw la("Unterminated comment",a.start,a.text);this.re.lastIndex=b.lastIndex;this.advanceTo(b.lastIndex);a.end=this.curPos();
+a.raw=this.input.substring(a.start.pos,a.end.pos);a.text=a.raw;a.toktype="COMMENT"}while("WS"===a.toktype||"COMMENT"===a.toktype);return a};var Je={ctype:"void"};Lb.prototype.postprocess=function(a){if(null===a)return Je;if(a){if("infix"===a.ctype)if(":="===a.oper){var b=a.args[0];if("function"===b.ctype)b.args.forEach(function(c){if(null===c||"variable"!==c.ctype)throw la("Function argument must be an identifier",c.start||a.start);});else if("variable"!==b.ctype)throw la(a.oper+" can only be used to define functions or variables",
+a.start);}else if(","===a.oper)throw la("comma may only be used to delimit list elements",a.start);a.args&&(a.args=a.args.map(this.postprocess,this));if(a.modifs)for(var c in a.modifs)a.modifs[c]=this.postprocess(a.modifs[c]);if("paren"===a.ctype)return a.args[0];if("infix"===a.ctype){if("."===a.oper){if(!a.args[1]||"variable"!==a.args[1].ctype)throw la("Field name must be identifier",a.start,a.text);a.ctype="field";a.obj=a.args[0];a.key=a.args[1].name;delete a.args}if(":"===a.oper){if(!a.args[1])throw la("Data key undefined",
+a.start,a.text);a.ctype="userdata";a.obj=a.args[0];a.key=a.args[1];delete a.args}this.infixmap&&(a.impl=this.infixmap[a.oper])}else"variable"===a.ctype?this.usedVariables[a.name]=!0:"function"===a.ctype&&(this.usedFunctions[a.oper]=!0)}if("infix"===a.ctype)return{ctype:"infix",oper:String(a.oper),args:[a.args[0],a.args[1]],impl:a.impl};if("variable"===a.ctype)return{ctype:"variable",name:String(a.name)};if("number"===a.ctype)return{ctype:"number",value:{real:+a.value.real,imag:+a.value.imag}};if("string"===
+a.ctype)return{ctype:"string",value:String(a.value)};if("list"===a.ctype)return{ctype:"list",value:a.value};if("function"===a.ctype)return{ctype:"function",oper:String(a.oper),args:a.args,modifs:a.modifs};if("field"===a.ctype)return{ctype:"field",obj:a.obj,key:String(a.key)};if("userdata"===a.ctype)return{ctype:"userdata",obj:a.obj,key:a.key};throw Error("Unsupported AST node of type "+a.ctype);};Lb.prototype.parse=function(a){try{var b=jd(new qb(a));if("EOF"!==b.closedBy.toktype)throw la("Closing bracket never opened.",
+b.closedBy.start,b.closedBy.text);return this.postprocess(b.expr)}catch(c){return c.ctype="error",c}};"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===typeof window&&(module.exports.Parser=Lb,module.exports.Tokenizer=qb,module.exports.unicodeLetters=Lc,module.exports.parse=function(a){return(new Lb).parse(a)});var hb={},Mb=[],Nc;Nc=[0,0,0,0,0,0,0,0,0,0,0,0];t.playsin$1=function(a,b){var c=B(a[0]),d=0;if("number"===c.ctype){var e;void 0!==
+b.line&&(e=z(b.line),"number"===e.ctype&&(d=Math.floor(e.value.real),0>d&&(d=0),10<d&&(d=10)));c=c.value.real;0!==Nc[d]&&Nc[d].set({freq:c})}return k};var P={printArr:function(a){for(var b=a.value.length,c=[],d=[],e=!1,h=0;h<b;h++)c[h]=a.value[h].value.real,d[h]=a.value[h].value.imag,0!==d[h]&&(e=!0);console.log(c);e&&console.log(d)},zero:function(a){for(var b=[],c=m.real(0),d=0;d<a.value.real;d++)b[d]=c;return h.turnIntoCSList(b)},number:function(a,b){var c=P.zero(b);c.value[0]=a;return c},variable:function(a,
+b){var c=P.zero(b);c.value[0]=a;c.value[1]=m.real(1);return c},add:function(a,b){return h.add(a,b)},sub:function(a,b){return h.sub(a,b)},mult:function(a,b){if(a.value.length!==b.value.length)return console.error("dims don't fit return nada"),k;for(var c=a.value.length,d=P.zero(m.real(c)),e=m.real(0),h=0;h<c;h++){for(var f=0;f<=h;f++)e=m.add(e,m.mult(a.value[f],b.value[h-f]));d.value[h]=e;e=m.real(0)}return d},pow:function(a,b){if(0>b.value.real||b.value.real!==Math.floor(b.value.real))return P.root(a,
+b);for(var c=a,d=1;d<b.value.real;d++)c=P.mult(c,a);return c},root:function(a,b){var c=m.real(0),d=m.real(1),e=m.add(d,b),h=a.value.length,f=P.zero(m.real(h));f.value[0]=m.pow(a.value[0],b);for(var k=c,l,n,p=1;p<h;p++){n=m.real(p);for(var r=1;r<=p;r++)l=m.mult(e,m.real(r)),l=m.div(l,n),l=m.sub(l,d),l=m.mult(l,a.value[r]),l=m.mult(l,f.value[p-r]),k=m.add(k,l);k=m.div(k,a.value[0]);f.value[p]=k;k=c}return f},findFirstNoneZero:function(a,b,c){for(var d=Infinity,e=Infinity,h=c;h<a.value.length;h++)if(1E-12<
+m.abs2(a.value[h]).value.real){d=h;break}for(a=c;a<b.value.length;a++)if(1E-12<m.abs2(b.value[a]).value.real){e=a;break}return[d,e]},div:function(a,b){if(a.value.length!==b.value.length)return console.log("dims don't fit - return nada"),k;for(var c=a.value.length,d=m.real(0),e=P.zero(m.real(c)),h=d,f,l=0;l<c;l++){f=P.findFirstNoneZero(a,b,l);l<f[0]&&f[0]===f[1]&&Infinity!==f[0]&&(a.value.splice(l,f[0]),b.value.splice(l,f[0]),e.value.splice(l,f[0]),c-=f[0]);f=a.value[l];for(var n=0;n<l;n++)h=m.add(h,
+m.mult(e.value[n],b.value[l-n]));f=m.sub(f,h);f=m.div(f,b.value[0]);e.value[l]=f;h=d}return e},exp:function(a){var b=m.real(0),c=a.value.length,d=P.zero(m.real(c)),e=b,h;d.value[0]=m.exp(a.value[0]);for(var f=1;f<c;f++){for(var k=1;k<=f;k++)h=m.mult(m.real(k),a.value[k]),h=m.mult(h,d.value[f-k]),e=m.add(e,h);d.value[f]=m.div(e,m.real(f));e=b}return d},log:function(a){var b=m.real(0),c=a.value.length,d=P.zero(m.real(c));d.value[0]=m.log(a.value[0]);for(var e=b,h,f,k=1;k<c;k++){h=a.value[k];for(var l=
+1;l<k;l++)f=m.mult(m.real(l),d.value[l]),f=m.mult(f,a.value[k-l]),e=m.add(e,f);e=m.div(e,m.real(k));h=m.sub(h,e);h=m.div(h,a.value[0]);d.value[k]=h;e=b}return d},sincos:function(a){var b=m.real(0),c=a.value.length,d=P.zero(m.real(c)),e=P.zero(m.real(c));d.value[0]=m.sin(a.value[0]);e.value[0]=m.cos(a.value[0]);for(var h=b,f=b,k,l,n,p=1;p<c;p++){n=m.real(p);for(var r=1;r<=p;r++)l=m.mult(m.real(r),a.value[r]),k=m.mult(l,e.value[p-r]),l=m.mult(l,d.value[p-r]),f=m.add(f,k),h=m.add(h,l);f=m.div(f,n);h=
+m.div(h,m.neg(n));d.value[p]=f;e.value[p]=h;h=f=b}P.sinsave=d;P.cossave=e;return[d,e]},sin:function(a){return P.sincos(a)[0]},cos:function(a){return P.sincos(a)[1]},faculty:function(a){var b=[];b[0]=m.real(1);for(var c=1,d=1;d<=a.value.real;d++)c*=d,b[d]=m.real(c);return b=h.turnIntoCSList(b)},diff:function(a,b,c,d){var e;if("variable"===a.ctype)e=a.name!==b?P.number(z(a),d):P.variable(c,d);else if("number"===a.ctype)e=P.number(a,d);else{if("infix"===a.ctype){if("*"===a.oper)return P.mult(P.diff(a.args[0],
+b,c,d),P.diff(a.args[1],b,c,d));if("^"===a.oper)return P.pow(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d).value[0]);if("/"===a.oper)return P.div(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("+"===a.oper)return P.add(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));if("-"===a.oper)return P.sub(P.diff(a.args[0],b,c,d),P.diff(a.args[1],b,c,d));console.log("infix not found",a.oper);return k}if("function"===a.ctype){if("exp$1"===a.oper)return P.exp(P.diff(a.args[0],b,c,d));if("log$1"===a.oper)return P.log(P.diff(a.args[0],
+b,c,d));if("sin$1"===a.oper)return P.sin(P.diff(a.args[0],b,c,d));if("cos$1"===a.oper)return P.cos(P.diff(a.args[0],b,c,d))}else return console.log("ctype not found",a.ctype),k}return e},adevaluate:function(a,b,c,d){a=P.diff(a,b,c,d);d=P.faculty(d);for(b=2;b<a.value.length;b++)a.value[b]=m.mult(a.value[b],d.value[b]);return a},autodiff:function(a,b,c,d){for(var e=[],f=c.value.length,m,k=0;k<f;k++)m=P.adevaluate(a,b,c.value[k],d),e[k]=m;return e=h.turnIntoCSList(e)}},x={handleModifs:function(a,b){x.dashing&&
+x.unSetDash();x.colorraw=null;x.fillcolorraw=null;x.fillrule="nonzero";x.size=null;0>=x.psize&&(x.psize=0);0>=x.lsize&&(x.lsize=0);x.overhang=1;x.dashing=!1;x.isArrow=!1;x.arrowSides="==>";x.arrowposition=1;x.headlen=10;x.arrowShape=x.arrowShapes.line;x.alpha=y.drawingstate.alpha;x.fillalpha=0;x.bold="";x.italics="";x.family="sans-serif";x.align=0;x.xOffset=0;x.yOffset=0;x.lineCap="round";x.lineJoin="round";x.miterLimit=10;x.noborder=!1;var c,d;for(c in a){var e=a[c];e&&((d=b[c])?(!0===d&&(d=x.modifHandlers[c]),
+d(z(e))):console.log("Modifier not supported: "+c))}null!==x.size?x.psize=x.lsize=x.size:(x.psize=y.drawingstate.pointsize,x.lsize=y.drawingstate.linesize);x.dashing&&x.dashing(x.lsize);null!==x.colorraw?x.pointColor=x.lineColor=x.textColor=x.makeColor(x.colorraw):1===x.alpha?(x.pointColor=y.drawingstate.pointcolor,x.lineColor=y.drawingstate.linecolor,x.textColor=y.drawingstate.textcolor):(x.pointColor=x.makeColor(y.drawingstate.pointcolorraw),x.lineColor=x.makeColor(y.drawingstate.linecolorraw),
+x.textColor=x.makeColor(y.drawingstate.textcolorraw));x.black=1===x.alpha?"rgb(0,0,0)":"rgba(0,0,0,"+x.alpha+")";x.fillColor=x.fillcolorraw&&0<x.fillalpha?x.makeColor(x.fillcolorraw,x.fillalpha):null},modifHandlers:{size:function(a){"number"===a.ctype&&(x.size=a.value.real,0>x.size&&(x.size=0),1E3<x.size&&(x.size=1E3))},color:function(a){h.isNumberVector(a).value&&3===a.value.length&&(x.colorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},fillcolor:function(a){h.isNumberVector(a).value&&
+3===a.value.length&&(x.fillcolorraw=[a.value[0].value.real,a.value[1].value.real,a.value[2].value.real])},alpha:function(a){"number"===a.ctype&&(x.alpha=a.value.real)},fillalpha:function(a){"number"===a.ctype&&(x.fillalpha=a.value.real)},dashpattern:function(a){if("list"===a.ctype){for(var b=[],c=0,d=0;c<a.value.length;c++)"number"===a.value[c].ctype&&(b[d++]=a.value[c].value.real);x.dashing=x.setDash.bind(null,b)}},dashtype:function(a){if("number"===a.ctype)a=Math.floor(a.value.real);else if("string"===
+a.ctype)a=a.value;else return;if(a=x.dashTypes[a])x.dashing=x.setDash.bind(null,a)},dashing:function(a){"number"===a.ctype&&(a=Math.floor(a.value.real),x.dashing=x.setDash.bind(null,[2*a,a]))},overhang:function(a){"number"===a.ctype&&(x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real))},arrow:function(a){"boolean"===a.ctype?x.isArrow=a.value:console.error("arrow needs to be of type boolean")},arrowshape:function(a){"string"!==a.ctype?console.error("arrowshape needs to be of type string"):
+x.arrowShapes.hasOwnProperty(a.value)?(x.arrowShape=x.arrowShapes[a.value],x.isArrow=!0,x.arrowShape.deprecated&&(console.log("arrowshape "+a.value+" is deprecated, use "+x.arrowShape.deprecated+" instead."),x.arrowShape.deprecated=null)):(a=Object.keys(x.arrowShapes),a.sort(),a=a.join(", "),console.error("arrowshape needs to be one of "+a))},arrowsides:function(a){"string"!==a.ctype?console.error("arrowsides is not of type string"):"==>"!==a.value&&"<==>"!==a.value&&"<=="!==a.value?console.error("arrowsides is unknows"):
+(x.arrowSides=a.value,x.isArrow=!0)},arrowposition:function(a){"number"!==a.ctype?console.error("arrowposition is not of type number"):0>a.value.real?console.error("arrowposition has to be positive"):1<a.value.real?x.overhang=x.overhang*a.value.real+(1-x.overhang)*(1-a.value.real):(x.arrowposition=a.value.real,x.isArrow=!0)},arrowsize:function(a){"number"!==a.ctype?console.error("arrowsize is not of type number"):0>a.value.real?console.error("arrowsize has to be positive"):x.headlen*=a.value.real},
+bold:function(a){"boolean"===a.ctype&&a.value&&(x.bold="bold ")},italics:function(a){"boolean"===a.ctype&&a.value&&(x.italics="italic ")},family:function(a){"string"===a.ctype&&(x.family=a.value)},align:function(a){"string"===a.ctype&&(a=a.value,"left"===a&&(x.align=0),"right"===a&&(x.align=1),"mid"===a||"center"===a)&&(x.align=.5)},x_offset:function(a){"number"===a.ctype&&(x.xOffset=a.value.real)},y_offset:function(a){"number"===a.ctype&&(x.yOffset=a.value.real)},offset:function(a){"list"===a.ctype&&
+2===a.value.length&&"number"===a.value[0].ctype&&"number"===a.value[1].ctype&&(x.xOffset=a.value[0].value.real,x.yOffset=a.value[1].value.real)},lineCap:function(a){"string"!==a.ctype||"round"!==a.value&&"square"!==a.value&&"butt"!==a.value||(x.lineCap=a.value)},lineJoin:function(a){"string"!==a.ctype||"round"!==a.value&&"bevel"!==a.value&&"miter"!==a.value||(x.lineJoin=a.value)},fillrule:function(a){"string"!==a.ctype||"nonzero"!==a.value&&"evenodd"!==a.value||(x.fillrule=a.value)},miterLimit:function(a){"number"===
+a.ctype&&0<a.value.real&&(x.miterLimit=Math.round(a.value.real))},noborder:function(a){"boolean"===a.ctype?x.noborder=a.value:console.error("noborder needs to be of type boolean")},border:function(a){"boolean"===a.ctype?x.noborder=!a.value:console.error("border needs to be of type boolean")}},lineModifs:{size:!0,color:!0,alpha:!0,dashpattern:!0,dashtype:!0,dashing:!0,overhang:!0,arrow:!0,arrowshape:!0,arrowsides:!0,arrowposition:!0,arrowsize:!0,lineCap:!0,lineJoin:!0,miterLimit:!0},pointModifs:{size:!0,
+color:!0,alpha:!0,noborder:!0,border:!0}};x.pointAndLineModifs=x.lineModifs;x.conicModifs={size:!0,color:!0,alpha:!0,fillcolor:!0,fillrule:!0,fillalpha:!0,lineCap:!0,lineJoin:!0,miterLimit:!0};x.textModifs={size:!0,color:!0,alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0};x.makeColor=function(a,b){void 0===b&&(b=x.alpha);return"rgba("+Math.floor(255*a[0])+","+Math.floor(255*a[1])+","+Math.floor(255*a[2])+","+b+")"};x.preDrawCurve=function(){A.lineWidth=x.lsize;A.lineCap=
+x.lineCap;A.lineJoin=x.lineJoin;A.mozFillRule=x.fillrule;A.fillrule=x.fillrule;A.miterLimit=x.miterLimit;A.strokeStyle=x.lineColor};x.arrowShapes={"default":{close:!1,fill:!1,ratio:1,deprecated:"line"},line:{close:!1,fill:!1,ratio:1},empty:{close:!0,fill:!1,ratio:1},hollow:{close:!0,fill:!1,ratio:1,deprecated:"empty"},full:{close:!0,fill:!0,ratio:1},jet:{close:!0,fill:!0,ratio:1.5},delta:{close:!0,fill:!0,ratio:1.5,deprecated:"jet"}};x.clipSegment=function(a,b){var c=b.x-a.x,d=b.y-a.y,e=x.clipLineCore(-d,
+c,a.x*b.y-b.x*a.y);if(2!==e.length)return[];var h=e[0],e=e[1],f=1/(c*c+d*d),m=((h.x-a.x)*c+(h.y-a.y)*d)*f,c=((e.x-a.x)*c+(e.y-a.y)*d)*f;0>m&&(h=a);1<m&&(h=b);0>c&&(e=a);1<c&&(e=b);return h===e?[]:[h,e]};x.drawsegcore=function(a,b){function c(a,b,c,g){var d=a-g*r+.5*t,e=b-g*t-.5*r,h=a-g*r-.5*t;g=b-g*t+.5*r;A.beginPath();x.arrowShape.fill&&(A.lineWidth=x.lsize/2);A.moveTo(d,e);A.lineTo(a,b);A.lineTo(h,g);x.arrowShape.close&&(A.fillStyle=x.lineColor,A.lineTo(a-c*r,b-c*t),A.closePath(),x.arrowShape.fill&&
+A.fill());A.stroke()}var d=y.drawingstate.matrix,e=a.x*d.a-a.y*d.b+d.tx,h=a.x*d.c-a.y*d.d-d.ty,f=b.x*d.a-b.y*d.b+d.tx,m=b.x*d.c-b.y*d.d-d.ty,k=x.overhang,l=1-k,d=k*e+l*f,n=k*h+l*m,p=k*f+l*e,k=k*m+l*h;if(0>d||d>ca||0>n||n>da||0>p||p>ca||0>k||k>da){k=x.clipSegment({x:d,y:n},{x:p,y:k});if(2!==k.length||.01>x.lsize)return;d=k[0].x;n=k[0].y;p=k[1].x;k=k[1].y}x.preDrawCurve();if(!x.isArrow||e===h&&f===m).01>x.lsize||(A.beginPath(),A.moveTo(d,n),A.lineTo(p,k),A.stroke());else{var e=f-e,h=m-h,f=x.headlen/
+Math.sqrt(e*e+h*h),r=e*f,t=h*f,m=x.arrowposition,l=1-m,h=m*d+l*p,e=m*n+l*k,f=m*p+l*d,m=m*k+l*n,l=x.arrowSides;A.beginPath();x.arrowShape.close?("<==>"===l||"<=="===l?(1>x.arrowposition&&(A.moveTo(d,n),A.lineTo(h,e)),A.moveTo(h+r,e+t)):A.moveTo(d,n),"==>"===l||"<==>"===l?(A.lineTo(f-r,m-t),1>x.arrowposition&&(A.moveTo(f,m),A.lineTo(p,k))):A.lineTo(p,k)):(A.moveTo(d,n),A.lineTo(p,k));A.stroke();"==>"!==l&&"<==>"!==l||c(f,m,1,x.arrowShape.ratio);"<=="!==l&&"<==>"!==l||c(h,e,-1,-x.arrowShape.ratio)}};
+x.drawpoint=function(a){var b=y.drawingstate.matrix,c=a.x*b.a-a.y*b.b+b.tx;a=a.x*b.c-a.y*b.d-b.ty;A.lineWidth=.3*x.psize;A.beginPath();A.arc(c,a,x.psize,0,2*Math.PI);A.fillStyle=x.pointColor;A.fill();x.noborder||(A.beginPath(),A.arc(c,a,1.15*x.psize,0,2*Math.PI),A.fillStyle=x.black,A.strokeStyle=x.black,A.stroke())};x.clipLineCore=function(a,b,c){var d=Math.SQRT1_2*x.lsize,e=0-d,h=ca+d,f=0-d,d=da+d,m=0>e*a+f*b+c,k=0>h*a+f*b+c,l=0>e*a+d*b+c,n=0>h*a+d*b+c,p=[];m!==k&&p.push({x:(-c-b*f)/a,y:f});k!==
+n&&p.push({x:h,y:(-c-a*h)/b});l!==n&&p.push({x:(-c-b*d)/a,y:d});m!==l&&p.push({x:e,y:(-c-a*e)/b});return p};x.clipLine=function(a){a=h.normalizeMax(h.productVM(a,y.toMat()));return x.clipLineCore(a.value[0].value.real,a.value[1].value.real,a.value[2].value.real)};x.drawline=function(a){h._helper.isAlmostReal(a)&&(a=x.clipLine(a),2===a.length&&.01<=x.lsize&&(x.preDrawCurve(),A.beginPath(),A.moveTo(a[0].x,a[0].y),A.lineTo(a[1].x,a[1].y),A.stroke()))};x.drawRaySegment=function(a,b){var c=D.extractPoint(a),
+d=D.extractPoint(b);if(c.ok&&d.ok){var e=c.x-d.x,h=c.y-d.y,f=25E3/y.drawingstate.matrix.sdet/Math.sqrt(e*e+h*h),e=e*f,h=h*f;x.drawsegcore(c,{x:c.x+e,y:c.y+h});x.drawsegcore(d,{x:d.x-e,y:d.y-h})}};x.dashTypes={solid:[],dashed:[10,10],tightdash:[10,4],dotted:[1,3],dashdot:[10,5,1,5],"dashvalue.solid":[],"dashvalue.dashed":[10,10],"dashvalue.tightdash":[10,4],"dashvalue.dotted":[1,3],"dashvalue.dashdot":[10,5,1,5],0:[],1:[10,10],2:[10,4],3:[1,3],4:[10,5,1,5]};x.setDash=function(a,b){var c=Math.sqrt(b);
+a=a.slice();for(var d=0;d<a.length;d++)a[d]*=c;A.webkitLineDash=a;A.setLineDash(a);A.mozDash=a};x.unSetDash=function(){A.webkitLineDash=[];A.setLineDash([]);A.mozDash=[]};ld.prototype={set fillStyle(a){var b=this;ac(a,function(a,d,e,h){b._fill="#"+rb(a.toString(16),2)+rb(d.toString(16),2)+rb(e.toString(16),2);b._fillOpacity=255===h?null:h})},set strokeStyle(a){var b=this;ac(a,function(a,d,e,h){b._stroke="#"+rb(a.toString(16),2)+rb(d.toString(16),2)+rb(e.toString(16),2);b._strokeOpacity=255===h?null:
+h})},clearRect:function(){},beginPath:function(){this._path=[]},_pathcmd:function(){this._path.push.apply(this._path,arguments)},closePath:function(){this._pathcmd("Z")},moveTo:function(a,b){this._pathcmd("M",a,b)},lineTo:function(a,b){this._pathcmd("L",a,b)},bezierCurveTo:function(a,b,c,d,e,h){this._pathcmd("C",a,b,c,d,e,h)},quadraticCurveTo:function(a,b,c,d){this._pathcmd("Q",a,b,c,d)},arc:function(a,b,c,d,e,h){var f=c*Math.cos(d)+a,m=c*Math.sin(d)+b,k=c*Math.cos(e)+a,l=c*Math.sin(e)+b;e=h?d-e:
+e-d;e>=2*Math.PI?this._pathcmd(this._path.length?"L":"M",f,m,"A",c,c,0,0,h?1:0,a-c*Math.cos(d),b-c*Math.sin(d),"A",c,c,0,0,h?1:0,f,m):this._pathcmd(this._path.length?"L":"M",f,m,"A",c,c,0,e>Math.PI?1:0,h?1:0,k,l)},rect:function(a,b,c,d){this._pathcmd("M",a,b,"h",c,"v",d,"h",-c,"z")},_cmd:function(a){1!==this.globalAlpha?(this._body.push('<g opacity="'+this.globalAlpha+'">'),this._body.push(a),this._body.push("</g>")):this._body.push(a)},_attrs:function(a){var b="",c;for(c in a)null!==a[c]&&(b+=" "+
+c+'="'+a[c]+'"');return b},fill:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),fill:this._fill,"fill-opacity":this._fillOpacity})+"/>")},stroke:function(){this._cmd("<path"+this._attrs({d:this._path.join(" "),stroke:this._stroke,"stroke-opacity":this._strokeOpacity,"stroke-width":this.lineWidth,"stroke-linecap":this.lineCap,"stroke-linejoin":this.lineJoin,"stroke-miterlimit":"miter"===this.lineJoin?this.miterLimit:null})+"/>")},clip:function(){++this._clipIndex;this._body.push('<clipPath id="clip'+
this._clipIndex+'"><path d="'+this._path.join(" ")+'"/></clipPath>','<g clip-path="url(#clip'+this._clipIndex+')">');this._saveStack[this._saveStack.length-1]+="</g>"},save:function(){this._saveStack.push("")},restore:function(){this._body.push(this._saveStack.pop());0===this._saveStack.length&&this._saveStack.push("")},_transform:function(a){this._body.push('<g transform="'+a+'">');this._saveStack[this._saveStack.length-1]+="</g>"},translate:function(a,b){this._transform("translate("+a+" "+b+")")},
-rotate:function(a){this._transform("rotate("+Math.PI/180*a+")")},scale:function(a,b){this._transform("scale("+a+" "+b+")")},transform:function(a,b,c,d,e,f){this._transform("matrix("+[a,b,c,d,e,f].join(" ")+")")},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("SvgWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===d){var d=this._imgcache.length,e;e=a.cachedDataURL?a.cachedDataURL:fd(a);this._defs.push('<image id="img'+d+'" x="0" y="0" width="'+
+rotate:function(a){this._transform("rotate("+Math.PI/180*a+")")},scale:function(a,b){this._transform("scale("+a+" "+b+")")},transform:function(a,b,c,d,e,h){this._transform("matrix("+[a,b,c,d,e,h].join(" ")+")")},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("SvgWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===d){var d=this._imgcache.length,e;e=a.cachedDataURL?a.cachedDataURL:nd(a);this._defs.push('<image id="img'+d+'" x="0" y="0" width="'+
a.width+'" height="'+a.height+'" xlink:href="'+e+'"/>');this._imgcache.push(a)}this._cmd('<use x="'+b+'" y="'+c+'" xlink:href="#img'+d+'"/>')},toBlob:function(){for(;1<this._saveStack.length||""!==this._saveStack[0];)this.restore();var a='<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="'+this.width+'px" height="'+this.height+'px">\n'+this._defs.join("\n")+'\n</defs>\n<g stroke="none" fill="none">\n'+
-this._body.join("\n")+"\n</g>\n</svg>\n";return new Blob([a],{type:"image/svg+xml"})}};ed.prototype={_cmd:function(){this._body.push(Array.prototype.join.call(arguments," "))},_setAlpha:function(a,b,c){var d=Math.round(255*a*this._globalAlpha);b+=d;this._extGState[b]="<< /"+c+" "+d/255+" >>";this._cmd("/"+b,"gs");return a},set globalAlpha(a){this._globalAlpha=a;this._setAlpha(this._strokeAlpha,"As","CA");this._setAlpha(this._fillAlpha,"Af","ca")},set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/
-255,d/255,e/255,"rg");b._setAlpha(b._fillAlpha=f,"Af","ca")})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/255,d/255,e/255,"RG");b._setAlpha(b._strokeAlpha=f,"As","CA")})},set lineWidth(a){this._cmd(a,"w")},set lineCap(a){this._cmd({butt:0,round:1,square:2}[a],"J")},set lineJoin(a){this._cmd({miter:0,round:1,bevel:2}[a],"j")},set miterLimit(a){this._cmd(a,"M")},clearRect:function(){},beginPath:function(){this._pathUsed=!1},closePath:function(){this._cmd("h")},moveTo:function(a,b){this._cmd(this._xPos=
-a,this._yPos=-b,"m")},lineTo:function(a,b){this._cmd(this._xPos=a,this._yPos=-b,"l")},bezierCurveTo:function(a,b,c,d,e,f){this._cmd(a,-b,c,-d,this._xPos=e,this._yPos=-f,"c")},quadraticCurveTo:function(a,b,c,d){this.bezierCurveTo((2*a+this._xPos)/3,(2*b-this._yPos)/3,(c+2*a)/3,(d+2*b)/3,c,d)},_kappa:.5522847498307935,arc:function(a,b,c,d,e,f){if(0===d&&e===2*Math.PI)d=this._kappa*c,this.moveTo(a+c,b),this.bezierCurveTo(a+c,b+d,a+d,b+c,a,b+c),this.bezierCurveTo(a-d,b+c,a-c,b+d,a-c,b),this.bezierCurveTo(a-
+this._body.join("\n")+"\n</g>\n</svg>\n";return new Blob([a],{type:"image/svg+xml"})}};md.prototype={_cmd:function(){this._body.push(Array.prototype.join.call(arguments," "))},_setAlpha:function(a,b,c){var d=Math.round(255*a*this._globalAlpha);b+=d;this._extGState[b]="<< /"+c+" "+d/255+" >>";this._cmd("/"+b,"gs");return a},set globalAlpha(a){this._globalAlpha=a;this._setAlpha(this._strokeAlpha,"As","CA");this._setAlpha(this._fillAlpha,"Af","ca")},set fillStyle(a){var b=this;ac(a,function(a,d,e,h){b._cmd(a/
+255,d/255,e/255,"rg");b._setAlpha(b._fillAlpha=h,"Af","ca")})},set strokeStyle(a){var b=this;ac(a,function(a,d,e,h){b._cmd(a/255,d/255,e/255,"RG");b._setAlpha(b._strokeAlpha=h,"As","CA")})},set lineWidth(a){this._cmd(a,"w")},set lineCap(a){this._cmd({butt:0,round:1,square:2}[a],"J")},set lineJoin(a){this._cmd({miter:0,round:1,bevel:2}[a],"j")},set miterLimit(a){this._cmd(a,"M")},clearRect:function(){},beginPath:function(){this._pathUsed=!1},closePath:function(){this._cmd("h")},moveTo:function(a,b){this._cmd(this._xPos=
+a,this._yPos=-b,"m")},lineTo:function(a,b){this._cmd(this._xPos=a,this._yPos=-b,"l")},bezierCurveTo:function(a,b,c,d,e,h){this._cmd(a,-b,c,-d,this._xPos=e,this._yPos=-h,"c")},quadraticCurveTo:function(a,b,c,d){this.bezierCurveTo((2*a+this._xPos)/3,(2*b-this._yPos)/3,(c+2*a)/3,(d+2*b)/3,c,d)},_kappa:.5522847498307935,arc:function(a,b,c,d,e,h){if(0===d&&e===2*Math.PI)d=this._kappa*c,this.moveTo(a+c,b),this.bezierCurveTo(a+c,b+d,a+d,b+c,a,b+c),this.bezierCurveTo(a-d,b+c,a-c,b+d,a-c,b),this.bezierCurveTo(a-
c,b-d,a-d,b-c,a,b-c),this.bezierCurveTo(a+d,b-c,a+c,b-d,a+c,b);else throw Error("PdfWriterContext.arc only supports full circles");},rect:function(a,b,c,d){this._cmd(a,-b,c,-d,"re")},_usePath:function(a){if(this._pathUsed){var b=this._body[this._pathUsed],c={"S + f":"B","f + S":"B","W n + S":"W S","W n + f":"W f","S + W n":"W S","f + W n":"W f","B + W n":"W B","W S + f":"W B","W f + S":"W B"}[b+" + "+a];if(!c)throw Error("Don't know how to combine '"+b+"' and '"+a+"'");this._body.splice(this._pathUsed,
-1);a=c}this._pathUsed=this._body.length;this._cmd(a)},fill:function(){this._usePath("f")},stroke:function(){this._usePath("S")},clip:function(){this._usePath("W n")},save:function(){this._cmd("q")},restore:function(){this._cmd("Q")},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);this.transform(b,a,-a,b,0,0)},scale:function(a,b){this.transform(a,0,0,b,0,0)},transform:function(a,b,c,d,e,f){this._cmd(a,-b,-c,d,e,-f,"cm")},_png:function(a){if("data:image/png;base64,"!==
-a.substr(0,22))return{error:"Not a base64-encoded PNG file"};a=Wd(a.substr(22));var b=Xd(a);console.log("PNG chunks:",b.map(function(a){return a.type}));if("IHDR"!==b[0].type)throw Error("Image does not start with an IHDR");var c=b[0].data;a=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0;var d=(c[4]<<24|c[5]<<16|c[6]<<8|c[7])>>>0,e=c[8],f=c[9],g=0===(f&2),l=0!==(f&4),k=c[10],m=c[11],c=c[12];if(0!==k)throw Error("Unsupported PNG compression method: "+k);if(0!==m)throw Error("Unsupported PNG filter method: "+
-m);if(0!==c)return{error:"Interlaced image not supported"};if(0!==(f&1))return{error:"Indexed PNG image not supported"};m=null;f=g?1:3;k=b.filter(function(a){return"IDAT"===a.type}).map(function(a){return a.data});if(l){l=window.pako;m=new l.Inflate;for(b=0;b<k.length;++b)m.push(k[b],b+1===k.length);if(m.err)throw Error(m.err);m=m.result;c=e>>>3;if(m.length!==d*(a*(f+1)*c+1))throw Error("Data length mismatch");for(var n=f*c,k=new Uint8Array(d*(a*n+1)),p=new Uint8Array(d*(a*c+1)),q=0,t=0,u=0,v=0;v<
-d;++v){k[t++]=p[u++]=m[q++];for(var w=0;w<a;++w){for(b=0;b<n;++b)k[t++]=m[q++];for(b=0;b<c;++b)p[u++]=m[q++]}}if(q!==m.length||t!==k.length||u!==p.length)throw Error("Seems we garbled our index computation somehow");p=l.deflate(p);m=this._strm({Type:"/XObject",Subtype:"/Image",Width:a,Height:d,ColorSpace:"/DeviceGray",BitsPerComponent:e,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:1,BitsPerComponent:e,Columns:a})},p).ref;k=[l.deflate(k)]}var x=0;k.forEach(function(a){x+=a.length});
-return this._obj([this._dict({Type:"/XObject",Subtype:"/Image",Name:"/img"+this._imgcache.length,Width:a,Height:d,ColorSpace:g?"/DeviceGray":"/DeviceRGB",SMask:m,BitsPerComponent:e,Length:x,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:f,BitsPerComponent:e,Columns:a})}),"\nstream\n"].concat(k,["\nendstream"]))},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("PdfWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===
-d){d=this._imgcache.length;this._imgcache.push(a);var e=this._png(a.cachedDataURL||"");e.hasOwnProperty("error")&&(e=this._png(fd(a)));if(e.hasOwnProperty("error"))throw Error(e.error);this._xobjects["img"+d]=e.ref}this._cmd("q");this._setAlpha(1,"Af","ca");this._cmd(a.width,0,0,a.height,b,-c-a.height,"cm");this._cmd("/img"+d,"Do");this._cmd("Q")},_dict:function(a){var b="<<",c;for(c in a)b+=" /"+c+" "+a[c];return b+" >>"},_obj:function(a,b){b||(b=this._nextIndex++);Array.isArray(a)||(a=[this._dict(a)]);
+1);a=c}this._pathUsed=this._body.length;this._cmd(a)},fill:function(){this._usePath("f")},stroke:function(){this._usePath("S")},clip:function(){this._usePath("W n")},save:function(){this._cmd("q")},restore:function(){this._cmd("Q")},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);this.transform(b,a,-a,b,0,0)},scale:function(a,b){this.transform(a,0,0,b,0,0)},transform:function(a,b,c,d,e,h){this._cmd(a,-b,-c,d,e,-h,"cm")},_png:function(a){if("data:image/png;base64,"!==
+a.substr(0,22))return{error:"Not a base64-encoded PNG file"};a=de(a.substr(22));var b=ee(a);console.log("PNG chunks:",b.map(function(a){return a.type}));if("IHDR"!==b[0].type)throw Error("Image does not start with an IHDR");var c=b[0].data;a=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0;var d=(c[4]<<24|c[5]<<16|c[6]<<8|c[7])>>>0,e=c[8],h=c[9],f=0===(h&2),m=0!==(h&4),k=c[10],l=c[11],c=c[12];if(0!==k)throw Error("Unsupported PNG compression method: "+k);if(0!==l)throw Error("Unsupported PNG filter method: "+
+l);if(0!==c)return{error:"Interlaced image not supported"};if(0!==(h&1))return{error:"Indexed PNG image not supported"};l=null;h=f?1:3;k=b.filter(function(a){return"IDAT"===a.type}).map(function(a){return a.data});if(m){m=window.pako;l=new m.Inflate;for(b=0;b<k.length;++b)l.push(k[b],b+1===k.length);if(l.err)throw Error(l.err);l=l.result;c=e>>>3;if(l.length!==d*(a*(h+1)*c+1))throw Error("Data length mismatch");for(var n=h*c,k=new Uint8Array(d*(a*n+1)),p=new Uint8Array(d*(a*c+1)),r=0,t=0,v=0,u=0;u<
+d;++u){k[t++]=p[v++]=l[r++];for(var w=0;w<a;++w){for(b=0;b<n;++b)k[t++]=l[r++];for(b=0;b<c;++b)p[v++]=l[r++]}}if(r!==l.length||t!==k.length||v!==p.length)throw Error("Seems we garbled our index computation somehow");p=m.deflate(p);l=this._strm({Type:"/XObject",Subtype:"/Image",Width:a,Height:d,ColorSpace:"/DeviceGray",BitsPerComponent:e,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:1,BitsPerComponent:e,Columns:a})},p).ref;k=[m.deflate(k)]}var x=0;k.forEach(function(a){x+=a.length});
+return this._obj([this._dict({Type:"/XObject",Subtype:"/Image",Name:"/img"+this._imgcache.length,Width:a,Height:d,ColorSpace:f?"/DeviceGray":"/DeviceRGB",SMask:l,BitsPerComponent:e,Length:x,Filter:"/FlateDecode",DecodeParms:this._dict({Predictor:15,Colors:h,BitsPerComponent:e,Columns:a})}),"\nstream\n"].concat(k,["\nendstream"]))},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("PdfWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===
+d){d=this._imgcache.length;this._imgcache.push(a);var e=this._png(a.cachedDataURL||"");e.hasOwnProperty("error")&&(e=this._png(nd(a)));if(e.hasOwnProperty("error"))throw Error(e.error);this._xobjects["img"+d]=e.ref}this._cmd("q");this._setAlpha(1,"Af","ca");this._cmd(a.width,0,0,a.height,b,-c-a.height,"cm");this._cmd("/img"+d,"Do");this._cmd("Q")},_dict:function(a){var b="<<",c;for(c in a)b+=" /"+c+" "+a[c];return b+" >>"},_obj:function(a,b){b||(b=this._nextIndex++);Array.isArray(a)||(a=[this._dict(a)]);
a.index=b;a.ref=b+" 0 R";a.offset=this._offset;var c=0;a.unshift(b+" 0 obj\n");a.push("\nendobj\n");for(var d=0;d<a.length;++d)c+=a[d].length;this._offset+=c;this._objects.push(a);return a},_strm:function(a,b,c){a.Length=b.length;return this._obj([this._dict(a),"\nstream\n",b,"\nendstream"],c)},toBlob:function(){var a;a="["+[0,-this.height,this.width,0].join(" ")+"]";this._obj({Type:"/Catalog",Pages:"2 0 R"},1);this._obj({Type:"/Pages",Kids:"[3 0 R]",Count:1},2);this._obj({Type:"/Page",Parent:"2 0 R",
-MediaBox:a,Contents:"4 0 R",Resources:this._dict({ProcSet:"[/PDF /Text /ImageB /ImageC /ImageI]",XObject:this._dict(this._xobjects),ExtGState:this._dict(this._extGState)})},3);var b=this._body.join("\n"),c=new Uint8Array(b.length);for(a=0;a<b.length;++a)c[a]=b.charCodeAt(a)&255;b=window.pako.deflate(c);this._strm({Filter:"/FlateDecode"},b,4);var b=this._objects,d=[];for(a=1;a<b.length;++a)d[b[a].index]=b[a];c="xref\n0 "+d.length+"\n";for(a=0;a<d.length;++a)c=d[a]?c+(lb(String(d[a].offset),10)+" 00000 n \n"):
-c+"0000000000 65535 f \n";a="trailer\n"+this._dict({Size:d.length,Root:"1 0 R"})+"\nstartxref\n"+this._offset+"\n%%EOF\n";b=Array.prototype.concat.apply([],b);b.push(c,a);return new Blob(b,{type:"application/pdf"})}};var Fb=null;jb.push(gd);oa.exportSVG=function(){hd(dd)};oa.exportPDF=function(){wa.loadScript("pako","pako.min.js",function(){hd(ed)})};oa.exportPNG=function(){id(y.canvas.toDataURL())};var id=function(a){var b=document.createElement("a");document.body.appendChild(b);b.style="display: none";
-b.href=a;b.download="CindyJSExport";b.click();setTimeout(function(){document.body.removeChild(b);gd()},100)},qc="Move",Hb,ua=[],Ua=0,Zd=0,sb=0,G={Delete:{}};G.Delete.actions=[];G.Delete.actions[0]={};G.Delete.actions[0].event="mousedown";G.Delete.actions[0].tooltip="...";G.Delete.actions[0]["do"]=function(){fa=Gb(X);null!==fa&&nd(fa.mover.name);return!0};G.Move={};G.Move.actions=[];G.Move.actions[0]={};G.Move.actions[0].event="mousedown";G.Move.actions[0].tooltip="Move free elements by dragging the mouse";
-G.Move.actions[0]["do"]=function(){for(var a=X,b=null,c=1E6,d,e=0;e<u.free.length;e++){var f=u.free[e];if(!f.pinned&&!1!==f.visible&&!0!==f.tmp){var k,m,n,p=z.drawingstate.matrix.sdet;if("P"===f.kind){m=g.normalizeZ(f.homog);if(!g._helper.isAlmostReal(m))continue;k=m.value[0].value.real-a.x;m=m.value[1].value.real-a.y;n=Math.sqrt(k*k+m*m);if(f.narrow&&n>("number"===typeof f.narrow?f.narrow:20)/p)continue}else if("C"===f.kind)m=u.csnames[f.args[0]],n=f.radius,k=l.div(m.homog.value[0],m.homog.value[2]).value.real,
-m=l.div(m.homog.value[1],m.homog.value[2]).value.real,k-=a.x,m-=a.y,n=Math.sqrt(k*k+m*m)-n.value.real,m=k=0,0>n&&(n=-n),n+=30/p;else if("L"===f.kind)k=f.homog,n=l,m=n.add(n.mult(k.value[0],n.conjugate(k.value[0])),n.mult(k.value[1],n.conjugate(k.value[1]))),m=g.scaldiv(n.sqrt(m),k),n=m.value[0].value.real*a.x+m.value[1].value.real*a.y+m.value[2].value.real,k=-m.value[0].value.real*n,m=-m.value[1].value.real*n,0>n&&(n=-n),n+=25/p;else if("Text"===f.kind){if(!f.homog||f.dock||!f._bbox)continue;m=z.from(a.x,
-a.y,1);k=Math.max(0,m[0]-f._bbox.right,f._bbox.left-m[0]);m=Math.max(0,m[1]-f._bbox.bottom,f._bbox.top-m[1]);n=Math.sqrt(k*k+m*m);if(20<n)continue;n/=p;m=g.normalizeZ(f.homog);if(!g._helper.isAlmostReal(m))continue;k=m.value[0].value.real-a.x;m=m.value[1].value.real-a.y}else continue;n<c+.2/p&&(c=n,b=f,d={x:k,y:m})}}console.log("Moving "+(b?b.name:"nothing"));fa=null===b?null:{mover:b,offset:d,prev:{x:a.x,y:a.y}};return!0};G.Point={};G.Point.actions=[];G.Point.actions[0]={};G.Point.actions[0].event=
-"mousedown";G.Point.actions[0].tooltip="Add a single point with the mouse";G.Point.actions[0]["do"]=function(){Ha({type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]});return!0};G.Mid={};G.Mid.actions=[];G.Mid.actions[0]={};G.Mid.actions[0].event="mousedown";G.Mid.actions[0].tooltip="Construct two points and their midpoint by dragging";G.Mid.actions[0]["do"]=function(){mb();return!0};G.Mid.actions[1]={};G.Mid.actions[1].event="mousemove";G.Mid.actions[1]["do"]=function(){Sb("Mid");return!0};G.Mid.actions[2]=
-{};G.Mid.actions[2].event="mouseup";G.Mid.actions[2]["do"]=function(){tb();return!0};G.Circle={};G.Circle.actions=[];G.Circle.actions[0]={};G.Circle.actions[0].event="mousedown";G.Circle.actions[0].tooltip="Construct two points and a circle by dragging the mouse";G.Circle.actions[0]["do"]=function(){mb();return!0};G.Circle.actions[1]={};G.Circle.actions[1].event="mousemove";G.Circle.actions[1]["do"]=function(){Sb("CircleMP");return!0};G.Circle.actions[2]={};G.Circle.actions[2].event="mouseup";G.Circle.actions[2]["do"]=
-function(){tb();return!0};G.Compass={};G.Compass.actions=[];G.Compass.actions[0]={};G.Compass.actions[0].event="mousedown";G.Compass.actions[0].tooltip="...";G.Compass.actions[0]["do"]=function(){mb();return!0};G.Compass.actions[1]={};G.Compass.actions[1].event="mousedown";G.Compass.actions[1].tooltip="...";G.Compass.actions[1]["do"]=function(){mb();return!0};G.Compass.actions[2]={};G.Compass.actions[2].event="mousedown";G.Compass.actions[2].tooltip="...";G.Compass.actions[2]["do"]=function(){mb();
-Ha({type:"Compass",name:Ta(),labeled:!0,args:[ua[0].name,ua[1].name,ua[2].name]});return!0};G.Line={};G.Line.actions=[];G.Line.actions[0]={};G.Line.actions[0].event="mousedown";G.Line.actions[0].tooltip="Construct two points and their connecting line by dragging the mouse";G.Line.actions[0]["do"]=function(){mb();return!0};G.Line.actions[1]={};G.Line.actions[1].event="mousemove";G.Line.actions[1]["do"]=function(){Sb("Join");return!0};G.Line.actions[2]={};G.Line.actions[2].event="mouseup";G.Line.actions[2]["do"]=
-function(){tb();return!0};G.Segment={};G.Segment.actions=[];G.Segment.actions[0]={};G.Segment.actions[0].event="mousedown";G.Segment.actions[0].tooltip="Draw a segment by dragging the mouse";G.Segment.actions[0]["do"]=function(){mb();return!0};G.Segment.actions[1]={};G.Segment.actions[1].event="mousemove";G.Segment.actions[1]["do"]=function(){Sb("Segment");return!0};G.Segment.actions[2]={};G.Segment.actions[2].event="mouseup";G.Segment.actions[2]["do"]=function(){tb();return!0};G.Parallel={};G.Parallel.actions=
-[];G.Parallel.actions[0]={};G.Parallel.actions[0].event="mousedown";G.Parallel.actions[0].tooltip="Construct a parallel line by dragging a line";G.Parallel.actions[0]["do"]=function(){return ld()};G.Parallel.actions[1]={};G.Parallel.actions[1].event="mousemove";G.Parallel.actions[1]["do"]=function(){var a={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1],tmp:!0},a=Ha(a);Hb=Ha({type:"Para",name:Ta(),labeled:!0,args:[ua[0].name,a.name]});sc(a);return!0};G.Parallel.actions[2]={};G.Parallel.actions[2].event=
-"mouseup";G.Parallel.actions[2]["do"]=function(){tb();return!0};G.Orthogonal={};G.Orthogonal.actions=[];G.Orthogonal.actions[0]={};G.Orthogonal.actions[0].event="mousedown";G.Orthogonal.actions[0].tooltip="Construct a orthogonal line by dragging a line";G.Orthogonal.actions[0]["do"]=function(){if(ld()){var a={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1],tmp:!0},a=Ha(a);Hb=Ha({type:"Perp",name:Ta(),labeled:!0,args:[ua[0].name,a.name]});sc(a);return!0}return!1};G.Orthogonal.actions[1]={};G.Orthogonal.actions[1].event=
-"mouseup";G.Orthogonal.actions[1]["do"]=function(){tb();return!0};G.Intersection={};G.Intersection.actions=[];G.Intersection.actions[0]={};G.Intersection.actions[0].event="mousedown";G.Intersection.actions[0].tooltip="Select two elements to define their intersection";G.Intersection.actions[0]["do"]=function(){return md()};G.Intersection.actions[1]={};G.Intersection.actions[1].event="mousedown";G.Intersection.actions[1]["do"]=function(){return md()?(Hb=Ha({type:"Meet",name:Ta(),labeled:!0,args:[ua[0].name,
-ua[1].name]}),!0):!1};var $a={},z={drawingstate:{}};z.drawingstate.linecolor="rgb(0,0,255)";z.drawingstate.linecolorraw=[0,0,1];z.drawingstate.pointcolor="rgb(0,255,0)";z.drawingstate.pointcolorraw=[0,1,0];z.drawingstate.textcolor="rgb(0,0,0)";z.drawingstate.textcolorraw=[0,0,0];z.drawingstate.alpha=1;z.drawingstate.pointsize=4;z.drawingstate.linesize=1;z.drawingstate.textsize=null;z.drawingstate.matrix={};z.drawingstate.matrix.a=25;z.drawingstate.matrix.b=0;z.drawingstate.matrix.c=0;z.drawingstate.matrix.d=
-25;z.drawingstate.matrix.tx=250.5;z.drawingstate.matrix.ty=250.5;z.drawingstate.matrix.det=z.drawingstate.matrix.a*z.drawingstate.matrix.d-z.drawingstate.matrix.b*z.drawingstate.matrix.c;z.drawingstate.matrix.sdet=Math.sqrt(z.drawingstate.matrix.det);z.drawingstate.initialmatrix={};z.drawingstate.initialmatrix.a=z.drawingstate.matrix.a;z.drawingstate.initialmatrix.b=z.drawingstate.matrix.b;z.drawingstate.initialmatrix.c=z.drawingstate.matrix.c;z.drawingstate.initialmatrix.d=z.drawingstate.matrix.d;
-z.drawingstate.initialmatrix.tx=z.drawingstate.matrix.tx;z.drawingstate.initialmatrix.ty=z.drawingstate.matrix.ty;z.drawingstate.initialmatrix.det=z.drawingstate.matrix.det;z.drawingstate.initialmatrix.sdet=z.drawingstate.matrix.sdet;z.clone=function(a){if(null===a||"object"!==typeof a)return a;var b=a.constructor(),c;for(c in a)b[c]=z.clone(a[c]);return b};$a.backup=z.clone(z.drawingstate);$a.stack=[];z.clone(z.drawingstate);z.reset=function(){z.drawingstate.matrix.a=z.drawingstate.initialmatrix.a;
-z.drawingstate.matrix.b=z.drawingstate.initialmatrix.b;z.drawingstate.matrix.c=z.drawingstate.initialmatrix.c;z.drawingstate.matrix.d=z.drawingstate.initialmatrix.d;z.drawingstate.matrix.tx=z.drawingstate.initialmatrix.tx;z.drawingstate.matrix.ty=z.drawingstate.initialmatrix.ty;z.drawingstate.matrix.det=z.drawingstate.initialmatrix.det;z.drawingstate.matrix.sdet=z.drawingstate.initialmatrix.sdet};z.from=function(a,b,c){a/=c;b/=c;c=z.drawingstate.matrix;return[a*c.a-b*c.b+c.tx,a*c.c-b*c.d-c.ty]};z.to=
-function(a,b){var c=z.drawingstate.matrix,d=a-c.tx,e=b+c.ty;return[(d*c.d-e*c.b)/c.det,-(-d*c.c+e*c.a)/c.det,1]};z.toMat=function(){var a=z.drawingstate.matrix;return g.realMatrix([[a.d,-a.b,-a.tx*a.d-a.ty*a.b],[a.c,-a.a,-a.tx*a.c-a.ty*a.a],[0,0,a.det]])};z.dumpTrafo=function(){function a(a){return Math.round(1E3*a)/1E3}var b=z.drawingstate.matrix;console.log("a:"+a(b.a)+" b:"+a(b.b)+" c:"+a(b.c)+" d:"+a(b.d)+" tx:"+a(b.ty)+" ty:"+a(b.tx))};z.setMat=function(a,b,c,d,e,f){var g=z.drawingstate.matrix;
-g.a=a;g.b=b;g.c=c;g.d=d;g.tx=e;g.ty=f;g.det=a*d-b*c;g.sdet=Math.sqrt(g.det)};z.scaleAndOrigin=function(a,b,c){z.setMat(a,0,0,a,b,c)};z.visibleRect=function(a,b,c,d){var e=c-a,f=b-d,e=da*f<ca*e?da/e:ca/f;z.setMat(e,0,0,e,(da-e*(a+c))/2,(ca-e*(b+d))/2)};z.applyMat=function(a,b,c,d,e,f){var g=z.drawingstate.matrix;z.setMat(g.a*a+g.c*b,g.b*a+g.d*b,g.a*c+g.c*d,g.b*c+g.d*d,g.a*e+g.c*f+g.tx,g.b*e+g.d*f+g.ty)};z.translate=function(a,b){z.applyMat(1,0,0,1,a,b)};z.rotate=function(a){var b=Math.cos(a);a=Math.sin(a);
-z.applyMat(b,a,-a,b,0,0)};z.scale=function(a){z.applyMat(a,0,0,a,0,0)};z.gsave=function(){$a.stack.push(z.clone(z.drawingstate))};z.grestore=function(){0!==$a.stack.length&&(z.drawingstate=$a.stack.pop())};z.greset=function(){z.drawingstate=z.clone($a.backup);z.drawingstate.matrix.ty-=ca;z.drawingstate.initialmatrix.ty-=ca;$a.stack=[]};z.createnewbackup=function(){z.drawingstate.initialmatrix.a=z.drawingstate.matrix.a;z.drawingstate.initialmatrix.b=z.drawingstate.matrix.b;z.drawingstate.initialmatrix.c=
-z.drawingstate.matrix.c;z.drawingstate.initialmatrix.d=z.drawingstate.matrix.d;z.drawingstate.initialmatrix.tx=z.drawingstate.matrix.tx;z.drawingstate.initialmatrix.ty=z.drawingstate.matrix.ty;z.drawingstate.initialmatrix.det=z.drawingstate.matrix.det;z.drawingstate.initialmatrix.sdet=z.drawingstate.matrix.sdet;$a.backup=z.clone(z.drawingstate)};z.makecolor=function(a,b,c){a=Math.floor(255*a);b=Math.floor(255*b);c=Math.floor(255*c);return 1===z.drawingstate.alpha?"rgb("+a+","+b+","+c+")":"rgba("+
-a+","+b+","+c+","+z.drawingstate.alpha+")"};z.setcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.linecolor=z.drawingstate.pointcolor=z.makecolor(b,c,a);z.drawingstate.linecolorraw=z.drawingstate.pointcolorraw=[b,c,a]};z.setlinecolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.linecolor=z.makecolor(b,c,a);z.drawingstate.linecolorraw=[b,c,a]};z.settextcolor=function(a){var b=a.value[0].value.real,
-c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.textcolor=z.makecolor(b,c,a);z.drawingstate.textcolorraw=[b,c,a]};z.setpointcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;z.drawingstate.pointcolor=z.makecolor(b,c,a);z.drawingstate.pointcolorraw=[b,c,a]};z.setalpha=function(a){z.drawingstate.alpha=a.value.real;z.drawingstate.linecolor=z.makecolor(z.drawingstate.linecolorraw[0],z.drawingstate.linecolorraw[1],z.drawingstate.linecolorraw[2]);
-z.drawingstate.pointcolor=z.makecolor(z.drawingstate.pointcolorraw[0],z.drawingstate.pointcolorraw[1],z.drawingstate.pointcolorraw[2]);z.drawingstate.textcolor=z.makecolor(z.drawingstate.textcolorraw[0],z.drawingstate.textcolorraw[1],z.drawingstate.textcolorraw[2])};z.setpointsize=function(a){z.drawingstate.pointsize=a.value.real};z.setlinesize=function(a){z.drawingstate.linesize=a.value.real};z.settextsize=function(a){z.drawingstate.textsize=a.value.real};var la={clip:"none",pointColor:[1,0,0],lineColor:[0,
-0,1],pointSize:5,lineSize:1,alpha:1,overhangLine:1,overhangSeg:1,dimDependent:.7,fontFamily:"sans-serif",textsize:20,lineHeight:1.45};p.defaultAppearance&&$d(p.defaultAppearance);var Ub={},ud={UL:0,UR:1,LR:2,LL:3},vc=["in","out","good","backup"],hb=new Float64Array(0),db={};vc.forEach(function(a){db[a]=hb});var ma=hb,Ma=hb,za=hb,va,Aa,fb,Ja,vb,wc=!1,wd={toString:function(){return"RefineException"}},zd=null,L=null;p.enableTraceLog&&(L={logLength:Infinity,fullLog:[],currentMouseAndScripts:null,currentMover:null,
-currentStep:null,currentElement:null,currentParam:null,labelTracing2:w.wrap("tracing2"),labelTracing4:w.wrap("tracing4"),labelTracingSesq:w.wrap("tracingSesq"),postMouseHooks:[]},"number"===typeof p.enableTraceLog&&(L.logLength=p.enableTraceLog),oa.getTraceLog=fe,oa.formatTraceLog=ge,oa.addTraceHook=L.postMouseHooks.push.bind(L.postMouseHooks));Na.stateSize=12;xc.stateSize=24;var ib=[];gb.P=function(a){u.lines.forEach(function(b){b=Dd(a,b);b.holds()&&ib.push(b)});u.conics.forEach(function(b){b=Ed(a,
-b);b.holds()&&ib.push(b)})};gb.L=function(a){u.points.forEach(function(b){b=Dd(b,a);b.holds()&&ib.push(b)})};gb.S=gb.L;gb.C=function(a){u.points.forEach(function(b){b=Ed(b,a);b.holds()&&ib.push(b)})};var m={_helper:{},RandomLine:{}};m.RandomLine.kind="L";m.RandomLine.signature=[];m.RandomLine.updatePosition=function(a){a.homog=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.FreeLine={};m.FreeLine.kind="L";m.FreeLine.signature=
-[];m.FreeLine.isMovable=!0;m.FreeLine.initialize=function(a){a=m._helper.initializeLine(a);T(a)};m.FreeLine.getParamForInput=function(a,b,c){"mouse"===c?(a=g.cross(b,g.ez),a=g.cross(a,b)):a="homog"===c?b:g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(a)};m.FreeLine.getParamFromState=function(a){return Z(3)};m.FreeLine.putParamToState=function(a,b){T(b)};m.FreeLine.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.FreeLine.stateSize=6;m.RandomPoint={};m.RandomPoint.kind=
-"P";m.RandomPoint.signature=[];m.RandomPoint.updatePosition=function(a){a.homog=g.realVector([100*Math.random(),100*Math.random(),100*Math.random()]);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.Join={};m.Join.kind="L";m.Join.signature=["P","P"];m.Join.updatePosition=function(a){a.homog=g.cross(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Segment={};m.Segment.kind="S";m.Segment.signature=["P",
-"P"];m.Segment.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]];m.Segment.setSegmentPos(a,g.cross(b.homog,c.homog),g.scalmult(c.homog.value[2],b.homog),g.scalmult(b.homog.value[2],c.homog))};m.Segment.setSegmentPos=function(a,b,c,d){b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line");b=g.turnIntoCSList([c,d]);b=g.normalizeMax(b);a.startpos=b.value[0];a.endpos=b.value[1]};m.Meet={};m.Meet.kind="P";m.Meet.signature=["L","L"];m.Meet.updatePosition=function(a){a.homog=g.cross(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.Meet.visiblecheck=function(a){var b=!0,c=u.csnames[a.args[0]],d=u.csnames[a.args[1]];"S"===c.kind&&(b=sd(a,c));b&&"S"===d.kind&&(b=sd(a,d));a.isshowing=b};m._helper.midpoint=function(a,b){return g.normalizeMax(g.add(g.scalmult(b.value[2],a),g.scalmult(a.value[2],b)))};m.Mid={};m.Mid.kind="P";m.Mid.signature=["P","P"];m.Mid.updatePosition=function(a){var b=m._helper.midpoint(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.homog=w.withUsage(b,"Point")};m.Perp={};m.Perp.kind="L";m.Perp.signature=["L","P"];m.Perp.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,b=g.turnIntoCSList([b.value[0],b.value[1],l.zero]);a.homog=g.cross(b,c);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Para={};m.Para.kind="L";m.Para.signature=["L","P"];m.Para.updatePosition=function(a){var b=u.csnames[a.args[1]].homog;a.homog=g.cross(g.cross(g.linfty,
-u.csnames[a.args[0]].homog),b);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.Horizontal={};m.Horizontal.kind="L";m.Horizontal.signature=["P"];m.Horizontal.updatePosition=function(a){a.homog=g.cross(g.ex,u.csnames[a.args[0]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.HorizontalLine={};m.HorizontalLine.kind="L";m.HorizontalLine.signature=[];m.HorizontalLine.isMovable=!0;m.HorizontalLine.initialize=function(a){a=m._helper.initializeLine(a);
-a=g.turnIntoCSList([l.zero,a.value[1],a.value[2]]);a=g.normalizeMax(a);T(a)};m.HorizontalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=g.cross(b,g.ex);else if("homog"===c){if(0!==b.value[0].real||0!==b.value[0].imag)b=g.turnIntoCSList([l.zero,b.value[1],b.value[2]])}else b=g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(b)};m.HorizontalLine.getParamFromState=function(a){return Z(3)};m.HorizontalLine.putParamToState=function(a,b){T(b)};m.HorizontalLine.updatePosition=function(a){var b=
-Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.HorizontalLine.stateSize=6;m.Vertical={};m.Vertical.kind="L";m.Vertical.signature=["P"];m.Vertical.updatePosition=function(a){a.homog=g.cross(g.ey,u.csnames[a.args[0]].homog);a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};m.VerticalLine={};m.VerticalLine.kind="L";m.VerticalLine.signature=[];m.VerticalLine.isMovable=!0;m.VerticalLine.initialize=function(a){a=m._helper.initializeLine(a);a=g.turnIntoCSList([a.value[0],l.zero,a.value[2]]);
-a=g.normalizeMax(a);T(a)};m.VerticalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=g.cross(b,g.ey);else if("homog"===c){if(0!==b.value[1].real||0!==b.value[1].imag)b=g.turnIntoCSList([b.value[0],l.zero,b.value[2]])}else b=g.turnIntoCSList([l.zero,l.zero,l.zero]);return g.normalizeMax(b)};m.VerticalLine.getParamFromState=function(a){return Z(3)};m.VerticalLine.putParamToState=function(a,b){T(b)};m.VerticalLine.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,"Line")};m.VerticalLine.stateSize=
-6;m.LineByFixedAngle={};m.LineByFixedAngle.kind="L";m.LineByFixedAngle.signature=["L","P"];m.LineByFixedAngle.initialize=function(a){var b=l._helper.input(a.angle),c=l.cos(b),b=l.sin(b);a.rot=g.turnIntoCSList([g.turnIntoCSList([b,c,l.zero]),g.turnIntoCSList([l.neg(c),b,l.zero]),g.turnIntoCSList([l.zero,l.zero,l.zero])])};m.LineByFixedAngle.updatePosition=function(a){var b=u.csnames[a.args[1]],c=g.productMV(a.rot,u.csnames[a.args[0]].homog);a.homog=g.cross(b.homog,c);a.homog=g.normalizeMax(a.homog);
-a.homog=w.withUsage(a.homog,"Line")};m.Through={};m.Through.kind="L";m.Through.signature=["P"];m.Through.isMovable=!0;m.Through.initialize=function(a){a=a.dir?w.wrap(a.dir):g.realVector([a.pos[1],-a.pos[0],0]);T(a)};m.Through.getParamForInput=function(a,b,c){a="dir"===c||"mouse"===c?g.cross(u.csnames[a.args[0]].homog,b):"homog"===c?b:g.turnIntoCSList([l.zero,l.zero,l.zero]);a=g.cross(g.linfty,a);return g.normalizeMax(a)};m.Through.getParamFromState=function(a){return Z(3)};m.Through.putParamToState=
-function(a,b){T(b)};m.Through.updatePosition=function(a){var b=Z(3);T(b);b=g.cross(u.csnames[a.args[0]].homog,b);b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.Through.stateSize=6;m.Through.set_angle=function(a,b){if("number"===b.ctype){var c=l.cos(b),d=l.sin(b),c=g.turnIntoCSList([c,d,l.real(0)]);Ia(a,c,"dir")}};m.Through.set_slope=function(a,b){if("number"===b.ctype){var c=g.turnIntoCSList([l.real(1),b,l.real(0)]);Ia(a,c,"dir")}};m.Free={};m.Free.kind="P";m.Free.signature=[];m.Free.isMovable=
-!0;m.Free.initialize=function(a){a=m._helper.initializePoint(a);T(a)};m.Free.getParamForInput=function(a,b,c){if("mouse"===c&&cc&&0!==Wa){b=g.normalizeZ(b);a=b.value[0].value.real;c=b.value[1].value.real;var d=Math.round(a/Wa)*Wa,e=Math.round(c/Wa)*Wa;.2>Math.abs(d-a)&&.2>Math.abs(e-c)&&(b=g.realVector([d,e,1]))}return g.normalizeMax(b)};m.Free.getParamFromState=function(a){return Z(3)};m.Free.putParamToState=function(a,b){T(b)};m.Free.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b,
-"Point")};m.Free.stateSize=6;m._helper.projectPointToLine=function(a,b){var c=g.turnIntoCSList([b.value[0],b.value[1],l.zero]),c=g.cross(c,a);return g.normalizeMax(g.cross(c,b))};m.PointOnLine={};m.PointOnLine.kind="P";m.PointOnLine.signature=["L"];m.PointOnLine.isMovable=!0;m.PointOnLine.initialize=function(a){var b=m._helper.initializePoint(a);a=u.csnames[a.args[0]].homog;var b=m._helper.projectPointToLine(b,a),b=g.normalizeMax(b),c=g.cross(g.linfty,b);g.normalizeMax(c);T(b);T(a);fb=!1};m.PointOnLine.updatePosition=
-function(a,b){var c,d=u.csnames[a.args[0]].homog;c=Z(3);Z(3);if(!b){va=a.stateIdx;var e=ma;ma=za;var f=Z(3),l=Z(3);ma=e;e=g.cross(l,d);g._helper.isAlmostZero(e)&&(e=g.cross(g.linfty,d));f=m._helper.CircleMP(e,f);f=m._helper.IntersectLC(d,f);e=m._helper.pointReflection(e,c);c=Ad(f[0],f[1],c,e)[0]}c=g.normalizeMax(c);T(c);T(d);a.homog=w.withUsage(c,"Point")};m.PointOnLine.getParamForInput=function(a,b,c){return b=m._helper.projectPointToLine(b,u.csnames[a.args[0]].homog)};m.PointOnLine.getParamFromState=
-function(a){return Z(3)};m.PointOnLine.putParamToState=function(a,b){return T(b)};m.PointOnLine.stateSize=12;m.PointOnCircle={};m.PointOnCircle.kind="P";m.PointOnCircle.signature=["C"];m.PointOnCircle.isMovable=!0;m.PointOnCircle.initialize=function(a){var b=u.csnames[a.args[0]];a=g.normalizeZ(m._helper.initializePoint(a));var c=g.normalizeZ(m._helper.CenterOfCircle(b.matrix)),d=g.sub(a,c),d=g.turnIntoCSList([d.value[1],l.neg(d.value[0]),l.zero]),c=g.cross(a,c),b=m._helper.IntersectLC(c,b.matrix),
-c=g.projectiveDistMinScal(a,b[0]);g.projectiveDistMinScal(a,b[1])<c?(a=b[1],b=b[0]):(a=b[0],b=b[1]);T(d);T(a);T(b);fb=!1};m.PointOnCircle.putParamToState=function(a,b){T(b)};m.PointOnCircle.getParamFromState=function(a){return Z(3)};m.PointOnCircle.getParamForInput=function(a,b,c){c=g.normalizeZ(m._helper.CenterOfCircle(u.csnames[a.args[0]].matrix));b=g.sub(b,c);va=a.stateIdx;a=Z(3);var d=g.normalizeZ(Z(3));c=g.sub(d,c);0>l.sub(l.mult(a.value[0],c.value[1]),l.mult(a.value[1],c.value[0])).value.real&&
-(b=g.neg(b));return g.turnIntoCSList([b.value[1],l.neg(b.value[0]),l.zero])};m.PointOnCircle.parameterPath=function(a,b,c,d,e){d=g.normalizeAbs(d);e=g.normalizeAbs(e);var f=g.scalproduct(d,e);if(0<=f.value.real)return xd(a,b,c,d,e);a=g.turnIntoCSList([l.sub(d.value[1],e.value[1]),l.sub(e.value[0],d.value[0]),l.zero]);f=g.scalproduct(d,a);0>f.value.real&&(a=g.neg(a));0>b?(b=2*b+1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.25,(1-c)*f)):(b=2*b-1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.75,(1-c)*f));var k=l.sub(l.real(1),
-c);b=l.mult(c,c);f=l.mult(k,k);c=l.mult(c,k);d=g.scalmult(f,d);d=g.add(d,g.scalmult(c,a));return d=g.add(d,g.scalmult(b,e))};m.PointOnCircle.updatePosition=function(a){var b=Z(3);T(b);var c=u.csnames[a.args[0]],b=g.productMV(c.matrix,b),c=m._helper.IntersectLC(b,c.matrix),c=Na(c[0],c[1]),b=g.normalizeMax(c.value[0]);a.homog=w.withUsage(b,"Point");a.antipodalPoint=c.value[1]};m.PointOnCircle.stateSize=6+Na.stateSize;m.OtherPointOnCircle={};m.OtherPointOnCircle.kind="P";m.OtherPointOnCircle.signature=
-["P"];m.OtherPointOnCircle.signatureConstraints=function(a){return"PointOnCircle"===u.csnames[a.args[0]].type};m.OtherPointOnCircle.updatePosition=function(a){var b=u.csnames[a.args[0]].antipodalPoint,b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment={};m.PointOnSegment.kind="P";m.PointOnSegment.signature=["S"];m.PointOnSegment.isMovable=!0;m.PointOnSegment.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnSegment.getParamForInput(a,b);Va(a)};m.PointOnSegment.getParamForInput=
-function(a,b){var c=u.csnames[a.args[0]],d=c.homog,d=g.turnIntoCSList([d.value[0],d.value[1],l.zero]),e=g.sub(c.startpos,c.endpos),c=g.crossratio3(e,c.startpos,c.endpos,b,d);0>c.value.real&&(c=l.complex(0,c.value.imag));1<c.value.real&&(c=l.complex(1,c.value.imag));return c};m.PointOnSegment.getParamFromState=function(a){return wb()};m.PointOnSegment.putParamToState=function(a,b){Va(b)};m.PointOnSegment.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]],d=c.startpos,c=g.sub(c.endpos,
-d),b=g.add(d,g.scalmult(b,c)),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment.stateSize=2;m._helper.projectPointToCircle=function(a,b){var c=m._helper.CenterOfCircle(a.matrix),c=g.normalizeMax(c),c=g.normalizeMax(g.cross(b,c)),c=m._helper.IntersectLC(c,a.matrix),d=g.projectiveDistMinScal(b,c[0]),e=g.projectiveDistMinScal(b,c[1]);return d<e?c[0]:c[1]};m.PointOnArc={};m.PointOnArc.kind="P";m.PointOnArc.signature=["C"];m.PointOnArc.signatureConstraints=function(a){return u.csnames[a.args[0]].isArc};
-m.PointOnArc.isMovable=!0;m.PointOnArc.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnArc.getParamForInput(a,b);T(a)};m.PointOnArc.getParamForInput=function(a,b){var c=u.csnames[a.args[0]],d=m._helper.projectPointToCircle(c,b),c=g.normalizeMax(g.crossratio3harm(c.startPoint,c.endPoint,c.viaPoint,d,g.ii)),d=l.div(c.value[0],c.value[1]);0>d.value.real&&(c=-1>d.value.real?g.realVector([1,0]):g.realVector([0,1]));return c};m.PointOnArc.getParamFromState=function(a){return Z(2)};
-m.PointOnArc.putParamToState=function(a,b){T(b)};m.PointOnArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=b.startPoint,d=b.viaPoint,e=b.endPoint,f=g.ii,k=g.cross(c,f),d=g.cross(d,f),n=g.cross(e,f),n=g.turnIntoCSList([k,n]),k=g.transpose(n),n=g.conjugate(n),k=g.productMM(n,k),d=g.productMV(n,d),k=g.productMV(g.adjoint2(k),d),d=k.value[0],k=k.value[1],n=Z(2);T(n);c=g.normalizeMax(g.add(g.scalmult(l.mult(d,n.value[0]),c),g.scalmult(l.mult(k,n.value[1]),e)));b=m._helper.conicOtherIntersection(b.matrix,
-f,c);a.homog=w.withUsage(b,"Point")};m.PointOnArc.stateSize=4;m._helper.CenterOfCircle=function(a){return g.turnIntoCSList([a.value[2].value[0],a.value[2].value[1],l.neg(a.value[0].value[0])])};m._helper.CenterOfConic=function(a){a=g.adjoint3(a);return{ctype:"list",value:[a.value[2].value[0],a.value[2].value[1],a.value[2].value[2]]}};m.CenterOfConic={};m.CenterOfConic.kind="P";m.CenterOfConic.signature=["C"];m.CenterOfConic.updatePosition=function(a){var b=m._helper.CenterOfConic(u.csnames[a.args[0]].matrix);
-a.homog=b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.CircleMP=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),f=l.zero,c=g.turnIntoCSList([g.turnIntoCSList([e,f,c]),g.turnIntoCSList([f,e,d]),g.turnIntoCSList([c,d,f])]),e=w.mult(w.mult(b,c),b),d=w.mult(w.mult(b,g.fund),b),e=w.mult(e,g.fund),c=w.mult(d,c);return g.sub(e,c)};m.CircleMP={};m.CircleMP.kind="C";m.CircleMP.signature=["P","P"];m.CircleMP.updatePosition=function(a){a.matrix=m._helper.CircleMP(u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Circle")};m.CircleMr={};m.CircleMr.kind="C";m.CircleMr.signature=["P"];m.CircleMr.isMovable=!0;m.CircleMr.initialize=function(a){Va(l.real(a.radius))};m.CircleMr.getParamForInput=function(a,b,c){if("radius"===c)return b;a=u.csnames[a.args[0]].homog;a=g.normalizeZ(a);b=g.normalizeZ(b);b=g.sub(a,b);return b=g.abs(b)};m.CircleMr.getParamFromState=function(a){return wb()};m.CircleMr.putParamToState=function(a,
-b){Va(b)};m.CircleMr.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]].homog,d=l.mult(c.value[2],b),d=l.mult(d,d);if(!l._helper.isFinite(d)&&!l._helper.isNaN(d))return g.fund;c=m._helper.ScaledCircleMrr(c,d);a.matrix=w.withUsage(c,"Circle");a.radius=b};m.CircleMr.stateSize=2;m.CircleMr.set_radius=function(a,b){"number"===b.ctype&&Ia(a,b,"radius")};m._helper.ScaledCircleMrr=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),e=g.scalmult(e,g.turnIntoCSList([c,d,e])).value,
-c=g.turnIntoCSList([c,d]),c=l.sub(g.scalproduct(c,c),b),e=m._helper.buildConicMatrix([e[2],l.zero,e[2],e[0],e[1],c]);return g.normalizeMax(e)};m.Compass={};m.Compass.kind="C";m.Compass.signature=["P","P","P"];m.Compass.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=b.value[2],f=c.value[2],k=d.value[2],b=g.scalmult(l.mult(f,k),b),c=g.scalmult(l.mult(e,k),c),d=g.scalmult(l.mult(e,f),d),b=g.sub(c,b),d=m._helper.ScaledCircleMrr(d,
-g.scalproduct(b,b));a.matrix=w.withUsage(d,"Circle")};m._helper.getConicType=function(a){if(1E-16>l.abs(g.det(a)).value.real)return"degenerate";var b=l.mult(a.value[0].value[0],a.value[1].value[1]),b=l.sub(b,l.pow(a.value[0].value[1],l.real(2))),b=b.value.real;return 1E-16>Math.abs(b)?"parabola":1E-16<b?"ellipsoid":"hyperbola"};m._helper.ConicBy5=function(a,b,c,d,e,f){a=g.turnIntoCSList([g.cross(c,d)]);var k=g.turnIntoCSList([g.cross(b,e)]);b=g.turnIntoCSList([g.cross(b,c)]);d=g.turnIntoCSList([g.cross(d,
-e)]);return m._helper.conicFromTwoDegenerates(a,k,b,d,f)};m._helper.conicFromTwoDegenerates=function(a,b,c,d,e){a=w.mult(g.transpose(b),a);c=w.mult(g.transpose(d),c);a=g.add(a,g.transpose(a));c=g.add(c,g.transpose(c));d=w.mult(w.mult(e,a),e);e=w.mult(w.mult(e,c),e);c=w.mult(d,c);e=w.mult(e,a);return g.sub(c,e)};m.ConicBy5={};m.ConicBy5.kind="C";m.ConicBy5.signature=["P","P","P","P","P"];m.ConicBy5.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,
-u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic={};m.FreeConic.kind="C";m.FreeConic.signature=[];m.FreeConic.initialize=function(a){var b;b=a.pos?m._helper.inputConic(a.pos):g.zeromatrix(l.real(3),l.real(3));m.FreeConic.putParamToState(a,b)};m.FreeConic.getParamForInput=function(a,b,c){return g.normalizeMax(b)};m.FreeConic.getParamFromState=function(a){return m._helper.buildConicMatrix(Z(6).value)};
-m.FreeConic.putParamToState=function(a,b){for(var c=0;3>c;++c)for(var d=0;d<=c;++d)Va(b.value[c].value[d])};m.FreeConic.updatePosition=function(a){var b=Z(6);T(b);a.matrix=m._helper.buildConicMatrix(b.value);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic.set_matrix=function(a,b){g._helper.isNumberMatrixMN(b,3,3)&&Ia(a,g.add(b,g.transpose(b)),"matrix")};m.FreeConic.stateSize=12;m._helper.buildConicMatrix=function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5];return g.turnIntoCSList([g.turnIntoCSList([a[0],
-b,d]),g.turnIntoCSList([b,c,e]),g.turnIntoCSList([d,e,f])])};m._helper.splitDegenConic=function(a){var b=g.adjoint3(a),c=0,d,e,f=l.abs2(b.value[0].value[0]).value.real;for(d=1;3>d;d++)e=l.abs2(b.value[d].value[d]).value.real,e>f&&(c=d,f=e);d=l.sqrt(l.mult(l.real(-1),b.value[c].value[c]));if(1E-16>l.abs2(d).value.real)return a=g.turnIntoCSList([l.zero,l.zero,l.zero]),[a,a];c=l.real(c+1);e=g.column(b,c);e=g.scaldiv(d,e);d=e.value[0];f=e.value[1];e=e.value[2];d=g.turnIntoCSList([g.turnIntoCSList([l.real(0),
-e,l.mult(l.real(-1),f)]),g.turnIntoCSList([l.mult(l.real(-1),e),l.real(0),d]),g.turnIntoCSList([f,l.mult(l.real(-1),d),l.real(0)])]);a=g.add(a,d);var k=0;for(d=f=b=0;3>d;d++)for(c=0;3>c;c++)e=l.abs2(a.value[d].value[c]).value.real,e>f&&(k=d,b=c,f=e);d=a.value[k];a=g.transpose(a);a=a.value[b];d=g.normalizeMax(d);a=g.normalizeMax(a);d=w.withUsage(d,"Line");a=w.withUsage(a,"Line");return[d,a]};m._helper.inputConic=function(a){var b="xx xy yy xz yz zz".split(" ").map(function(b){var d=l._helper.input(a[b]);
-b[0]!==b[1]&&(d=l.realmult(.5,d));return d});return m._helper.buildConicMatrix(b)};m.SelectConic={};m.SelectConic.kind="C";m.SelectConic.signature=["Cs"];m.SelectConic.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=m._helper.inputConic(a.pos);a=u.csnames[a.args[0]].results;for(var c=g.conicDist(b,a[0]),d=0,e=1;e<a.length;++e){var f=g.conicDist(b,a[e]);f<c&&(c=f,d=e)}return d};m.SelectConic.updatePosition=function(a){a.matrix=u.csnames[a.args[0]].results[a.param];a.matrix=g.normalizeMax(a.matrix);
-a.matrix=w.withUsage(a.matrix,"Conic")};m._helper.ConicBy4p1l=function(a,b,c,d,e,f){var k=g.scalproduct(b,f),n=g.scalproduct(c,f),p=g.scalproduct(d,f),q=g.scalproduct(e,f),t=g.det3(c,d,e),u=g.det3(b,c,e),v=g.det3(b,d,e),w=g.det3(b,c,d),x=l.mult,n=l.sqrt(x(x(n,q),x(t,u))),k=l.sqrt(x(x(k,p),x(v,w))),p=g.cross(g.cross(b,d),f);f=g.cross(g.cross(c,e),f);p=g.scalmult(n,p);k=g.scalmult(k,f);f=g.normalizeMax(g.add(p,k));k=g.normalizeMax(g.sub(p,k));k=Na(f,k);f=m._helper.ConicBy5(a,b,c,d,e,k.value[0]);a=m._helper.ConicBy5(a,
-b,c,d,e,k.value[1]);return[g.normalizeMax(f),g.normalizeMax(a)]};m.ConicBy4p1l={};m.ConicBy4p1l.kind="Cs";m.ConicBy4p1l.signature=["P","P","P","P","L"];m.ConicBy4p1l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog);a.results=b};m.ConicBy4p1l.stateSize=Na.stateSize;m._helper.ConicBy3p2l=function(a,b,c,d,e){function f(a,b,c,d){return l.sub(l.mult(a,d),l.mult(b,
-c))}var k=g.cross(a,b),m=g.cross(d,e);d=g.cross(d,k);e=g.cross(e,k);k=g.turnIntoCSList([d,e,m]);c=g.productVM(c,g.adjoint3(k));m=g.adjoint3(g.turnIntoCSList([g.scalmult(c.value[0],d),g.scalmult(c.value[1],e),g.scalmult(c.value[2],m)]));c=g.transpose(m);d=l.mult;e=g.productMV(c,a);a=e.value[0];e=e.value[1];k=g.productMV(c,b);b=k.value[0];var k=k.value[1],n=l.sqrt(d(a,e)),p=l.sqrt(d(b,k)),q,t=Array(4);for(q=0;4>q;++q){var u=(q&2)-1,v=d(l.real(((q&1)<<1)-1),n),w=d(l.real(u),p),x=f(e,v,k,w),y=f(b,w,a,
-v),u=f(a,e,b,k),z=l.add(l.add(f(b,k,a,e),f(k,w,e,v)),f(w,b,v,a)),v=d(x,x),w=d(y,y),A=d(z,z),B=d(x,y),x=d(x,z),y=d(y,z),B=l.sub(B,d(l.real(.5),d(u,u))),u=g.turnIntoCSList([g.turnIntoCSList([v,B,x]),g.turnIntoCSList([B,w,y]),g.turnIntoCSList([x,y,A])]),u=g.productMM(m,g.productMM(u,c)),u=g.turnIntoCSList([u.value[0].value[0],u.value[0].value[1],u.value[0].value[2],u.value[1].value[1],u.value[1].value[2],u.value[2].value[2]]);t[q]=u}return t};m.ConicBy3p2l={};m.ConicBy3p2l.kind="Cs";m.ConicBy3p2l.signature=
-["P","P","P","L","L"];m.ConicBy3p2l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value;c[d]=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])])}a.results=c};m.ConicBy3p2l.stateSize=48;m.ConicBy2p3l={};m.ConicBy2p3l.kind="Cs";m.ConicBy2p3l.signature=
-["P","P","L","L","L"];m.ConicBy2p3l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value,e=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])]);c[d]=g.normalizeMax(g.adjoint3(e))}a.results=c};m.ConicBy2p3l.stateSize=48;m.ConicBy1p4l={};m.ConicBy1p4l.kind=
-"Cs";m.ConicBy1p4l.signature=["P","L","L","L","L"];m.ConicBy1p4l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog),c=b[0],b=b[1],c=g.adjoint3(c),b=g.adjoint3(b),b=[c,b];a.results=b};m.ConicBy1p4l.stateSize=Na.stateSize;m.ConicParabolaPL={};m.ConicParabolaPL.kind="C";m.ConicParabolaPL.signature=["P","L"];m.ConicParabolaPL.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value,
-c=u.csnames[a.args[1]].homog.value,d=l.mult,e=l.neg,f=l.add,k=l.sub,n=b[0],p=b[1],q=b[2],t=c[0],b=c[1],c=c[2],v=d(q,q),x=d(t,t),y=d(b,b),z=d(q,c),A=e(q),q=f(x,y),y=d(v,y),x=d(v,x),e=d(e(v),d(t,b)),t=d(A,f(d(n,q),d(z,t))),b=d(A,f(d(p,q),d(z,b))),d=k(d(f(d(n,n),d(p,p)),q),d(v,d(c,c))),d=m._helper.buildConicMatrix([y,e,x,t,b,d]),d=g.normalizeMax(d);a.matrix=w.withUsage(d,"Conic")};m.ConicBy2Foci1P={};m.ConicBy2Foci1P.kind="Cs";m.ConicBy2Foci1P.signature=["P","P","P"];m.ConicBy2Foci1P.updatePosition=
-function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.ii,f=g.jj,k=g.normalizeMax(g.cross(b,d)),n=g.normalizeMax(g.cross(c,d)),p=g.normalizeMax(g.cross(d,e)),d=g.normalizeMax(g.cross(d,f)),n=m._helper.coHarmonic(p,d,k,n),k=g.normalizeMax(n[0]),n=g.normalizeMax(n[1]),e=g.turnIntoCSList([e]),p=g.turnIntoCSList([f]),d=g.turnIntoCSList([b]),q=g.turnIntoCSList([c]),f=m._helper.conicFromTwoDegenerates(e,p,d,q,k),f=g.normalizeMax(f),e=m._helper.conicFromTwoDegenerates(e,
-p,d,q,n),e=g.normalizeMax(e),f=g.normalizeMax(g.adjoint3(f)),e=g.normalizeMax(g.adjoint3(e));"ellipsoid"!==m._helper.getConicType(f)&&(k=f,f=e,e=k);g.almostequals(b,c).value&&(b=l.real(3),e=g.zeromatrix(b,b));a.results=[f,e]};m.ConicBy2Pol1P={};m.ConicBy2Pol1P.kind="C";m.ConicBy2Pol1P.signature=["P","L","P","L","P"];m.ConicBy2Pol1P.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,
-k=g.scalproduct,m=g.scalmult,n=g.sub,p=g.productMM,q=l.realmult,t=g.transpose,v=g.turnIntoCSList,x=n(m(k(c,b),f),m(q(2,k(c,f)),b)),y=n(m(k(e,d),f),m(q(2,k(e,f)),d)),z=v([g.cross(b,f)]),f=v([g.cross(d,f)]),y=p(t(z),v([g.cross(b,y)])),v=p(t(f),v([g.cross(d,x)])),p=p(t(z),f),b=k(b,e),c=k(d,c),d=g.add(m(c,y),m(b,v)),d=n(d,m(q(2,l.mult(b,c)),p)),d=g.add(d,t(d)),d=g.normalizeMax(d),d=w.withUsage(d,"Conic");a.matrix=d};m.ConicBy2Pol1L={};m.ConicBy2Pol1L.kind="C";m.ConicBy2Pol1L.signature=["P","L","P","L",
-"L"];m.ConicBy2Pol1L.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,k=g.scalproduct,m=g.scalmult,n=g.productMM,p=l.mult,q=g.transpose,t=g.turnIntoCSList,v=k(c,b),x=k(c,d),y=k(e,b),z=k(e,d),A=k(f,b),k=k(f,d),B=t([g.sub(m(p(y,k),c),m(p(x,A),e))]),b=g.add(n(q(t([m(p(y,x),f)])),t([g.sub(g.add(m(l.sub(p(v,k),p(x,A)),e),m(l.sub(p(z,A),p(y,k)),c)),m(g.det3(c,e,f),g.cross(b,d)))])),
-n(q(B),B)),b=g.add(b,q(b)),b=g.normalizeMax(b),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.conic1Pol3Inc=function(a,b,c,d,e){var f=g.scalproduct,k=g.scalmult,m=g.productMM,n=g.cross,p=l.realmult,q=l.mult,t=g.transpose,u=g.turnIntoCSList,v=g.det3,w=v(a,c,d),x=u([n(c,e)]),y=u([n(a,e)]),z=u([n(c,d)]),A=f(b,a),B=f(b,c);b=f(b,e);n=u([n(d,g.sub(k(A,e),k(p(2,b),a)))]);x=k(w,m(t(x),n));a=p(2,l.add(q(v(a,d,e),B),q(w,b)));a=l.sub(q(v(c,d,e),A),a);x=g.add(x,k(a,m(t(y),z)));x=g.add(x,t(x));return x=g.normalizeMax(x)};
-m.ConicBy1Pol3P={};m.ConicBy1Pol3P.kind="C";m.ConicBy1Pol3P.signature=["P","L","P","P","P"];m.ConicBy1Pol3P.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=w.withUsage(b,"Conic");a.matrix=b};m.ConicBy1Pol3L={};m.ConicBy1Pol3L.kind="C";m.ConicBy1Pol3L.signature=["P","L","L","L","L"];m.ConicBy1Pol3L.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[1]].homog,
-u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.normalizeMax(g.adjoint3(b)),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.coHarmonic=function(a,b,c,d){var e=g.realVector([100*Math.random(),100*Math.random(),1]),f=g.det3(e,c,a),k=g.det3(e,c,b);c=g.det3(e,d,a);d=g.det3(e,d,b);d=l.sqrt(l.mult(d,k));f=l.sqrt(l.mult(c,f));a=w.mult(a,d);f=w.mult(b,f);b=g.add(a,f);a=g.sub(a,f);return[b,a]};m.ConicInSquare={};m.ConicInSquare.kind="C";m.ConicInSquare.signature=
-["P","P","P","P"];m.ConicInSquare.updatePosition=function(a){var b=D.basismap(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog),c=l.one,c=m._helper.buildConicMatrix([c,c,c,l.real(-3),c,c]),b=g.adjoint3(b),b=g.productMM(g.productMM(g.transpose(b),c),b),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.ConicBy5lines={};m.ConicBy5lines.kind="C";m.ConicBy5lines.signature=["L","L","L","L","L"];m.ConicBy5lines.updatePosition=function(a){var b=
-m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.adjoint3(b);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.ConicFromPrincipalDirections={};m.ConicFromPrincipalDirections.kind="C";m.ConicFromPrincipalDirections.signature=["P","P","P"];m.ConicFromPrincipalDirections.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,
-d=u.csnames[a.args[2]].homog,e=m._helper.pointReflection(b,c),f=g.cross(c,b),b=g.turnIntoCSList([f.value[0],f.value[1],l.zero]),f=g.turnIntoCSList([f]),c=g.turnIntoCSList([g.cross(c,b)]),e=g.turnIntoCSList([g.cross(e,b)]);a.matrix=m._helper.conicFromTwoDegenerates(f,f,c,e,d);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.CircleBy3={};m.CircleBy3.kind="C";m.CircleBy3.signature=["P","P","P"];m.CircleBy3.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,
-u.csnames[a.args[1]].homog,g.ii,g.jj,u.csnames[a.args[2]].homog);a.matrix=g.normalizeMax(b);a.matrix=w.withUsage(a.matrix,"Circle")};m.ArcBy3={};m.ArcBy3.kind="C";m.ArcBy3.signature=["P","P","P"];m.ArcBy3.updatePosition=function(a){m.CircleBy3.updatePosition(a);a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog};m.ArcBy3.initialize=function(a){a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog;
-a.isArc=!0};m.PolarOfPoint={};m.PolarOfPoint.kind="L";m.PolarOfPoint.signature=["P","C"];m.PolarOfPoint.updatePosition=function(a){var b=w.mult(u.csnames[a.args[1]].matrix,u.csnames[a.args[0]].homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.PolarOfLine={};m.PolarOfLine.kind="P";m.PolarOfLine.signature=["L","C"];m.PolarOfLine.updatePosition=function(a){var b=u.csnames[a.args[0]],c=g.adjoint3(u.csnames[a.args[1]].matrix),b=w.mult(c,b.homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};
-m.AngleBisector={};m.AngleBisector.kind="Ls";m.AngleBisector.signature=["L","L","P"];m.AngleBisector.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.add,f=g.sub,k=g.abs,l=g.cross,m=g.scalmult,n=g.normalizeMax,p=g._helper.isAlmostZero,q=g.linfty,t=m(k(l(l(q,c),q)),b),b=m(k(l(l(q,b),q)),c),f=f(t,b),e=e(t,b);p(f)&&(f=l(l(l(q,e),q),d));p(e)&&(e=l(l(l(q,f),q),d));a.results=Na(n(f),n(e))};m.AngleBisector.stateSize=Na.stateSize;m._helper.IntersectLC=
-function(a,b){var c=l,d=g.crossOperator(a),e=g.transpose(d),e=w.mult(e,w.mult(b,d)),f=g.maxIndex(a,l.abs2),k,m,n,p;0===f?(f=e.value[1].value[1],k=e.value[1].value[2],m=e.value[2].value[1],n=e.value[2].value[2],p=a.value[0]):1===f?(f=e.value[0].value[0],k=e.value[0].value[2],m=e.value[2].value[0],n=e.value[2].value[2],p=a.value[1]):(f=e.value[0].value[0],k=e.value[0].value[1],m=e.value[1].value[0],n=e.value[1].value[1],p=a.value[2]);c=c.div(c.sqrt(c.sub(c.mult(k,m),c.mult(f,n))),p);c=g.add(e,g.scalmult(c,
-d));f=g.maxIndex(c,g.abs2);d=c.value[f];d=g.normalizeMax(d);d=w.withUsage(d,"Point");c=g.transpose(c);f=g.maxIndex(c,g.abs2);c=c.value[f];c=g.normalizeMax(c);c=w.withUsage(c,"Point");return[d,c]};m.IntersectLC={};m.IntersectLC.kind="Ps";m.IntersectLC.signature=["L","C"];m.IntersectLC.updatePosition=function(a){var b=m._helper.IntersectLC(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].matrix);a.results=Na(b[0],b[1])};m.IntersectLC.stateSize=Na.stateSize;m.OtherIntersectionCL={};m.OtherIntersectionCL.kind=
-"P";m.OtherIntersectionCL.signature=["C","L","P"];m.OtherIntersectionCL.updatePosition=function(a){var b=u.csnames[a.args[2]].homog,c=m._helper.IntersectLC(u.csnames[a.args[1]].homog,u.csnames[a.args[0]].matrix),d=c[0],c=c[1],e=g.projectiveDistMinScal(d,b),b=g.projectiveDistMinScal(c,b);a.homog=e<b?c:d;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m.IntersectCirCir={};m.IntersectCirCir.kind="Ps";m.IntersectCirCir.signature=["C","C"];m.IntersectCirCir.updatePosition=function(a){var b=
-u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]].matrix,d=g.scalmult(c.value[0].value[0],b.value[2]),c=g.scalmult(b.value[0].value[0],c.value[2]),d=g.sub(d,c),d=g.turnIntoCSList([d.value[0],d.value[1],l.realmult(.5,d.value[2])]),d=g.normalizeMax(d),b=m._helper.IntersectLC(d,b);a.results=Na(b[0],b[1])};m.IntersectCirCir.stateSize=Na.stateSize;m.OtherIntersectionCC={};m.OtherIntersectionCC.kind="P";m.OtherIntersectionCC.signature=["C","C","P"];m.OtherIntersectionCC.updatePosition=function(a){var b=
-u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]].matrix,d=u.csnames[a.args[2]].homog,e=g.scalmult(c.value[0].value[0],b.value[2]),c=g.scalmult(b.value[0].value[0],c.value[2]),e=g.sub(e,c),e=g.turnIntoCSList([e.value[0],e.value[1],l.realmult(.5,e.value[2])]),e=g.normalizeMax(e),e=m._helper.IntersectLC(e,b),b=e[0],e=e[1],c=g.projectiveDistMinScal(b,d),d=g.projectiveDistMinScal(e,d);a.homog=c<d?e:b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.IntersectConicConic=
-function(a,b){var c=a.value[0],d=a.value[1],e=a.value[2],f=b.value[0],k=b.value[1],n=b.value[2],p=g.det3(c,d,e),q=l.add(l.add(g.det3(c,d,n),g.det3(c,k,e)),g.det3(f,d,e)),c=l.add(l.add(g.det3(c,k,n),g.det3(f,d,n)),g.det3(f,k,e)),f=g.det3(f,k,n),n=l.abs2(p).value.real,k=l.abs2(f).value.real;n<k&&(n=a,a=b,b=n,n=f,f=p,p=n,n=c,c=q,q=n,n=k);1E-24>n?(p=a,c=b):(q=l.solveCubic(p,q,c,f),c=l.abs2(l.sub(q[0],q[1])).value.real,f=l.abs2(l.sub(q[0],q[2])).value.real,k=l.abs2(l.sub(q[1],q[2])).value.real,c>f?(p=
-q[1],q=c>k?q[0]:q[2]):(p=q[2],q=f>k?q[0]:q[1]),p=g.add(g.scalmult(p,a),b),c=g.add(g.scalmult(q,a),b));q=m._helper.splitDegenConic(p);p=q[0];q=q[1];c=m._helper.splitDegenConic(c);k=c[0];f=c[1];c=g.cross(p,k);k=g.cross(q,k);p=g.cross(p,f);q=g.cross(q,f);c=g.normalizeMax(c);k=g.normalizeMax(k);p=g.normalizeMax(p);q=g.normalizeMax(q);c=w.withUsage(c,"Point");k=w.withUsage(k,"Point");p=w.withUsage(p,"Point");q=w.withUsage(q,"Point");return[c,k,p,q]};m.IntersectConicConic={};m.IntersectConicConic.kind=
-"Ps";m.IntersectConicConic.signature=["C","C"];m.IntersectConicConic.updatePosition=function(a){var b=m._helper.IntersectConicConic(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].matrix),b=xc(b[0],b[1],b[2],b[3]);a.results=b};m.IntersectConicConic.stateSize=xc.stateSize;m.SelectP={};m.SelectP.kind="P";m.SelectP.signature=["Ps"];m.SelectP.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializePoint(a);for(var c=g.projectiveDistMinScal(a,
-b[0]),d=0,e=1;e<b.length;++e){var f=g.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};m.SelectP.updatePosition=function(a){a.homog=u.csnames[a.args[0]].results.value[a.param]};m.SelectL={};m.SelectL.kind="L";m.SelectL.signature=["Ls"];m.SelectL.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializeLine(a);for(var c=g.projectiveDistMinScal(a,b[0]),d=0,e=1;e<b.length;++e){var f=g.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};
-m.SelectL.updatePosition=function(a){a.homog=u.csnames[a.args[0]].results.value[a.param];a.homog=w.withUsage(a.homog,"Line")};m._helper.moebiusStep=function(a,b,c){var d=l.add,e=l.sub,f=l.mult,g=a.value[0],k=a.value[1];a=a.value[2];var m=b.value[0],n=b.value[1];b=b.value[2];var p=c.value[0],q=c.value[1],t=c.value[2];c=e(f(b,p),f(m,t));var u=e(f(b,q),f(n,t)),p=e(f(g,t),f(a,p)),q=e(f(k,t),f(a,q));return[e(f(g,c),f(k,u)),d(f(k,c),f(g,u)),f(a,c),f(a,u),e(f(m,p),f(n,q)),d(f(n,p),f(m,q)),f(b,p),f(b,q)]};
-m.TrMoebius={};m.TrMoebius.kind="Mt";m.TrMoebius.signature="PPPPPP".split("");m.TrMoebius.updatePosition=function(a){var b=l.neg,c=m._helper.moebiusStep(u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[4]].homog),d=m._helper.moebiusStep(u.csnames[a.args[1]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[5]].homog),d=g.normalizeMax(g.matrix([[d[0],b(d[1]),d[4],b(d[5])],[d[1],d[0],d[5],d[4]],[d[2],b(d[3]),d[6],b(d[7])],[d[3],d[2],d[7],d[6]]])),b=g.normalizeMax(g.matrix([[c[6],
-b(c[4])],[c[7],b(c[5])],[b(c[2]),c[0]],[b(c[3]),c[1]]])),b=g.normalizeMax(g.productMM(d,b));a.moebius={anti:!1,ar:b.value[0].value[0],ai:b.value[1].value[0],br:b.value[0].value[1],bi:b.value[1].value[1],cr:b.value[2].value[0],ci:b.value[3].value[0],dr:b.value[2].value[1],di:b.value[3].value[1]};m._helper.moebiusPair(a)};m._helper.moebiusPair=function(a){var b=a.moebius,c=l.neg,d=b.anti?c:w.identity;a.mat1=g.normalizeMax(g.matrix([[c(b.cr),d(b.ci),c(b.dr)],[b.ci,d(b.cr),b.di],[b.ar,c(d(b.ai)),b.br]]));
-a.mat2=g.normalizeMax(g.matrix([[c(b.ci),c(d(b.cr)),c(b.di)],[c(b.cr),d(b.ci),c(b.dr)],[b.ai,d(b.ar),b.bi]]))};m.TrInverseMoebius={};m.TrInverseMoebius.kind="Mt";m.TrInverseMoebius.signature=["Mt"];m.TrInverseMoebius.updatePosition=function(a){var b=u.csnames[a.args[0]].moebius,c=l.neg,d=b.anti?c:w.identity;a.moebius={anti:b.anti,ar:b.dr,ai:d(b.di),br:c(b.br),bi:c(d(b.bi)),cr:c(b.cr),ci:c(d(b.ci)),dr:b.ar,di:d(b.ai)};m._helper.moebiusPair(a)};m.TrMoebiusP={};m.TrMoebiusP.kind="P";m.TrMoebiusP.signature=
-["Mt","P"];m.TrMoebiusP.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]].homog,d=g.productMV(b.mat1,c),b=g.productMV(b.mat2,c);a.homog=g.normalizeMax(g.cross(d,b));a.homog=w.withUsage(a.homog,"Point")};m._helper.TrMoebiusP=function(a,b){var c=g.productMV(b.mat1,a),d=g.productMV(b.mat2,a);return g.normalizeMax(g.cross(c,d))};m.TrMoebiusL={};m.TrMoebiusL.kind="C";m.TrMoebiusL.signature=["Mt","L"];m.TrMoebiusL.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]].homog,
-d=function(){var a=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return g.normalizeMax(a)},e=g.cross(d(),c),f=g.cross(d(),c),c=g.cross(d(),c),e=m._helper.TrMoebiusP(e,b),f=m._helper.TrMoebiusP(f,b),b=m._helper.TrMoebiusP(c,b);a.matrix=g.normalizeMax(m._helper.ConicBy5(null,e,f,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusS={};m.TrMoebiusS.kind="C";m.TrMoebiusS.signature=["Mt","S"];m.TrMoebiusS.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]],
-d=c.startpos,c=c.endpos,e=g.add(d,c),d=m._helper.TrMoebiusP(d,b),e=m._helper.TrMoebiusP(e,b),b=m._helper.TrMoebiusP(c,b);a.startPoint=d;a.viaPoint=e;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,d,e,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusC={};m.TrMoebiusC.kind="C";m.TrMoebiusC.signature=["Mt","C"];m.TrMoebiusC.signatureConstraints=function(a){return"Circle"===u.csnames[a.args[1]].matrix.usage};m.TrMoebiusC.updatePosition=function(a){var b=u.csnames[a.args[0]],
-c=u.csnames[a.args[1]].matrix,d=function(){var a=g.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return g.normalizeMax(a)},e=m._helper.IntersectLC(d(),c),d=m._helper.IntersectLC(d(),c),c=e[1],d=d[1],e=m._helper.TrMoebiusP(e[0],b),c=m._helper.TrMoebiusP(c,b),b=m._helper.TrMoebiusP(d,b);a.matrix=g.normalizeMax(m._helper.ConicBy5(null,e,c,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TrMoebiusArc={};m.TrMoebiusArc.kind="C";m.TrMoebiusArc.signature=["Mt","C"];m.TrMoebiusArc.signatureConstraints=
-function(a){return u.csnames[a.args[1]].isArc};m.TrMoebiusArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=m._helper.TrMoebiusP(c.startPoint,b),d=m._helper.TrMoebiusP(d,b),b=m._helper.TrMoebiusP(e,b);a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,c,d,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m._helper.trBuildMatrix=function(a,b){var c=b(0),d=b(1),e=g.productMM(d,g.adjoint3(c));
-a.matrix=g.normalizeMax(e);e=g.transpose(g.productMM(c,g.adjoint3(d)));a.dualMatrix=g.normalizeMax(e)};m.TrProjection={};m.TrProjection.kind="Tr";m.TrProjection.signature="PPPPPPPP".split("");m.TrProjection.updatePosition=function(a){m._helper.trBuildMatrix(a,function(b){return D.basismap(u.csnames[a.args[0+b]].homog,u.csnames[a.args[2+b]].homog,u.csnames[a.args[4+b]].homog,u.csnames[a.args[6+b]].homog)})};m.TrAffine={};m.TrAffine.kind="Tr";m.TrAffine.signature="PPPPPP".split("");m.TrAffine.updatePosition=
-function(a){var b=l.mult,c=g.scalmult,d=g.turnIntoCSList,e=g.transpose,f=g.normalizeMax,k=g.productMM,m=g.adjoint3,n=d([u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[4]].homog]),p=d([u.csnames[a.args[1]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[5]].homog]),q=e(n),e=e(p),t=q.value[2].value,v=e.value[2].value,w=[b(t[0],v[2]),b(t[1],v[0]),b(t[2],v[1])],q=m(q).value;a.matrix=f(k(e,d([c(b(w[0],v[1]),q[0]),c(b(w[1],v[2]),q[1]),c(b(w[2],v[0]),q[2])])));q=n.value;a.dualMatrix=
-f(k(m(p),d([c(b(t[2],w[1]),q[0]),c(b(t[0],w[2]),q[1]),c(b(t[1],w[0]),q[2])])))};m.TrSimilarity={};m.TrSimilarity.kind="Tr";m.TrSimilarity.signature=["P","P","P","P"];m.TrSimilarity.updatePosition=function(a){m._helper.trBuildMatrix(a,function(b){return D.basismap(u.csnames[a.args[0+b]].homog,u.csnames[a.args[2+b]].homog,g.ii,g.jj)})};m.TrTranslation={};m.TrTranslation.kind="Tr";m.TrTranslation.signature=["P","P"];m.TrTranslation.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,
-d=g.cross(b,c).value,b=l.mult(b.value[2],c.value[2]),c=g.turnIntoCSList,e=l.neg,f=l.zero,d=c([c([b,f,d[1]]),c([f,b,e(d[0])]),c([f,f,b])]),d=g.normalizeMax(d);a.matrix=d;b=e(d.value[0].value[0]);d=c([c([b,f,f]),c([f,b,f]),c([d.value[0].value[2],d.value[1].value[2],b])]);a.dualMatrix=d};m.TrReflectionP={};m.TrReflectionP.kind="Tr";m.TrReflectionP.signature=["P"];m.TrReflectionP.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value,c=l.realmult(-.5,b[2]),d=l.zero,b=g.turnIntoCSList([g.turnIntoCSList([c,
-d,b[0]]),g.turnIntoCSList([d,c,b[1]]),g.turnIntoCSList([d,d,l.neg(c)])]),b=g.normalizeMax(b);a.matrix=b;a.dualMatrix=g.transpose(b)};m.TrReflectionL={};m.TrReflectionL.kind="Tr";m.TrReflectionL.signature=["L"];m.TrReflectionL.updatePosition=function(a){var b=l.mult,c=l.realmult,d=l.zero,e=u.csnames[a.args[0]].homog.value,f=e[0],k=e[1],e=e[2],m=b(f,f),n=b(k,k),p=c(-.5,l.sub(m,n)),q=b(f,k),b=g.turnIntoCSList([g.turnIntoCSList([l.neg(p),q,b(f,e)]),g.turnIntoCSList([q,p,b(k,e)]),g.turnIntoCSList([d,d,
-c(-.5,l.add(m,n))])]),b=g.normalizeMax(b);a.matrix=b;a.dualMatrix=g.transpose(b)};m.TrReflectionS={};m.TrReflectionS.kind="Tr";m.TrReflectionS.signature=["S"];m.TrReflectionS.updatePosition=m.TrReflectionL.updatePosition;m.TrReflectionC={};m.TrReflectionC.kind="Mt";m.TrReflectionC.signature=["C"];m.TrReflectionC.signatureConstraints=function(a){return"Circle"===u.csnames[a.args[0]].matrix.usage};m.TrReflectionC.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix,c=b.value[0].value[2],d=b.value[1].value[2],
-e=l.neg;a.moebius={anti:!0,ar:c,ai:d,br:b.value[2].value[2],bi:l.zero,cr:e(b.value[0].value[0]),ci:l.zero,dr:e(c),di:d};m._helper.moebiusPair(a)};m.TrInverse={};m.TrInverse.kind="Tr";m.TrInverse.signature=["Tr"];m.TrInverse.updatePosition=function(a){var b=u.csnames[a.args[0]];a.dualMatrix=g.transpose(b.matrix);a.matrix=g.transpose(b.dualMatrix)};m.TransformC={};m.TransformC.kind="C";m.TransformC.signature=["Tr","C"];m.TransformC.updatePosition=function(a){var b=u.csnames[a.args[0]].dualMatrix,b=
-g.productMM(g.productMM(b,u.csnames[a.args[1]].matrix),g.transpose(b)),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.TransformArc={};m.TransformArc.kind="C";m.TransformArc.signature=["Tr","C"];m.TransformArc.signatureConstraints=function(a){return u.csnames[a.args[0]].isArc};m.TransformArc.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix,c=u.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=g.normalizeMax(g.productMV(b,c.startPoint)),d=g.normalizeMax(g.productMV(b,d)),b=g.normalizeMax(g.productMV(b,
-e));a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=g.normalizeMax(m._helper.ConicBy5(null,c,d,b,g.ii,g.jj));a.matrix=w.withUsage(a.matrix,"Circle")};m.TransformP={};m.TransformP.kind="P";m.TransformP.signature=["Tr","P"];m.TransformP.updatePosition=function(a){a.homog=g.normalizeMax(g.productMV(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Point")};m.TransformL={};m.TransformL.kind="L";m.TransformL.signature=["Tr","L"];m.TransformL.updatePosition=
-function(a){a.homog=g.normalizeMax(g.productMV(u.csnames[a.args[0]].dualMatrix,u.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Line")};m.TransformS={};m.TransformS.kind="S";m.TransformS.signature=["Tr","S"];m.TransformS.updatePosition=function(a){var b=u.csnames[a.args[0]],c=u.csnames[a.args[1]];m.Segment.setSegmentPos(a,g.productMV(b.dualMatrix,c.homog),g.productMV(b.matrix,c.startpos),g.productMV(b.matrix,c.endpos))};m.TransformPolygon={};m.TransformPolygon.kind="Poly";m.TransformPolygon.signature=
-["Tr","Poly"];m.TransformPolygon.updatePosition=function(a){var b=u.csnames[a.args[0]].matrix;a.vertices=g.turnIntoCSList(u.csnames[a.args[1]].vertices.value.map(function(a){a=g.normalizeMax(g.productMV(b,a));return a=w.withUsage(a,"Point")}))};m._helper.pointReflection=function(a,b){return g.normalizeMax(g.sub(g.scalmult(l.realmult(2,b.value[2]),a),g.scalmult(a.value[2],b)))};m._helper.conicOtherIntersection=function(a,b,c){var d=g.productMV(a,c);a=g.scalproduct(c,d);d=g.scalproduct(b,d);d=l.realmult(-2,
-d);b=g.scalmult(a,b);c=g.scalmult(d,c);c=g.add(b,c);return c=g.normalizeMax(c)};m.Dist={};m.Dist.kind="V";m.Dist.signature=["P","P"];m.Dist.updatePosition=function(a){var b=u.csnames[a.args[1]].homog;a.value=g.abs(g.sub(g.normalizeZ(u.csnames[a.args[0]].homog),g.normalizeZ(b)))};m.Angle={};m.Angle.kind="V";m.Angle.signature=["L","L","P"];m.Angle.initialize=function(a){void 0===a.angle&&(a.angle=.5*Math.PI);Va(l._helper.input(a.angle))};m.Angle.updatePosition=function(a){var b=u.csnames[a.args[1]].homog,
-c=u.csnames[a.args[2]].homog,d=g.cross(u.csnames[a.args[0]].homog,g.linfty),b=g.cross(b,g.linfty),c=g.crossratio3(d,b,g.ii,g.jj,c),c=l.mult(l.complex(0,.5),l.log(c)),d=(wb().value.real-c.value.real)/Math.PI,b=Math.round(d);!fb&&.01<Math.abs(b-d)&&Vb();c=l.complex(b*Math.PI+c.value.real,c.value.imag);Va(c);a.value=w.withUsage(c,"Angle")};m.Angle.stateSize=2;m.Text={};m.Text.kind="Text";m.Text.signature="**";m.Text.isMovable=!0;m.Text.updatePosition=Pa;m.Text.initialize=function(a){a.text=String(a.text);
-a.pos&&(a.homog=m._helper.initializePoint(a));a.dock&&(a.dock.offset=a.dock.offset&&2===a.dock.offset.length?g.realVector([+a.dock.offset[0],+a.dock.offset[1]]):g.realVector([0,0]))};m.Text.getParamForInput=function(a,b,c){return m.Free.getParamForInput(a,b,c)};m.Text.getParamFromState=function(a){return a.homog};m.Text.putParamToState=function(a,b){a.homog=b};m.Calculation={};m.Calculation.kind="Text";m.Calculation.signature="**";m.Calculation.isMovable=!0;m.Calculation.updatePosition=Pa;m.Calculation.initialize=
-function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Calculation.getText=function(a){return ba(A(a.calculation))};m.Calculation.getParamForInput=m.Text.getParamForInput;m.Calculation.getParamFromState=m.Text.getParamFromState;m.Calculation.putParamToState=m.Text.putParamToState;m.Equation={};m.Equation.kind="Text";m.Equation.isMovable=!0;m.Equation.signature="**";m.Equation.updatePosition=Pa;m.Equation.initialize=function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Equation.getText=
-function(a){return a.text+" = "+ba(A(a.calculation))};m.Equation.getParamForInput=m.Text.getParamForInput;m.Equation.getParamFromState=m.Text.getParamFromState;m.Equation.putParamToState=m.Text.putParamToState;m.Evaluate={};m.Evaluate.kind="Text";m.Evaluate.isMovable=!0;m.Evaluate.signature="**";m.Evaluate.updatePosition=Pa;m.Evaluate.initialize=function(a){m.Text.initialize(a);a.calculation=Ra(a.text)};m.Evaluate.getText=function(a){A(a.calculation);return a.text};m.Evaluate.getParamForInput=m.Text.getParamForInput;
-m.Evaluate.getParamFromState=m.Text.getParamFromState;m.Evaluate.putParamToState=m.Text.putParamToState;m.Plot={};m.Plot.kind="Text";m.Plot.isMovable=!0;m.Plot.signature="**";m.Plot.updatePosition=Pa;m.Plot.initialize=function(a){m.Text.initialize(a);a.calculation=Ra("plot(("+a.text+"))")};m.Plot.getText=function(a){A(a.calculation);return a.text};m.Plot.getParamForInput=m.Text.getParamForInput;m.Plot.getParamFromState=m.Text.getParamFromState;m.Plot.putParamToState=m.Text.putParamToState;m.Button=
-{};m.Button.kind="Text";m.Button.signature="**";m.Button.isMovable=!0;m.Button.updatePosition=Pa;m.Button.initialize=function(a){var b=document.createElement("button");yc(a,"click",b)};m.Button.getParamForInput=m.Text.getParamForInput;m.Button.getParamFromState=m.Text.getParamFromState;m.Button.putParamToState=m.Text.putParamToState;m.Button.set_fillcolor=function(a,b){g._helper.isNumberVecN(b,3)&&(a.fillcolor=b.value.map(function(a){return a.value.real}),a.html.style.backgroundColor=x.makeColor(a.fillcolor,
-a.fillalpha))};m.ToggleButton={};m.ToggleButton.kind="Text";m.ToggleButton.signature="**";m.ToggleButton.isMovable=!0;m.ToggleButton.updatePosition=Pa;m.ToggleButton.initialize=function(a){var b;b=void 0;void 0===b&&(b="CindyJSid");b+=++Oa;var c=document.createElement("input"),d=document.createElement("label");c.setAttribute("id",b);d.setAttribute("for",b);c.setAttribute("type","checkbox");a.pressed&&(c.checked=!0);a.checkbox=c;yc(a,"change",c,d)};m.ToggleButton.getParamForInput=m.Text.getParamForInput;
-m.ToggleButton.getParamFromState=m.Text.getParamFromState;m.ToggleButton.putParamToState=m.Text.putParamToState;m.ToggleButton.set_fillcolor=m.Button.set_fillcolor;m.EditableText={};m.EditableText.kind="Text";m.EditableText.isMovable=!0;m.EditableText.signature=[];m.EditableText.updatePosition=Pa;m.EditableText.initialize=function(a){var b=document.createElement("input");b.setAttribute("type","text");b.className="CindyJS-editabletext";Fa(a.minwidth)&&(b.style.width=a.minwidth-3+"px");"string"===typeof a.text&&
-(b.value=a.text);b.addEventListener("keydown",function(a){13===a.keyCode&&b.blur()});yc(a,"change",b)};m.EditableText.getText=function(a){return!1};m.EditableText.getParamForInput=m.Text.getParamForInput;m.EditableText.getParamFromState=m.Text.getParamFromState;m.EditableText.putParamToState=m.Text.putParamToState;m.EditableText.set_fillcolor=m.Button.set_fillcolor;m.EditableText.get_currenttext=function(a){return w.string(String(a.html.value))};m.EditableText.set_currenttext=function(a,b){a.html.value=
-ba(b)};m.EditableText.get_text=m.EditableText.get_currenttext;m.EditableText.set_text=m.EditableText.set_currenttext;m._helper.initializePoint=function(a){var b=0,c=0,d=0;if(a.pos){if("list"===a.pos.ctype&&g.isNumberVector(a.pos))return a.pos;2===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=1);3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=g.turnIntoCSList([l._helper.input(b),l._helper.input(c),l._helper.input(d)]);return a=g.normalizeMax(a)};m._helper.initializeLine=function(a){var b=0,c=0,d=0;
-if(a.pos){if("list"===a.pos.ctype&&g.isNumberVector(a.pos))return a.pos;3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=g.turnIntoCSList([l._helper.input(b),l._helper.input(c),l._helper.input(d)]);return a=g.normalizeMax(a)};m.Poly={};m.Poly.kind="Poly";m.Poly.signature="P*";m.Poly.updatePosition=function(a){a.vertices=g.turnIntoCSList(a.args.map(function(a){return u.csnames[a].homog}))};var tc={CircleByRadius:"CircleMr",IntersectionCircleCircle:"IntersectCirCir",IntersectionConicConic:"IntersectConicConic",
-FreePoint:"Free",Orthogonal:"Perp",Parallel:"Para",Pole:"PolarOfLine",Polar:"PolarOfPoint",Arc:"ArcBy3",EuclideanMid:"Mid",AngularBisector:"AngleBisector",TransformConic:"TransformC",TransformSegment:"TransformS",TrMoebiusSegment:"TrMoebiusS",ReflectCC:"TrMoebiusC",ReflectCL:"TrMoebiusL",ReflectCP:"TrMoebiusP",ReflectCArc:"TrMoebiusArc",ReflectCS:"TrMoebiusS",TrMoebiusCircle:"TrMoebiusC"},rd={CircleMFixedr:function(a){a.pinned=!0;a.type="CircleMr";return[a]},CircleByFixedRadius:function(a){a.pinned=
-!0;a.type="CircleMr";return[a]},IntersectionConicLine:function(a){a.args=[a.args[1],a.args[0]];a.type="IntersectLC";return[a]},angleBisector:function(a){var b={name:a.name+"_Intersection",type:"Meet",args:a.args,visible:!1};a.type="AngleBisector";a.args=[a.args[0],a.args[1],b.name];return[b,a]},Transform:function(a){var b=u.csnames[a.args[1]],b={Tr:"Transform",Mt:"TrMoebius"}[u.csnames[a.args[0]].kind]+(b.isArc?"Arc":b.kind);if(m.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");
-return[]},TrReflection:function(a){var b="TrReflection"+u.csnames[a.args[0]].kind;if(m.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]}},le="align alpha angle args arrow arrowposition arrowshape arrowsides arrowsize clip color dashtype drawtrace fillalpha fillcolor filled labeled labelpos name overhang pinned printname radius size text text_fontfamily textbold textitalics textsize tracedim tracelength traceskip tracing type visible".split(" ");oa.saveState=function(){return{geometry:me()}};
-var ra={},Jd,Ib,Kd,Ld;Jd=[[],[.2],[.075,.225],[44/45,-56/15,32/9],[19372/6561,-25360/2187,64448/6561,-212/729],[9017/3168,-355/33,46732/5247,49/176,-5103/18656],[35/384,0,500/1113,125/192,-2187/6784,11/84]];Ib=[0,.2,.3,.8,8/9,1,1];Kd=[35/384,0,500/1113,125/192,-2187/6784,11/84,0];Ld=[5179/57600,0,7571/16695,.6140625,-92097/339200,187/2100,.025];var Ba,ga=[],zc=[],ic=!1;ra.tick=function(a){a/=Mb;for(var b=0;b<Mb;b++)ra.tick1(a),Cb+=a,A(S.simulationstep)};ra.tick1=function(a){for(var b=a,c=0;0<a&&c<
-.999*a||0>a&&c>.999*a;)b=ra.oneRKStep(b),c+=b,b=Math.min(2*b,a-c),b=Math.max(b,1E-16),ra.restorePosition(),ra.doCollisions(),ra.calculateForces(),ra.moveToFinalPos();return!0};ra.restorePosition=function(){Ba.forEach(function(a){O[a.type].restorePos(a,9)})};ra.doCollisions=function(){Ba.forEach(function(a){O[a.type].doCollisions(a)})};ra.calculateForces=function(){Ba.forEach(function(a){O[a.type].calculateForces(a)})};ra.moveToFinalPos=function(){Ba.forEach(function(a){O[a.type].move(a)})};ra.oneRKStep=
-function(a){for(var b=function(a){Ba.forEach(function(b){O[b.type].initRK(b,a);O[b.type].storePosition(b)})},c=function(a){Ba.forEach(function(b){O[b.type].setToTimestep(b,Ib[a])})},d=function(a){Ba.forEach(function(b){O[b.type].proceedMotion(b,Ib[a],a,Jd[a])})},e=function(){Ba.forEach(function(a){O[a.type].resetForces(a)})},f=function(a){Ba.forEach(function(b){O[b.type].calculateDelta(b,a)})},g=function(b){var c=0;Ba.forEach(function(a){O[a.type].proceedMotion(a,Ib[6],7,Kd);O[a.type].savePos(a,8);
-O[a.type].proceedMotion(a,Ib[6],7,Ld);O[a.type].savePos(a,9);c+=O[a.type].sqDist(a,8,9)});return c=Math.sqrt(c)/a},k=function(a){Ba.forEach(function(a){O[a.type].recallPosition(a)})},l=!1;!l;){b(a);for(var m=0;7>m;m++)c(m),d(m),e(),ra.calculateForces(),f(m);g(a)>O.env.errorbound&&a>O.env.lowestdeltat?(a/=O.env.slowdownfactor,k()):l=!0}return a};var O={Mass:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=1);"undefined"===typeof a.charge&&(a.charge=0);
-"undefined"===typeof a.friction&&(a.friction=0);a.lnfrict=0;"undefined"===typeof a.limitspeed&&(a.limitspeed=!1);"undefined"===typeof a.fixed&&(a.fixed=!1);"undefined"===typeof a.radius&&(a.radius=1);a.internalmove=!1;a.fx=0;a.fy=0;a.fz=0;a.vx=a.vx||0;a.vy=a.vy||0;a.vz=a.vz||0;a.mtype=0;a.env=O.env;a.deltat=0;a.mx=0;a.my=0;a.mz=0;a.mvx=0;a.mvy=0;a.mvz=0;a.dx=[0,0,0,0,0,0,0,0,0,0];a.dy=[0,0,0,0,0,0,0,0,0,0];a.dz=[0,0,0,0,0,0,0,0,0,0];a.dvx=[0,0,0,0,0,0,0,0,0,0];a.dvy=[0,0,0,0,0,0,0,0,0,0];a.dvz=[0,
-0,0,0,0,0,0,0,0,0];a.midx=0;a.midy=0;a.midz=0;a.lx=0;a.ly=0;a.lz=0},resetForces:function(a){a.fx=0;a.fy=0;a.fz=0},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0;a.xo=a.x;a.yo=a.y;a.zo=a.z;a.vxo=a.vx;a.vyo=a.vy;a.vzo=a.vz;a.deltat=b;a.fx=0;a.fy=0;a.fz=0},setVelocity:function(a,b,c,d){d||(d=0);a.vx=b;a.vy=c;a.vz=d},move:function(a){a.pos=[a.x,a.y,1];a.internalmove=!0;fa&&X.down&&a.el===fa.mover||Ia(a.el,g.realVector(a.pos),"homog");
-a.el.sx=a.x;a.el.sy=a.y;a.internalmove=!1},proceedMotion:function(a,b,c,d){if(!a.fixed)for(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz,b=0;b<c;b++)a.x+=d[b]*a.dx[b]*a.deltat,a.y+=d[b]*a.dy[b]*a.deltat,a.z+=d[b]*a.dz[b]*a.deltat,a.vx+=d[b]*a.dvx[b]*a.deltat,a.vy+=d[b]*a.dvy[b]*a.deltat,a.vz+=d[b]*a.dvz[b]*a.deltat},calculateForces:function(a){var b=Math.sqrt(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz);a.lnfrict=-Math.log((1-a.friction)*(1-a.env.friction)*(.1<b&&a.limitSpeed?.1/b:1));a.fx+=-a.vx*
-a.lnfrict*a.mass;a.fy+=-a.vy*a.lnfrict*a.mass;a.fz+=-a.vz*a.lnfrict*a.mass},calculateDelta:function(a,b){a.dx[b]=a.vx;a.dy[b]=a.vy;a.dz[b]=a.vz;a.dvx[b]=a.fx/a.mass;a.dvy[b]=a.fy/a.mass;a.dvz[b]=a.fz/a.mass},savePos:function(a,b){a.dx[b]=a.x;a.dy[b]=a.y;a.dz[b]=a.z;a.dvx[b]=a.vx;a.dvy[b]=a.vy;a.dvz[b]=a.vz},restorePos:function(a,b){a.fixed||(a.x=a.dx[b],a.y=a.dy[b],a.z=a.dz[b],a.vx=a.dvx[b],a.vy=a.dvy[b],a.vz=a.dvz[b])},sqDist:function(a,b,c){var d=(a.dx[b]-a.dx[c])*(a.dx[b]-a.dx[c]),d=d+(a.dy[b]-
-a.dy[c])*(a.dy[b]-a.dy[c]),d=d+(a.dz[b]-a.dz[c])*(a.dz[b]-a.dz[c]),d=d+(a.dvx[b]-a.dvx[c])*(a.dvx[b]-a.dvx[c]),d=d+(a.dvy[b]-a.dvy[c])*(a.dvy[b]-a.dvy[c]);return d+=(a.dvz[b]-a.dvz[c])*(a.dvz[b]-a.dvz[c])},kineticEnergy:function(a){return.5*a.mass*(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz)},storePosition:function(a){a.mx=a.x;a.my=a.y;a.mz=a.z;a.mvx=a.vx;a.mvy=a.vy;a.mvz=a.vz},recallPosition:function(a){a.fixed||(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz)},doCollisions:function(a){}},Sun:{reset:function(a,
-b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=10);"undefined"===typeof a.friction&&(a.friction=0);a.charge=0;a.x=0;a.y=0;a.z=0},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){for(var b=a.x,c=a.y,d=a.z,e=0;e<ga.length;e++){var f=
-ga[e],g=f.behavior.x,k=f.behavior.y,l=f.behavior.z,m=Math.sqrt((b-g)*(b-g)+(c-k)*(c-k)+(d-l)*(d-l)),k=(c-k)*a.mass*f.behavior.mass/(m*m*m),l=(d-l)*a.mass*f.behavior.mass/(m*m*m);f.behavior.fx+=(b-g)*a.mass*f.behavior.mass/(m*m*m)*f.behavior.mass;f.behavior.fy+=k*f.behavior.mass;f.behavior.fz+=l*f.behavior.mass}},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},
-Velocity:{reset:function(a){var b=u.csnames[a.geo[1]];console.log(b);var c=D.extractPoint(b.homog);a=D.extractPoint(u.csnames[a.geo[2]].homog);b=b.behavior;O[b.type].setVelocity(b,a.x-c.x,a.y-c.y,0)},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){var b=u.csnames[a.geo[2]];if(!fa||!X.down||b!==fa.mover){var c=u.csnames[a.geo[1]];a=D.extractPoint(c.homog);c=c.behavior;a=g.realVector([a.x+c.vx,a.y+c.vy,1]);
-Ia(b,a,"homog")}},proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Gravity:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.strength&&(a.strength=1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb]},
-resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=(c.x-b.x)*a.strength;a=(c.y-b.y)*a.strength;for(b=0;b<ga.length;b++)c=ga[b],c.behavior.fx+=d*c.behavior.mass,c.behavior.fy+=a*c.behavior.mass,c.behavior.fz+=0*c.behavior.mass},savePos:function(a,b){},
-restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Spring:{reset:function(a,b){a.el=b;"undefined"===typeof a.strength&&(a.strength=1);"undefined"===typeof a.amplitude&&(a.amplitude=0);"undefined"===typeof a.phase&&(a.phase=0);"undefined"===typeof a.speed&&(a.speed=1);"undefined"===typeof a.l0&&(a.l0=0);"undefined"===typeof a.stype&&(a.stype=1);"undefined"===typeof a.readOnInit&&
-(a.readOnInit=!1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.l0=Math.sqrt((c.x-d.x)*(c.x-d.x)+(c.y-d.y)*(c.y-d.y));a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e;!a.ma.behavior||fa&&X.down&&a.ma===fa.mover?(c=D.extractPoint(a.ma.homog),
-b=c.x,d=c.y):(b=a.ma.behavior.x,d=a.ma.behavior.y);!a.mb.behavior||fa&&X.down&&a.mb===fa.mover?(e=D.extractPoint(a.mb.homog),c=e.x,e=e.y):(c=a.mb.behavior.x,e=a.mb.behavior.y);var f=Math.sqrt((b-c)*(b-c)+(d-e)*(d-e)),g=a.l0,k=a.stype;1===k&&(g=0);var l=0;if(2===k||3===k)l=a.ma.behavior.mass*a.mb.behavior.mass*a.strength;2===k&&(l=-l);var m,n;if(0===f||0!==k&&1!==k)if(a.ma.behavior&&a.mb.behavior&&0!==f){if(f*=f*f,2===k||3===k)m=(b-c)*l/f,n=(d-e)*l/f}else m=n=0;else m=-(b-c)*a.strength*(f-g)/f*a.env.springstrength,
-n=-(d-e)*a.strength*(f-g)/f*a.env.springstrength;a.ma.behavior&&(a.ma.behavior.fx+=m,a.ma.behavior.fy+=n);a.mb.behavior&&(a.mb.behavior.fx-=m,a.mb.behavior.fy-=n)},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},det:function(a,b,c,d,e,f){return c*f-e*d+e*b-a*f+a*d-c*b},Bouncer:{reset:function(a,b){a.el=b;"undefined"===typeof a.xdamp&&
-(a.xdamp=0);"undefined"===typeof a.ydamp&&(a.ydamp=0);"undefined"===typeof a.motorchanger&&(a.motorchanger=!0);a.namea=b.args[0];a.nameb=b.args[1];a.ma=u.csnames[a.namea];a.mb=u.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.x1o=1.01*c.x-.01*d.x;a.y1o=1.01*c.y-.01*d.y;a.x2o=1.01*d.x-.01*c.x;a.y2o=1.01*d.y-.01*c.y;a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){a.deltat=b},setVelocity:function(a,b,c,d){},move:function(a){},
-proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){for(var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=b.x,b=b.y,e=c.x,c=c.y,f=a.x1o,g=a.y1o,k=a.x2o,m=a.y2o,n=Math.sqrt((d-e)*(d-e)+(b-c)*(b-c)),p=(d-e)/n,n=(b-c)/n,q=0;q<ga.length;q++){var t=ga[q],
-u=t.behavior.xo,v=t.behavior.yo,w=t.behavior.x,x=t.behavior.y,y=l.mult(l.complex(f,g),l.complex(e,c)),z=l.mult(l.complex(k,m),l.complex(d,b)),y=l.sub(y,z),z=l.mult(l.complex(u,v),l.complex(d,b)),y=l.add(y,z),z=l.mult(l.complex(u,v),l.complex(e,c)),y=l.sub(y,z),z=l.sub(l.complex(f,g),l.complex(k,m)),y=l.div(y,z);0>O.det(d,b,e,c,w,x)*O.det(d,b,e,c,y.value.real,y.value.imag)&&0>O.det(d,b,w,x,y.value.real,y.value.imag)*O.det(e,c,w,x,y.value.real,y.value.imag)&&(v=t.behavior.mvx+a.deltat*(-y.value.real+
-t.behavior.xo),w=t.behavior.mvy+a.deltat*(-y.value.imag+t.behavior.yo),u=p*v+n*w,v=n*v-p*w,t.behavior.x=y.value.real,t.behavior.y=y.value.imag,t.behavior.vx=p*u*(1-a.xdamp),t.behavior.vy=n*u*(1-a.xdamp),t.behavior.vx+=-n*v*(1-a.ydamp),t.behavior.vy+=p*v*(1-a.ydamp))}a.x1o=d;a.y1o=b;a.x2o=e;a.y2o=c}},Environment:{init:function(a){"undefined"===typeof a.gravity&&(a.gravity=0);"undefined"===typeof a.friction&&(a.friction=0);"undefined"===typeof a.springstrength&&(a.springstrength=1);"undefined"!==typeof a.accuracy&&
-(Mb=a.accuracy);"undefined"!==typeof a.deltat&&sa(a.deltat/.6);"undefined"===typeof a.charges&&(a.charges=!1);"undefined"===typeof a.balls&&(a.balls=!1);"undefined"===typeof a.newton&&(a.newton=!1);"undefined"===typeof a.ballInteractionBoosting&&(a.ballInteractionBoosting=1);O.env=a;a.errorbound=.001;a.lowestdeltat=1E-7;a.slowdownfactor=2},reset:function(a){},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},
-proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e,f,g,k,l,m,n;if(a.newton)for(b=0;b<ga.length-1;b++)for(c=ga[b],d=c.behavior.x,e=c.behavior.y,f=b+1;f<ga.length;f++)g=ga[f],k=g.behavior.x,l=g.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.mass*g.behavior.mass/(n*n*n),l=(e-l)*c.behavior.mass*g.behavior.mass/(n*n*n),c.behavior.fx-=k,c.behavior.fy-=l,g.behavior.fx+=k,g.behavior.fy+=l;if(a.charges)for(b=0;b<ga.length-1;b++)for(c=ga[b],d=c.behavior.x,e=c.behavior.y,
-f=b+1;f<ga.length;f++)g=ga[f],k=g.behavior.x,l=g.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.charge*g.behavior.charge/(n*n*n),l=(e-l)*c.behavior.charge*g.behavior.charge/(n*n*n),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l;if(a.balls)for(b=0;b<ga.length-1;b++)if(c=ga[b],0!==c.behavior.radius)for(d=c.behavior.x,e=c.behavior.y,f=b+1;f<ga.length;f++)g=ga[f],0!==g.behavior.radius&&(k=g.behavior.x,l=g.behavior.y,m=c.behavior.radius+g.behavior.radius,n=Math.sqrt((d-
-k)*(d-k)+(e-l)*(e-l)),0===a.ballInteractionBoosting?(k=(d-k)/(n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n)*(n>m?0:(n-m)*(n-m))):1===a.ballInteractionBoosting?(k=(d-k)/(n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n)*(n>m?0:(n-m)*(n-m))):(k=(d-k)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m))),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l);for(b=0;b<ga.length;b++)c=ga[b],c.behavior.fx+=0,c.behavior.fy+=-a.gravity*c.behavior.mass,c.behavior.fz+=0},calculateDelta:function(a,
-b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}}};return oa};return E}(),createCindy=CindyJS;"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===typeof window&&(module.exports=CindyJS);
+MediaBox:a,Contents:"4 0 R",Resources:this._dict({ProcSet:"[/PDF /Text /ImageB /ImageC /ImageI]",XObject:this._dict(this._xobjects),ExtGState:this._dict(this._extGState)})},3);var b=this._body.join("\n"),c=new Uint8Array(b.length);for(a=0;a<b.length;++a)c[a]=b.charCodeAt(a)&255;b=window.pako.deflate(c);this._strm({Filter:"/FlateDecode"},b,4);var b=this._objects,d=[];for(a=1;a<b.length;++a)d[b[a].index]=b[a];c="xref\n0 "+d.length+"\n";for(a=0;a<d.length;++a)c=d[a]?c+(rb(String(d[a].offset),10)+" 00000 n \n"):
+c+"0000000000 65535 f \n";a="trailer\n"+this._dict({Size:d.length,Root:"1 0 R"})+"\nstartxref\n"+this._offset+"\n%%EOF\n";b=Array.prototype.concat.apply([],b);b.push(c,a);return new Blob(b,{type:"application/pdf"})}};var Nb=null;jb.push(od);sa.exportSVG=function(){pd(ld)};sa.exportPDF=function(){va.loadScript("pako","pako.min.js",function(){pd(md)})};sa.exportPNG=function(){qd(A.canvas.toDataURL())};var qd=function(a){var b=document.createElement("a");document.body.appendChild(b);b.style="display: none";
+b.href=a;b.download="CindyJSExport";b.click();setTimeout(function(){document.body.removeChild(b);od()},100)},xc="Move",Pb,Aa=[],Ya=0,ge=0,xb=0,G={Delete:{}};G.Delete.actions=[];G.Delete.actions[0]={};G.Delete.actions[0].event="mousedown";G.Delete.actions[0].tooltip="...";G.Delete.actions[0]["do"]=function(){ja=Ob(aa);null!==ja&&vd(ja.mover.name);return!0};G.Move={};G.Move.actions=[];G.Move.actions[0]={};G.Move.actions[0].event="mousedown";G.Move.actions[0].tooltip="Move free elements by dragging the mouse";
+G.Move.actions[0]["do"]=function(){for(var a=aa,b=null,c=1E6,d,e=0;e<v.free.length;e++){var f=v.free[e];if(!f.pinned&&!1!==f.visible&&!0!==f.tmp){var k,l,n,p=y.drawingstate.matrix.sdet;if("P"===f.kind){l=h.normalizeZ(f.homog);if(!h._helper.isAlmostReal(l))continue;k=l.value[0].value.real-a.x;l=l.value[1].value.real-a.y;n=Math.sqrt(k*k+l*l);if(f.narrow&&n>("number"===typeof f.narrow?f.narrow:20)/p)continue}else if("C"===f.kind){l=h.normalizeZ(v.csnames[f.args[0]].homog);k=f.radius;if(!h._helper.isAlmostReal(l)||
+!m._helper.isAlmostReal(k))continue;n=l.value[0].value.real;var r=l.value[1].value.real;l=a.x-n;var t=a.y-r,u=Math.sqrt(l*l+t*t);if(0===u)continue;r+=t/u*k.value.real;k=n+l/u*k.value.real-a.x;l=r-a.y;n=Math.sqrt(k*k+l*l);n+=30/p;if(f.narrow&&n>(("number"===typeof f.narrow?f.narrow:20)+30)/p)continue}else if("L"===f.kind)k=f.homog,n=m,l=n.add(n.mult(k.value[0],n.conjugate(k.value[0])),n.mult(k.value[1],n.conjugate(k.value[1]))),l=h.scaldiv(n.sqrt(l),k),n=l.value[0].value.real*a.x+l.value[1].value.real*
+a.y+l.value[2].value.real,k=-l.value[0].value.real*n,l=-l.value[1].value.real*n,0>n&&(n=-n),n+=25/p;else if("Text"===f.kind){if(!f.homog||f.dock||!f._bbox)continue;l=y.from(a.x,a.y,1);k=Math.max(0,l[0]-f._bbox.right,f._bbox.left-l[0]);l=Math.max(0,l[1]-f._bbox.bottom,f._bbox.top-l[1]);n=Math.sqrt(k*k+l*l);if(20<n)continue;n/=p;l=h.normalizeZ(f.homog);if(!h._helper.isAlmostReal(l))continue;k=l.value[0].value.real-a.x;l=l.value[1].value.real-a.y}else continue;n<c+.2/p&&(c=n,b=f,d={x:k,y:l})}}console.log("Moving "+
+(b?b.name:"nothing"));ja=null===b?null:{mover:b,offset:d,prev:{x:a.x,y:a.y}};return!0};G.Point={};G.Point.actions=[];G.Point.actions[0]={};G.Point.actions[0].event="mousedown";G.Point.actions[0].tooltip="Add a single point with the mouse";G.Point.actions[0]["do"]=function(){Ka({type:"Free",name:Xa(),labeled:!0,pos:[ra[0],ra[1],1]});return!0};G.Mid={};G.Mid.actions=[];G.Mid.actions[0]={};G.Mid.actions[0].event="mousedown";G.Mid.actions[0].tooltip="Construct two points and their midpoint by dragging";
+G.Mid.actions[0]["do"]=function(){sb();return!0};G.Mid.actions[1]={};G.Mid.actions[1].event="mousemove";G.Mid.actions[1]["do"]=function(){bc("Mid");return!0};G.Mid.actions[2]={};G.Mid.actions[2].event="mouseup";G.Mid.actions[2]["do"]=function(){yb();return!0};G.Circle={};G.Circle.actions=[];G.Circle.actions[0]={};G.Circle.actions[0].event="mousedown";G.Circle.actions[0].tooltip="Construct two points and a circle by dragging the mouse";G.Circle.actions[0]["do"]=function(){sb();return!0};G.Circle.actions[1]=
+{};G.Circle.actions[1].event="mousemove";G.Circle.actions[1]["do"]=function(){bc("CircleMP");return!0};G.Circle.actions[2]={};G.Circle.actions[2].event="mouseup";G.Circle.actions[2]["do"]=function(){yb();return!0};G.Compass={};G.Compass.actions=[];G.Compass.actions[0]={};G.Compass.actions[0].event="mousedown";G.Compass.actions[0].tooltip="...";G.Compass.actions[0]["do"]=function(){sb();return!0};G.Compass.actions[1]={};G.Compass.actions[1].event="mousedown";G.Compass.actions[1].tooltip="...";G.Compass.actions[1]["do"]=
+function(){sb();return!0};G.Compass.actions[2]={};G.Compass.actions[2].event="mousedown";G.Compass.actions[2].tooltip="...";G.Compass.actions[2]["do"]=function(){sb();Ka({type:"Compass",name:Xa(),labeled:!0,args:[Aa[0].name,Aa[1].name,Aa[2].name]});return!0};G.Line={};G.Line.actions=[];G.Line.actions[0]={};G.Line.actions[0].event="mousedown";G.Line.actions[0].tooltip="Construct two points and their connecting line by dragging the mouse";G.Line.actions[0]["do"]=function(){sb();return!0};G.Line.actions[1]=
+{};G.Line.actions[1].event="mousemove";G.Line.actions[1]["do"]=function(){bc("Join");return!0};G.Line.actions[2]={};G.Line.actions[2].event="mouseup";G.Line.actions[2]["do"]=function(){yb();return!0};G.Segment={};G.Segment.actions=[];G.Segment.actions[0]={};G.Segment.actions[0].event="mousedown";G.Segment.actions[0].tooltip="Draw a segment by dragging the mouse";G.Segment.actions[0]["do"]=function(){sb();return!0};G.Segment.actions[1]={};G.Segment.actions[1].event="mousemove";G.Segment.actions[1]["do"]=
+function(){bc("Segment");return!0};G.Segment.actions[2]={};G.Segment.actions[2].event="mouseup";G.Segment.actions[2]["do"]=function(){yb();return!0};G.Parallel={};G.Parallel.actions=[];G.Parallel.actions[0]={};G.Parallel.actions[0].event="mousedown";G.Parallel.actions[0].tooltip="Construct a parallel line by dragging a line";G.Parallel.actions[0]["do"]=function(){return td()};G.Parallel.actions[1]={};G.Parallel.actions[1].event="mousemove";G.Parallel.actions[1]["do"]=function(){var a={type:"Free",
+name:Xa(),labeled:!0,pos:[ra[0],ra[1],1],tmp:!0},a=Ka(a);Pb=Ka({type:"Para",name:Xa(),labeled:!0,args:[Aa[0].name,a.name]});zc(a);return!0};G.Parallel.actions[2]={};G.Parallel.actions[2].event="mouseup";G.Parallel.actions[2]["do"]=function(){yb();return!0};G.Orthogonal={};G.Orthogonal.actions=[];G.Orthogonal.actions[0]={};G.Orthogonal.actions[0].event="mousedown";G.Orthogonal.actions[0].tooltip="Construct a orthogonal line by dragging a line";G.Orthogonal.actions[0]["do"]=function(){if(td()){var a=
+{type:"Free",name:Xa(),labeled:!0,pos:[ra[0],ra[1],1],tmp:!0},a=Ka(a);Pb=Ka({type:"Perp",name:Xa(),labeled:!0,args:[Aa[0].name,a.name]});zc(a);return!0}return!1};G.Orthogonal.actions[1]={};G.Orthogonal.actions[1].event="mouseup";G.Orthogonal.actions[1]["do"]=function(){yb();return!0};G.Intersection={};G.Intersection.actions=[];G.Intersection.actions[0]={};G.Intersection.actions[0].event="mousedown";G.Intersection.actions[0].tooltip="Select two elements to define their intersection";G.Intersection.actions[0]["do"]=
+function(){return ud()};G.Intersection.actions[1]={};G.Intersection.actions[1].event="mousedown";G.Intersection.actions[1]["do"]=function(){return ud()?(Pb=Ka({type:"Meet",name:Xa(),labeled:!0,args:[Aa[0].name,Aa[1].name]}),!0):!1};var eb={},y={drawingstate:{}};y.drawingstate.linecolor="rgb(0,0,255)";y.drawingstate.linecolorraw=[0,0,1];y.drawingstate.pointcolor="rgb(0,255,0)";y.drawingstate.pointcolorraw=[0,1,0];y.drawingstate.textcolor="rgb(0,0,0)";y.drawingstate.textcolorraw=[0,0,0];y.drawingstate.alpha=
+1;y.drawingstate.pointsize=4;y.drawingstate.linesize=1;y.drawingstate.textsize=null;y.drawingstate.matrix={};y.drawingstate.matrix.a=25;y.drawingstate.matrix.b=0;y.drawingstate.matrix.c=0;y.drawingstate.matrix.d=25;y.drawingstate.matrix.tx=250.5;y.drawingstate.matrix.ty=250.5;y.drawingstate.matrix.det=y.drawingstate.matrix.a*y.drawingstate.matrix.d-y.drawingstate.matrix.b*y.drawingstate.matrix.c;y.drawingstate.matrix.sdet=Math.sqrt(y.drawingstate.matrix.det);y.drawingstate.initialmatrix={};y.drawingstate.initialmatrix.a=
+y.drawingstate.matrix.a;y.drawingstate.initialmatrix.b=y.drawingstate.matrix.b;y.drawingstate.initialmatrix.c=y.drawingstate.matrix.c;y.drawingstate.initialmatrix.d=y.drawingstate.matrix.d;y.drawingstate.initialmatrix.tx=y.drawingstate.matrix.tx;y.drawingstate.initialmatrix.ty=y.drawingstate.matrix.ty;y.drawingstate.initialmatrix.det=y.drawingstate.matrix.det;y.drawingstate.initialmatrix.sdet=y.drawingstate.matrix.sdet;y.clone=function(a){if(null===a||"object"!==typeof a)return a;var b=a.constructor(),
+c;for(c in a)b[c]=y.clone(a[c]);return b};eb.backup=y.clone(y.drawingstate);eb.stack=[];y.clone(y.drawingstate);y.reset=function(){y.drawingstate.matrix.a=y.drawingstate.initialmatrix.a;y.drawingstate.matrix.b=y.drawingstate.initialmatrix.b;y.drawingstate.matrix.c=y.drawingstate.initialmatrix.c;y.drawingstate.matrix.d=y.drawingstate.initialmatrix.d;y.drawingstate.matrix.tx=y.drawingstate.initialmatrix.tx;y.drawingstate.matrix.ty=y.drawingstate.initialmatrix.ty;y.drawingstate.matrix.det=y.drawingstate.initialmatrix.det;
+y.drawingstate.matrix.sdet=y.drawingstate.initialmatrix.sdet};y.from=function(a,b,c){a/=c;b/=c;c=y.drawingstate.matrix;return[a*c.a-b*c.b+c.tx,a*c.c-b*c.d-c.ty]};y.to=function(a,b){var c=y.drawingstate.matrix,d=a-c.tx,e=b+c.ty;return[(d*c.d-e*c.b)/c.det,-(-d*c.c+e*c.a)/c.det,1]};y.toMat=function(){var a=y.drawingstate.matrix;return h.realMatrix([[a.d,-a.b,-a.tx*a.d-a.ty*a.b],[a.c,-a.a,-a.tx*a.c-a.ty*a.a],[0,0,a.det]])};y.dumpTrafo=function(){function a(a){return Math.round(1E3*a)/1E3}var b=y.drawingstate.matrix;
+console.log("a:"+a(b.a)+" b:"+a(b.b)+" c:"+a(b.c)+" d:"+a(b.d)+" tx:"+a(b.ty)+" ty:"+a(b.tx))};y.setMat=function(a,b,c,d,e,h){var f=y.drawingstate.matrix;f.a=a;f.b=b;f.c=c;f.d=d;f.tx=e;f.ty=h;f.det=a*d-b*c;f.sdet=Math.sqrt(f.det)};y.scaleAndOrigin=function(a,b,c){y.setMat(a,0,0,a,b,c)};y.visibleRect=function(a,b,c,d){var e=c-a,h=b-d,e=ca*h<da*e?ca/e:da/h;y.setMat(e,0,0,e,(ca-e*(a+c))/2,(da-e*(b+d))/2)};y.applyMat=function(a,b,c,d,e,h){var f=y.drawingstate.matrix;y.setMat(f.a*a+f.c*b,f.b*a+f.d*b,f.a*
+c+f.c*d,f.b*c+f.d*d,f.a*e+f.c*h+f.tx,f.b*e+f.d*h+f.ty)};y.translate=function(a,b){y.applyMat(1,0,0,1,a,b)};y.rotate=function(a){var b=Math.cos(a);a=Math.sin(a);y.applyMat(b,a,-a,b,0,0)};y.scale=function(a){y.applyMat(a,0,0,a,0,0)};y.gsave=function(){eb.stack.push(y.clone(y.drawingstate))};y.grestore=function(){0!==eb.stack.length&&(y.drawingstate=eb.stack.pop())};y.greset=function(){y.drawingstate=y.clone(eb.backup);y.drawingstate.matrix.ty-=da;y.drawingstate.initialmatrix.ty-=da;eb.stack=[]};y.createnewbackup=
+function(){y.drawingstate.initialmatrix.a=y.drawingstate.matrix.a;y.drawingstate.initialmatrix.b=y.drawingstate.matrix.b;y.drawingstate.initialmatrix.c=y.drawingstate.matrix.c;y.drawingstate.initialmatrix.d=y.drawingstate.matrix.d;y.drawingstate.initialmatrix.tx=y.drawingstate.matrix.tx;y.drawingstate.initialmatrix.ty=y.drawingstate.matrix.ty;y.drawingstate.initialmatrix.det=y.drawingstate.matrix.det;y.drawingstate.initialmatrix.sdet=y.drawingstate.matrix.sdet;eb.backup=y.clone(y.drawingstate)};y.makecolor=
+function(a,b,c){a=Math.floor(255*a);b=Math.floor(255*b);c=Math.floor(255*c);return 1===y.drawingstate.alpha?"rgb("+a+","+b+","+c+")":"rgba("+a+","+b+","+c+","+y.drawingstate.alpha+")"};y.setcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;y.drawingstate.linecolor=y.drawingstate.pointcolor=y.makecolor(b,c,a);y.drawingstate.linecolorraw=y.drawingstate.pointcolorraw=[b,c,a]};y.setlinecolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=
+a.value[2].value.real;y.drawingstate.linecolor=y.makecolor(b,c,a);y.drawingstate.linecolorraw=[b,c,a]};y.settextcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;y.drawingstate.textcolor=y.makecolor(b,c,a);y.drawingstate.textcolorraw=[b,c,a]};y.setpointcolor=function(a){var b=a.value[0].value.real,c=a.value[1].value.real;a=a.value[2].value.real;y.drawingstate.pointcolor=y.makecolor(b,c,a);y.drawingstate.pointcolorraw=[b,c,a]};y.setalpha=function(a){y.drawingstate.alpha=
+a.value.real;y.drawingstate.linecolor=y.makecolor(y.drawingstate.linecolorraw[0],y.drawingstate.linecolorraw[1],y.drawingstate.linecolorraw[2]);y.drawingstate.pointcolor=y.makecolor(y.drawingstate.pointcolorraw[0],y.drawingstate.pointcolorraw[1],y.drawingstate.pointcolorraw[2]);y.drawingstate.textcolor=y.makecolor(y.drawingstate.textcolorraw[0],y.drawingstate.textcolorraw[1],y.drawingstate.textcolorraw[2])};y.setpointsize=function(a){y.drawingstate.pointsize=a.value.real};y.setlinesize=function(a){y.drawingstate.linesize=
+a.value.real};y.settextsize=function(a){y.drawingstate.textsize=a.value.real};var ga={clip:"none",pointColor:[1,0,0],lineColor:[0,0,1],pointSize:5,lineSize:1,alpha:1,overhangLine:1,overhangSeg:1,dimDependent:.7,fontFamily:"sans-serif",textColor:[0,0,0],textsize:20,noborder:!1,lineHeight:1.45};p.defaultAppearance&&he(p.defaultAppearance);var dc={},Cd={UL:0,UR:1,LR:2,LL:3},Cc=["in","out","good","backup"],nb=new Float64Array(0),ib={};Cc.forEach(function(a){ib[a]=nb});var qa=nb,Oa=nb,Da=nb,Ba,Ea,lb,Ma,
+Ab,Dc=!1,Ed={toString:function(){return"RefineException"}},Hd=null,L=null;p.enableTraceLog&&(L={logLength:Infinity,fullLog:[],currentMouseAndScripts:null,currentMover:null,currentStep:null,currentElement:null,currentParam:null,labelTracing2:w.wrap("tracing2"),labelTracing4:w.wrap("tracing4"),labelTracingSesq:w.wrap("tracingSesq"),postMouseHooks:[]},"number"===typeof p.enableTraceLog&&(L.logLength=p.enableTraceLog),sa.getTraceLog=ne,sa.formatTraceLog=oe,sa.addTraceHook=L.postMouseHooks.push.bind(L.postMouseHooks));
+Pa.stateSize=12;Fc.stateSize=24;Qb.stateSize=24;var ob=[];mb.P=function(a){v.lines.forEach(function(b){b=Kd(a,b);b.holds()&&ob.push(b)});v.conics.forEach(function(b){b=Ld(a,b);b.holds()&&ob.push(b)})};mb.L=function(a){v.points.forEach(function(b){b=Kd(b,a);b.holds()&&ob.push(b)})};mb.S=mb.L;mb.C=function(a){v.points.forEach(function(b){b=Ld(b,a);b.holds()&&ob.push(b)})};var l={_helper:{},RandomLine:{}};l.RandomLine.kind="L";l.RandomLine.signature=[];l.RandomLine.updatePosition=function(a){a.homog=
+h.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};l.FreeLine={};l.FreeLine.kind="L";l.FreeLine.signature=[];l.FreeLine.isMovable=!0;l.FreeLine.initialize=function(a){a=l._helper.initializeLine(a);T(a)};l.FreeLine.getParamForInput=function(a,b,c){"mouse"===c?(a=h.cross(b,h.ez),a=h.cross(a,b)):a="homog"===c?b:h.turnIntoCSList([m.zero,m.zero,m.zero]);return h.normalizeMax(a)};l.FreeLine.getParamFromState=function(a){return X(3)};
+l.FreeLine.putParamToState=function(a,b){T(b)};l.FreeLine.updatePosition=function(a){var b=X(3);T(b);a.homog=w.withUsage(b,"Line")};l.FreeLine.stateSize=6;l.RandomPoint={};l.RandomPoint.kind="P";l.RandomPoint.signature=[];l.RandomPoint.updatePosition=function(a){a.homog=h.realVector([100*Math.random(),100*Math.random(),100*Math.random()]);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};l.Join={};l.Join.kind="L";l.Join.signature=["P","P"];l.Join.updatePosition=function(a){a.homog=
+h.cross(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};l.Segment={};l.Segment.kind="S";l.Segment.signature=["P","P"];l.Segment.updatePosition=function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]];l.Segment.setSegmentPos(a,h.cross(b.homog,c.homog),h.scalmult(c.homog.value[2],b.homog),h.scalmult(b.homog.value[2],c.homog))};l.Segment.setSegmentPos=function(a,b,c,d){b=h.normalizeMax(b);a.homog=w.withUsage(b,"Line");b=
+h.turnIntoCSList([c,d]);b=h.normalizeMax(b);a.startpos=b.value[0];a.endpos=b.value[1]};l.Meet={};l.Meet.kind="P";l.Meet.signature=["L","L"];l.Meet.updatePosition=function(a){a.homog=h.cross(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};l.Meet.visiblecheck=function(a){var b=!0,c=v.csnames[a.args[0]],d=v.csnames[a.args[1]];"S"===c.kind&&(b=Ad(a,c));b&&"S"===d.kind&&(b=Ad(a,d));a.isshowing=b};l._helper.midpoint=function(a,
+b){return h.normalizeMax(h.add(h.scalmult(b.value[2],a),h.scalmult(a.value[2],b)))};l.Mid={};l.Mid.kind="P";l.Mid.signature=["P","P"];l.Mid.updatePosition=function(a){var b=l._helper.midpoint(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog);a.homog=w.withUsage(b,"Point")};l.Perp={};l.Perp.kind="L";l.Perp.signature=["L","P"];l.Perp.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,b=h.turnIntoCSList([b.value[0],b.value[1],m.zero]);a.homog=h.cross(b,c);a.homog=
+h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};l.Para={};l.Para.kind="L";l.Para.signature=["L","P"];l.Para.updatePosition=function(a){var b=v.csnames[a.args[1]].homog;a.homog=h.cross(h.cross(h.linfty,v.csnames[a.args[0]].homog),b);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};l.Horizontal={};l.Horizontal.kind="L";l.Horizontal.signature=["P"];l.Horizontal.updatePosition=function(a){a.homog=h.cross(h.ex,v.csnames[a.args[0]].homog);a.homog=h.normalizeMax(a.homog);
+a.homog=w.withUsage(a.homog,"Line")};l.HorizontalLine={};l.HorizontalLine.kind="L";l.HorizontalLine.signature=[];l.HorizontalLine.isMovable=!0;l.HorizontalLine.initialize=function(a){a=l._helper.initializeLine(a);a=h.turnIntoCSList([m.zero,a.value[1],a.value[2]]);a=h.normalizeMax(a);T(a)};l.HorizontalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=h.cross(b,h.ex);else if("homog"===c){if(0!==b.value[0].real||0!==b.value[0].imag)b=h.turnIntoCSList([m.zero,b.value[1],b.value[2]])}else b=h.turnIntoCSList([m.zero,
+m.zero,m.zero]);return h.normalizeMax(b)};l.HorizontalLine.getParamFromState=function(a){return X(3)};l.HorizontalLine.putParamToState=function(a,b){T(b)};l.HorizontalLine.updatePosition=function(a){var b=X(3);T(b);a.homog=w.withUsage(b,"Line")};l.HorizontalLine.stateSize=6;l.Vertical={};l.Vertical.kind="L";l.Vertical.signature=["P"];l.Vertical.updatePosition=function(a){a.homog=h.cross(h.ey,v.csnames[a.args[0]].homog);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};l.VerticalLine=
+{};l.VerticalLine.kind="L";l.VerticalLine.signature=[];l.VerticalLine.isMovable=!0;l.VerticalLine.initialize=function(a){a=l._helper.initializeLine(a);a=h.turnIntoCSList([a.value[0],m.zero,a.value[2]]);a=h.normalizeMax(a);T(a)};l.VerticalLine.getParamForInput=function(a,b,c){if("mouse"===c)b=h.cross(b,h.ey);else if("homog"===c){if(0!==b.value[1].real||0!==b.value[1].imag)b=h.turnIntoCSList([b.value[0],m.zero,b.value[2]])}else b=h.turnIntoCSList([m.zero,m.zero,m.zero]);return h.normalizeMax(b)};l.VerticalLine.getParamFromState=
+function(a){return X(3)};l.VerticalLine.putParamToState=function(a,b){T(b)};l.VerticalLine.updatePosition=function(a){var b=X(3);T(b);a.homog=w.withUsage(b,"Line")};l.VerticalLine.stateSize=6;l.LineByFixedAngle={};l.LineByFixedAngle.kind="L";l.LineByFixedAngle.signature=["L","P"];l.LineByFixedAngle.initialize=function(a){var b=m._helper.input(a.angle),c=m.cos(b),b=m.sin(b);a.rot=h.turnIntoCSList([h.turnIntoCSList([b,c,m.zero]),h.turnIntoCSList([m.neg(c),b,m.zero]),h.turnIntoCSList([m.zero,m.zero,
+m.zero])])};l.LineByFixedAngle.updatePosition=function(a){var b=v.csnames[a.args[1]],c=h.productMV(a.rot,v.csnames[a.args[0]].homog);a.homog=h.cross(b.homog,c);a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Line")};l.Through={};l.Through.kind="L";l.Through.signature=["P"];l.Through.isMovable=!0;l.Through.initialize=function(a){a=a.dir?w.wrap(a.dir):h.realVector([a.pos[1],-a.pos[0],0]);T(a)};l.Through.getParamForInput=function(a,b,c){a="dir"===c||"mouse"===c?h.cross(v.csnames[a.args[0]].homog,
+b):"homog"===c?b:h.turnIntoCSList([m.zero,m.zero,m.zero]);a=h.cross(h.linfty,a);return h.normalizeMax(a)};l.Through.getParamFromState=function(a){return X(3)};l.Through.putParamToState=function(a,b){T(b)};l.Through.updatePosition=function(a){var b=X(3);T(b);b=h.cross(v.csnames[a.args[0]].homog,b);b=h.normalizeMax(b);a.homog=w.withUsage(b,"Line")};l.Through.stateSize=6;l.Through.set_angle=function(a,b){if("number"===b.ctype){var c=m.cos(b),d=m.sin(b),c=h.turnIntoCSList([c,d,m.real(0)]);La(a,c,"dir")}};
+l.Through.set_slope=function(a,b){if("number"===b.ctype){var c=h.turnIntoCSList([m.real(1),b,m.real(0)]);La(a,c,"dir")}};l.Free={};l.Free.kind="P";l.Free.signature=[];l.Free.isMovable=!0;l.Free.initialize=function(a){a=l._helper.initializePoint(a);T(a)};l.Free.getParamForInput=function(a,b,c){if("mouse"===c&&Eb&&0!==za){b=h.normalizeZ(b);a=b.value[0].value.real;c=b.value[1].value.real;var d=Math.round(a/za)*za,e=Math.round(c/za)*za;.2>Math.abs(d-a)&&.2>Math.abs(e-c)&&(b=h.realVector([d,e,1]))}return h.normalizeMax(b)};
+l.Free.getParamFromState=function(a){return X(3)};l.Free.putParamToState=function(a,b){T(b)};l.Free.updatePosition=function(a){var b=X(3);T(b);a.homog=w.withUsage(b,"Point")};l.Free.stateSize=6;l._helper.projectPointToLine=function(a,b){var c=h.turnIntoCSList([b.value[0],b.value[1],m.zero]),c=h.cross(c,a);return h.normalizeMax(h.cross(c,b))};l.PointOnLine={};l.PointOnLine.kind="P";l.PointOnLine.signature=["L"];l.PointOnLine.isMovable=!0;l.PointOnLine.initialize=function(a){var b=l._helper.initializePoint(a);
+a=v.csnames[a.args[0]].homog;var b=l._helper.projectPointToLine(b,a),b=h.normalizeMax(b),c=h.cross(h.linfty,b);h.normalizeMax(c);T(b);T(a);lb=!1};l.PointOnLine.updatePosition=function(a,b){var c,d=v.csnames[a.args[0]].homog;c=X(3);X(3);if(!b){Ba=a.stateIdx;var e=qa;qa=Da;var f=X(3),m=X(3);qa=e;e=h.cross(m,d);h._helper.isAlmostZero(e)&&(e=h.cross(h.linfty,d));f=l._helper.CircleMP(e,f);f=l._helper.IntersectLC(d,f);e=l._helper.pointReflection(e,c);c=Ec(f[0],f[1],c,e)[0]}c=h.normalizeMax(c);T(c);T(d);
+a.homog=w.withUsage(c,"Point")};l.PointOnLine.getParamForInput=function(a,b,c){a=v.csnames[a.args[0]].homog;b=l._helper.projectPointToLine(b,a);"mouse"===c&&Eb&&0!==za&&(b=l._helper.snapPointToLine(b,a));return b};l.PointOnLine.getParamFromState=function(a){return X(3)};l.PointOnLine.putParamToState=function(a,b){return T(b)};l.PointOnLine.stateSize=12;l.PointOnCircle={};l.PointOnCircle.kind="P";l.PointOnCircle.signature=["C"];l.PointOnCircle.isMovable=!0;l.PointOnCircle.initialize=function(a){var b=
+v.csnames[a.args[0]];a=h.normalizeZ(l._helper.initializePoint(a));var c=h.normalizeZ(l._helper.CenterOfCircle(b.matrix)),d=h.sub(a,c),d=h.turnIntoCSList([d.value[1],m.neg(d.value[0]),m.zero]),c=h.cross(a,c),b=l._helper.IntersectLC(c,b.matrix),c=h.projectiveDistMinScal(a,b[0]);h.projectiveDistMinScal(a,b[1])<c?(a=b[1],b=b[0]):(a=b[0],b=b[1]);T(d);T(a);T(b);lb=!1};l.PointOnCircle.putParamToState=function(a,b){T(b)};l.PointOnCircle.getParamFromState=function(a){return X(3)};l.PointOnCircle.getParamForInput=
+function(a,b,c){c=h.normalizeZ(l._helper.CenterOfCircle(v.csnames[a.args[0]].matrix));b=h.sub(b,c);Ba=a.stateIdx;a=X(3);var d=h.normalizeZ(X(3));c=h.sub(d,c);0>m.sub(m.mult(a.value[0],c.value[1]),m.mult(a.value[1],c.value[0])).value.real&&(b=h.neg(b));return h.turnIntoCSList([b.value[1],m.neg(b.value[0]),m.zero])};l.PointOnCircle.parameterPath=function(a,b,c,d,e){d=h.normalizeAbs(d);e=h.normalizeAbs(e);var f=h.scalproduct(d,e);if(0<=f.value.real)return Fd(a,b,c,d,e);a=h.turnIntoCSList([m.sub(d.value[1],
+e.value[1]),m.sub(e.value[0],d.value[0]),m.zero]);f=h.scalproduct(d,a);0>f.value.real&&(a=h.neg(a));0>b?(b=2*b+1,c=b*b,f=.25/(1+c),c=m.complex(2*b*f+.25,(1-c)*f)):(b=2*b-1,c=b*b,f=.25/(1+c),c=m.complex(2*b*f+.75,(1-c)*f));var k=m.sub(m.real(1),c);b=m.mult(c,c);f=m.mult(k,k);c=m.mult(c,k);d=h.scalmult(f,d);d=h.add(d,h.scalmult(c,a));return d=h.add(d,h.scalmult(b,e))};l.PointOnCircle.updatePosition=function(a){var b=X(3);T(b);var c=v.csnames[a.args[0]],b=h.productMV(c.matrix,b),c=l._helper.IntersectLC(b,
+c.matrix),c=Pa(c[0],c[1]),b=h.normalizeMax(c.value[0]);a.homog=w.withUsage(b,"Point");a.antipodalPoint=c.value[1]};l.PointOnCircle.stateSize=6+Pa.stateSize;l.OtherPointOnCircle={};l.OtherPointOnCircle.kind="P";l.OtherPointOnCircle.signature=["P"];l.OtherPointOnCircle.signatureConstraints=function(a){return"PointOnCircle"===v.csnames[a.args[0]].type};l.OtherPointOnCircle.updatePosition=function(a){var b=v.csnames[a.args[0]].antipodalPoint,b=h.normalizeMax(b);a.homog=w.withUsage(b,"Point")};l.PointOnSegment=
+{};l.PointOnSegment.kind="P";l.PointOnSegment.signature=["S"];l.PointOnSegment.isMovable=!0;l.PointOnSegment.initialize=function(a){var b=l._helper.initializePoint(a);a=l.PointOnSegment.getParamForInput(a,b);Za(a)};l.PointOnSegment.getParamForInput=function(a,b,c){a=v.csnames[a.args[0]];var d=a.homog;"mouse"===c&&Eb&&0!==za&&(b=l._helper.snapPointToLine(b,d));c=h.turnIntoCSList([d.value[0],d.value[1],m.zero]);d=h.sub(a.startpos,a.endpos);b=h.crossratio3(d,a.startpos,a.endpos,b,c);0>b.value.real&&
+(b=m.complex(0,b.value.imag));1<b.value.real&&(b=m.complex(1,b.value.imag));return b};l.PointOnSegment.getParamFromState=function(a){return Bb()};l.PointOnSegment.putParamToState=function(a,b){Za(b)};l.PointOnSegment.updatePosition=function(a){var b=Bb();Za(b);var c=v.csnames[a.args[0]],d=c.startpos,c=h.sub(c.endpos,d),b=h.add(d,h.scalmult(b,c)),b=h.normalizeMax(b);a.homog=w.withUsage(b,"Point")};l.PointOnSegment.stateSize=2;l._helper.projectPointToCircle=function(a,b){var c=l._helper.CenterOfCircle(a.matrix),
+c=h.normalizeMax(c),c=h.normalizeMax(h.cross(b,c)),c=l._helper.IntersectLC(c,a.matrix),d=h.projectiveDistMinScal(b,c[0]),e=h.projectiveDistMinScal(b,c[1]);return d<e?c[0]:c[1]};l.PointOnArc={};l.PointOnArc.kind="P";l.PointOnArc.signature=["C"];l.PointOnArc.signatureConstraints=function(a){return v.csnames[a.args[0]].isArc};l.PointOnArc.isMovable=!0;l.PointOnArc.initialize=function(a){var b=l._helper.initializePoint(a);a=l.PointOnArc.getParamForInput(a,b);T(a)};l.PointOnArc.getParamForInput=function(a,
+b){var c=v.csnames[a.args[0]],d=l._helper.projectPointToCircle(c,b),c=h.normalizeMax(h.crossratio3harm(c.startPoint,c.endPoint,c.viaPoint,d,h.ii)),d=m.div(c.value[0],c.value[1]);0>d.value.real&&(c=-1>d.value.real?h.realVector([1,0]):h.realVector([0,1]));return c};l.PointOnArc.getParamFromState=function(a){return X(2)};l.PointOnArc.putParamToState=function(a,b){T(b)};l.PointOnArc.updatePosition=function(a){var b=v.csnames[a.args[0]],c=b.startPoint,d=b.viaPoint,e=b.endPoint,f=h.ii,k=h.cross(c,f),d=
+h.cross(d,f),n=h.cross(e,f),n=h.turnIntoCSList([k,n]),k=h.transpose(n),n=h.conjugate(n),k=h.productMM(n,k),d=h.productMV(n,d),k=h.productMV(h.adjoint2(k),d),d=k.value[0],k=k.value[1],n=X(2);T(n);c=h.normalizeMax(h.add(h.scalmult(m.mult(d,n.value[0]),c),h.scalmult(m.mult(k,n.value[1]),e)));b=l._helper.conicOtherIntersection(b.matrix,f,c);a.homog=w.withUsage(b,"Point")};l.PointOnArc.stateSize=4;l._helper.CenterOfCircle=function(a){return h.turnIntoCSList([a.value[2].value[0],a.value[2].value[1],m.neg(a.value[0].value[0])])};
+l._helper.CenterOfConic=function(a){a=h.adjoint3(a);return{ctype:"list",value:[a.value[2].value[0],a.value[2].value[1],a.value[2].value[2]]}};l.CenterOfConic={};l.CenterOfConic.kind="P";l.CenterOfConic.signature=["C"];l.CenterOfConic.updatePosition=function(a){var b=l._helper.CenterOfConic(v.csnames[a.args[0]].matrix);a.homog=b;a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};l._helper.CircleMP=function(a,b){var c=a.value[0],d=a.value[1],e=m.neg(a.value[2]),f=m.zero,c=h.turnIntoCSList([h.turnIntoCSList([e,
+f,c]),h.turnIntoCSList([f,e,d]),h.turnIntoCSList([c,d,f])]),e=w.mult(w.mult(b,c),b),d=w.mult(w.mult(b,h.fund),b),e=w.mult(e,h.fund),c=w.mult(d,c);return h.sub(e,c)};l.CircleMP={};l.CircleMP.kind="C";l.CircleMP.signature=["P","P"];l.CircleMP.updatePosition=function(a){a.matrix=l._helper.CircleMP(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog);a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Circle")};l.CircleMr={};l.CircleMr.kind="C";l.CircleMr.signature=["P"];l.CircleMr.isMovable=
+!0;l.CircleMr.initialize=function(a){Za(m.real(a.radius))};l.CircleMr.getParamForInput=function(a,b,c){if("radius"===c)return b;a=v.csnames[a.args[0]].homog;a=h.normalizeZ(a);b=h.normalizeZ(b);b=h.sub(a,b);return b=h.abs(b)};l.CircleMr.getParamFromState=function(a){return Bb()};l.CircleMr.putParamToState=function(a,b){Za(b)};l.CircleMr.updatePosition=function(a){var b=Bb();Za(b);var c=v.csnames[a.args[0]].homog,d=m.mult(c.value[2],b),d=m.mult(d,d);if(!m._helper.isFinite(d)&&!m._helper.isNaN(d))return h.fund;
+c=l._helper.ScaledCircleMrr(c,d);a.matrix=w.withUsage(c,"Circle");a.radius=b};l.CircleMr.stateSize=2;l.CircleMr.set_radius=function(a,b){"number"===b.ctype&&La(a,b,"radius")};l._helper.ScaledCircleMrr=function(a,b){var c=a.value[0],d=a.value[1],e=m.neg(a.value[2]),e=h.scalmult(e,h.turnIntoCSList([c,d,e])).value,c=h.turnIntoCSList([c,d]),c=m.sub(h.scalproduct(c,c),b),e=l._helper.buildConicMatrix([e[2],m.zero,e[2],e[0],e[1],c]);return h.normalizeMax(e)};l.Compass={};l.Compass.kind="C";l.Compass.signature=
+["P","P","P"];l.Compass.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=b.value[2],f=c.value[2],k=d.value[2],b=h.scalmult(m.mult(f,k),b),c=h.scalmult(m.mult(e,k),c),d=h.scalmult(m.mult(e,f),d),b=h.sub(c,b),d=l._helper.ScaledCircleMrr(d,h.scalproduct(b,b));a.matrix=w.withUsage(d,"Circle")};l._helper.getConicType=function(a){if(1E-16>m.abs(h.det(a)).value.real)return"degenerate";var b=m.mult(a.value[0].value[0],a.value[1].value[1]),
+b=m.sub(b,m.pow(a.value[0].value[1],m.real(2))),b=b.value.real;return 1E-16>Math.abs(b)?"parabola":1E-16<b?"ellipsoid":"hyperbola"};l._helper.ConicBy5=function(a,b,c,d,e,f){a=h.turnIntoCSList([h.cross(c,d)]);var m=h.turnIntoCSList([h.cross(b,e)]);b=h.turnIntoCSList([h.cross(b,c)]);d=h.turnIntoCSList([h.cross(d,e)]);return l._helper.conicFromTwoDegenerates(a,m,b,d,f)};l._helper.conicFromTwoDegenerates=function(a,b,c,d,e){a=w.mult(h.transpose(b),a);c=w.mult(h.transpose(d),c);a=h.add(a,h.transpose(a));
+c=h.add(c,h.transpose(c));d=w.mult(w.mult(e,a),e);e=w.mult(w.mult(e,c),e);c=w.mult(d,c);e=w.mult(e,a);return h.sub(c,e)};l.ConicBy5={};l.ConicBy5.kind="C";l.ConicBy5.signature=["P","P","P","P","P"];l.ConicBy5.updatePosition=function(a){var b=l._helper.ConicBy5(a,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog);a.matrix=b;a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.FreeConic={};l.FreeConic.kind=
+"C";l.FreeConic.signature=[];l.FreeConic.initialize=function(a){var b;b=a.pos?l._helper.inputConic(a.pos):h.zeromatrix(m.real(3),m.real(3));l.FreeConic.putParamToState(a,b)};l.FreeConic.getParamForInput=function(a,b,c){return h.normalizeMax(b)};l.FreeConic.getParamFromState=function(a){return l._helper.buildConicMatrix(X(6).value)};l.FreeConic.putParamToState=function(a,b){for(var c=0;3>c;++c)for(var d=0;d<=c;++d)Za(b.value[c].value[d])};l.FreeConic.updatePosition=function(a){var b=X(6);T(b);a.matrix=
+l._helper.buildConicMatrix(b.value);a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.FreeConic.set_matrix=function(a,b){h._helper.isNumberMatrixMN(b,3,3)&&La(a,h.add(b,h.transpose(b)),"matrix")};l.FreeConic.stateSize=12;l._helper.buildConicMatrix=function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5];return h.turnIntoCSList([h.turnIntoCSList([a[0],b,d]),h.turnIntoCSList([b,c,e]),h.turnIntoCSList([d,e,f])])};l._helper.flattenConicMatrix=function(a){return h.turnIntoCSList([a.value[0].value[0],
+a.value[0].value[1],a.value[1].value[1],a.value[0].value[2],a.value[1].value[2],a.value[2].value[2]])};l._helper.splitDegenConic=function(a){var b=h.adjoint3(a),c=0,d,e,f=m.abs2(b.value[0].value[0]).value.real;for(d=1;3>d;d++)e=m.abs2(b.value[d].value[d]).value.real,e>f&&(c=d,f=e);d=m.sqrt(m.mult(m.real(-1),b.value[c].value[c]));if(1E-16>m.abs2(d).value.real)return a=h.turnIntoCSList([m.zero,m.zero,m.zero]),[a,a];c=m.real(c+1);e=h.column(b,c);e=h.scaldiv(d,e);d=e.value[0];f=e.value[1];e=e.value[2];
+d=h.turnIntoCSList([h.turnIntoCSList([m.real(0),e,m.mult(m.real(-1),f)]),h.turnIntoCSList([m.mult(m.real(-1),e),m.real(0),d]),h.turnIntoCSList([f,m.mult(m.real(-1),d),m.real(0)])]);a=h.add(a,d);var k=0;for(d=f=b=0;3>d;d++)for(c=0;3>c;c++)e=m.abs2(a.value[d].value[c]).value.real,e>f&&(k=d,b=c,f=e);d=a.value[k];a=h.transpose(a);a=a.value[b];d=h.normalizeMax(d);a=h.normalizeMax(a);d=w.withUsage(d,"Line");a=w.withUsage(a,"Line");return[d,a]};l._helper.inputConic=function(a){var b="xx xy yy xz yz zz".split(" ").map(function(b){var d=
+m._helper.input(a[b]);b[0]!==b[1]&&(d=m.realmult(.5,d));return d});return l._helper.buildConicMatrix(b)};l.SelectConic={};l.SelectConic.kind="C";l.SelectConic.signature=["Cs"];l.SelectConic.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=l._helper.inputConic(a.pos);a=v.csnames[a.args[0]].results;for(var c=h.conicDist(b,a[0]),d=0,e=1;e<a.length;++e){var f=h.conicDist(b,a[e]);f<c&&(c=f,d=e)}return d};l.SelectConic.updatePosition=function(a){a.matrix=v.csnames[a.args[0]].results[a.param];
+a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l._helper.ConicBy4p1l=function(a,b,c,d,e,f){var k=h.scalproduct(b,f),n=h.scalproduct(c,f),p=h.scalproduct(d,f),r=h.scalproduct(e,f),t=h.det3(c,d,e),v=h.det3(b,c,e),u=h.det3(b,d,e),w=h.det3(b,c,d),x=m.mult,n=m.sqrt(x(x(n,r),x(t,v))),k=m.sqrt(x(x(k,p),x(u,w))),p=h.cross(h.cross(b,d),f);f=h.cross(h.cross(c,e),f);p=h.scalmult(n,p);k=h.scalmult(k,f);f=h.normalizeMax(h.add(p,k));k=h.normalizeMax(h.sub(p,k));k=Pa(f,k);f=l._helper.ConicBy5(a,
+b,c,d,e,k.value[0]);a=l._helper.ConicBy5(a,b,c,d,e,k.value[1]);return[h.normalizeMax(f),h.normalizeMax(a)]};l.ConicBy4p1l={};l.ConicBy4p1l.kind="Cs";l.ConicBy4p1l.signature=["P","P","P","P","L"];l.ConicBy4p1l.updatePosition=function(a){var b=l._helper.ConicBy4p1l(a,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog);a.results=b};l.ConicBy4p1l.stateSize=Pa.stateSize;l._helper.ConicBy3p2l=function(a,b,c,d,e){function f(a,
+b,c,d){return m.sub(m.mult(a,d),m.mult(b,c))}var k=h.cross(a,b),l=h.cross(d,e);d=h.cross(d,k);e=h.cross(e,k);k=h.turnIntoCSList([d,e,l]);c=h.productVM(c,h.adjoint3(k));l=h.adjoint3(h.turnIntoCSList([h.scalmult(c.value[0],d),h.scalmult(c.value[1],e),h.scalmult(c.value[2],l)]));c=h.transpose(l);d=m.mult;e=h.productMV(c,a);a=e.value[0];e=e.value[1];k=h.productMV(c,b);b=k.value[0];var k=k.value[1],n=m.sqrt(d(a,e)),p=m.sqrt(d(b,k)),r,t=Array(4);for(r=0;4>r;++r){var v=(r&2)-1,u=d(m.real(((r&1)<<1)-1),n),
+w=d(m.real(v),p),x=f(e,u,k,w),y=f(b,w,a,u),v=f(a,e,b,k),z=m.add(m.add(f(b,k,a,e),f(k,w,e,u)),f(w,b,u,a)),u=d(x,x),w=d(y,y),A=d(z,z),B=d(x,y),x=d(x,z),y=d(y,z),B=m.sub(B,d(m.real(.5),d(v,v))),v=h.turnIntoCSList([h.turnIntoCSList([u,B,x]),h.turnIntoCSList([B,w,y]),h.turnIntoCSList([x,y,A])]),v=h.productMM(l,h.productMM(v,c)),v=h.turnIntoCSList([v.value[0].value[0],v.value[0].value[1],v.value[0].value[2],v.value[1].value[1],v.value[1].value[2],v.value[2].value[2]]);t[r]=v}return t};l.ConicBy3p2l={};
+l.ConicBy3p2l.kind="Cs";l.ConicBy3p2l.signature=["P","P","P","L","L"];l.ConicBy3p2l.updatePosition=function(a){for(var b=l._helper.ConicBy3p2l(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=Id(b),c=Array(4),d=0;4>d;++d){var e=b[d].value;c[d]=h.turnIntoCSList([h.turnIntoCSList([e[0],e[1],e[2]]),h.turnIntoCSList([e[1],e[3],e[4]]),h.turnIntoCSList([e[2],e[4],e[5]])])}a.results=c};l.ConicBy3p2l.stateSize=48;l.ConicBy2p3l=
+{};l.ConicBy2p3l.kind="Cs";l.ConicBy2p3l.signature=["P","P","L","L","L"];l.ConicBy2p3l.updatePosition=function(a){for(var b=l._helper.ConicBy3p2l(v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog),b=Id(b),c=Array(4),d=0;4>d;++d){var e=b[d].value,e=h.turnIntoCSList([h.turnIntoCSList([e[0],e[1],e[2]]),h.turnIntoCSList([e[1],e[3],e[4]]),h.turnIntoCSList([e[2],e[4],e[5]])]);c[d]=h.normalizeMax(h.adjoint3(e))}a.results=
+c};l.ConicBy2p3l.stateSize=48;l.ConicBy1p4l={};l.ConicBy1p4l.kind="Cs";l.ConicBy1p4l.signature=["P","L","L","L","L"];l.ConicBy1p4l.updatePosition=function(a){var b=l._helper.ConicBy4p1l(a,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog,v.csnames[a.args[0]].homog),c=b[0],b=b[1],c=h.adjoint3(c),b=h.adjoint3(b),b=[c,b];a.results=b};l.ConicBy1p4l.stateSize=Pa.stateSize;l.ConicParabolaPL={};l.ConicParabolaPL.kind="C";l.ConicParabolaPL.signature=
+["P","L"];l.ConicParabolaPL.updatePosition=function(a){var b=v.csnames[a.args[0]].homog.value,c=v.csnames[a.args[1]].homog.value,d=m.mult,e=m.neg,f=m.add,k=m.sub,n=b[0],p=b[1],r=b[2],t=c[0],b=c[1],c=c[2],u=d(r,r),x=d(t,t),y=d(b,b),z=d(r,c),A=e(r),r=f(x,y),y=d(u,y),x=d(u,x),e=d(e(u),d(t,b)),t=d(A,f(d(n,r),d(z,t))),b=d(A,f(d(p,r),d(z,b))),d=k(d(f(d(n,n),d(p,p)),r),d(u,d(c,c))),d=l._helper.buildConicMatrix([y,e,x,t,b,d]),d=h.normalizeMax(d);a.matrix=w.withUsage(d,"Conic")};l.ConicBy2Foci1P={};l.ConicBy2Foci1P.kind=
+"Cs";l.ConicBy2Foci1P.signature=["P","P","P"];l.ConicBy2Foci1P.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=h.ii,f=h.jj,k=h.normalizeMax(h.cross(b,d)),n=h.normalizeMax(h.cross(c,d)),p=h.normalizeMax(h.cross(d,e)),d=h.normalizeMax(h.cross(d,f)),n=l._helper.coHarmonic(p,d,k,n),k=h.normalizeMax(n[0]),n=h.normalizeMax(n[1]),e=h.turnIntoCSList([e]),p=h.turnIntoCSList([f]),d=h.turnIntoCSList([b]),r=h.turnIntoCSList([c]),f=l._helper.conicFromTwoDegenerates(e,
+p,d,r,k),f=h.normalizeMax(f),e=l._helper.conicFromTwoDegenerates(e,p,d,r,n),e=h.normalizeMax(e),f=h.normalizeMax(h.adjoint3(f)),e=h.normalizeMax(h.adjoint3(e));"ellipsoid"!==l._helper.getConicType(f)&&(k=f,f=e,e=k);h.almostequals(b,c).value&&(b=m.real(3),e=h.zeromatrix(b,b));a.results=[f,e]};l.ConicBy2Pol1P={};l.ConicBy2Pol1P.kind="C";l.ConicBy2Pol1P.signature=["P","L","P","L","P"];l.ConicBy2Pol1P.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,
+e=v.csnames[a.args[3]].homog,f=v.csnames[a.args[4]].homog,k=h.scalproduct,l=h.scalmult,n=h.sub,p=h.productMM,r=m.realmult,t=h.transpose,u=h.turnIntoCSList,x=n(l(k(c,b),f),l(r(2,k(c,f)),b)),y=n(l(k(e,d),f),l(r(2,k(e,f)),d)),z=u([h.cross(b,f)]),f=u([h.cross(d,f)]),y=p(t(z),u([h.cross(b,y)])),u=p(t(f),u([h.cross(d,x)])),p=p(t(z),f),b=k(b,e),c=k(d,c),d=h.add(l(c,y),l(b,u)),d=n(d,l(r(2,m.mult(b,c)),p)),d=h.add(d,t(d)),d=h.normalizeMax(d),d=w.withUsage(d,"Conic");a.matrix=d};l.ConicBy2Pol1L={};l.ConicBy2Pol1L.kind=
+"C";l.ConicBy2Pol1L.signature=["P","L","P","L","L"];l.ConicBy2Pol1L.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=v.csnames[a.args[3]].homog,f=v.csnames[a.args[4]].homog,k=h.scalproduct,l=h.scalmult,n=h.productMM,p=m.mult,r=h.transpose,t=h.turnIntoCSList,u=k(c,b),x=k(c,d),y=k(e,b),z=k(e,d),A=k(f,b),k=k(f,d),B=t([h.sub(l(p(y,k),c),l(p(x,A),e))]),b=h.add(n(r(t([l(p(y,x),f)])),t([h.sub(h.add(l(m.sub(p(u,k),p(x,A)),e),l(m.sub(p(z,
+A),p(y,k)),c)),l(h.det3(c,e,f),h.cross(b,d)))])),n(r(B),B)),b=h.add(b,r(b)),b=h.normalizeMax(b),b=w.withUsage(b,"Conic");a.matrix=b};l._helper.conic1Pol3Inc=function(a,b,c,d,e){var f=h.scalproduct,k=h.scalmult,l=h.productMM,n=h.cross,p=m.realmult,r=m.mult,t=h.transpose,v=h.turnIntoCSList,u=h.det3,w=u(a,c,d),x=v([n(c,e)]),y=v([n(a,e)]),z=v([n(c,d)]),A=f(b,a),B=f(b,c);b=f(b,e);n=v([n(d,h.sub(k(A,e),k(p(2,b),a)))]);x=k(w,l(t(x),n));a=p(2,m.add(r(u(a,d,e),B),r(w,b)));a=m.sub(r(u(c,d,e),A),a);x=h.add(x,
+k(a,l(t(y),z)));x=h.add(x,t(x));return x=h.normalizeMax(x)};l.ConicBy1Pol3P={};l.ConicBy1Pol3P.kind="C";l.ConicBy1Pol3P.signature=["P","L","P","P","P"];l.ConicBy1Pol3P.updatePosition=function(a){var b=l._helper.conic1Pol3Inc(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=w.withUsage(b,"Conic");a.matrix=b};l.ConicBy1Pol3L={};l.ConicBy1Pol3L.kind="C";l.ConicBy1Pol3L.signature=["P","L","L","L","L"];l.ConicBy1Pol3L.updatePosition=
+function(a){var b=l._helper.conic1Pol3Inc(v.csnames[a.args[1]].homog,v.csnames[a.args[0]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=h.normalizeMax(h.adjoint3(b)),b=w.withUsage(b,"Conic");a.matrix=b};l.ConicBy1Pol2P1L={};l.ConicBy1Pol2P1L.kind="Cs";l.ConicBy1Pol2P1L.signature=["P","L","P","P","L"];l.ConicBy1Pol2P1L.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=v.csnames[a.args[3]].homog,
+f=v.csnames[a.args[4]].homog,k=m.add,l=h.turnIntoCSList,n=h.cross,p=h.productMM,r=m.mult,t=m.realmult,u=h.scalmult,w=h.scalproduct,x=m.sub,y=h.transpose,z=w(c,b),A=w(c,d),B=w(c,e),c=w(f,b),C=w(f,d),w=w(f,e),f=l([n(b,d)]),b=l([n(b,e)]),d=l([n(d,e)]),e=m.sqrt(r(r(C,w),r(x(r(z,C),t(2,r(c,A))),x(r(z,w),t(2,r(c,B)))))),l=p(y(f),b),e=u(e,h.add(l,y(l))),k=u(x(r(z,r(C,w)),k(r(c,r(A,w)),r(c,r(C,B)))),l),t=h.add(h.sub(u(B,f),u(A,b)),u(t(.5,z),d)),k=h.add(k,u(r(c,c),p(y(d),t))),k=h.add(k,y(k)),p=h.normalizeMax(h.add(e,
+k)),r=h.normalizeMax(h.sub(e,k));a.results=Qb(p,r).value};l.ConicBy1Pol2P1L.stateSize=Qb.stateSize;l.ConicBy1Pol1P2L={};l.ConicBy1Pol1P2L.kind="Cs";l.ConicBy1Pol1P2L.signature=["P","L","P","L","L"];l.ConicBy1Pol1P2L.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=v.csnames[a.args[3]].homog,f=v.csnames[a.args[4]].homog,k=m.add,l=h.turnIntoCSList,n=h.cross,p=h.productMM,r=m.mult,t=m.realmult,u=h.scalmult,w=h.scalproduct,x=m.sub,
+y=h.transpose,z=w(c,b),A=w(c,d),B=w(e,b),C=w(e,d),D=w(f,b),E=w(f,d),F=r(z,z),G=r(z,A),w=r(A,A),H=r(B,B),I=r(B,C),L=r(C,C),N=r(D,D),J=r(D,E),M=r(E,E),K=r(r(F,L),M),K=x(K,t(2,r(r(G,I),M))),K=x(K,t(2,r(r(G,L),J))),K=k(K,t(.5,r(r(w,H),M))),K=k(K,t(3,r(r(w,I),J))),K=k(K,t(.5,r(r(w,L),N))),J=r(r(z,C),E),J=x(J,r(r(A,B),E)),J=x(J,r(r(A,C),D)),J=r(J,r(w,D)),M=x(r(z,C),t(2,r(A,B))),M=r(M,r(w,r(C,D))),K=p(y(l([c])),l([h.add(h.add(u(K,c),u(J,e)),u(M,f))])),J=l([e]),K=h.add(K,u(t(.5,r(r(w,w),N)),p(y(J),J))),K=
+h.add(K,u(w,p(y(l([f])),l([h.add(u(x(x(t(2,r(G,I)),r(F,L)),t(.5,r(w,H))),f),u(r(h.det3(c,e,f),x(r(z,C),r(A,B))),n(b,d)))])))),K=h.add(K,y(K)),b=m.sqrt(r(r(C,E),r(x(r(z,C),t(2,r(A,B))),x(r(z,E),t(2,r(A,D)))))),c=p(y(l([c])),l([h.sub(u(x(r(A,k(r(B,E),r(C,D))),r(z,r(C,E))),c),u(w,h.add(u(D,e),u(B,f))))])),c=h.add(c,u(r(z,w),p(y(l([e])),l([f])))),c=u(b,c),c=h.add(c,y(c)),e=h.normalizeMax(h.add(K,c)),f=h.normalizeMax(h.sub(K,c));a.results=Qb(e,f).value};l.ConicBy1Pol1P2L.stateSize=Qb.stateSize;l._helper.coHarmonic=
+function(a,b,c,d){var e=h.realVector([100*Math.random(),100*Math.random(),1]),f=h.det3(e,c,a),k=h.det3(e,c,b);c=h.det3(e,d,a);d=h.det3(e,d,b);d=m.sqrt(m.mult(d,k));f=m.sqrt(m.mult(c,f));a=w.mult(a,d);f=w.mult(b,f);b=h.add(a,f);a=h.sub(a,f);return[b,a]};l.ConicInSquare={};l.ConicInSquare.kind="C";l.ConicInSquare.signature=["P","P","P","P"];l.ConicInSquare.updatePosition=function(a){var b=D.basismap(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog),
+c=m.one,c=l._helper.buildConicMatrix([c,c,c,m.real(-3),c,c]),b=h.adjoint3(b),b=h.productMM(h.productMM(h.transpose(b),c),b),b=h.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};l.ConicBy5lines={};l.ConicBy5lines.kind="C";l.ConicBy5lines.signature=["L","L","L","L","L"];l.ConicBy5lines.updatePosition=function(a){var b=l._helper.ConicBy5(a,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=h.adjoint3(b);a.matrix=b;
+a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.ConicFromPrincipalDirections={};l.ConicFromPrincipalDirections.kind="C";l.ConicFromPrincipalDirections.signature=["P","P","P"];l.ConicFromPrincipalDirections.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=l._helper.pointReflection(b,c),f=h.cross(c,b),b=h.turnIntoCSList([f.value[0],f.value[1],m.zero]),f=h.turnIntoCSList([f]),c=h.turnIntoCSList([h.cross(c,
+b)]),e=h.turnIntoCSList([h.cross(e,b)]);a.matrix=l._helper.conicFromTwoDegenerates(f,f,c,e,d);a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.CircleBy3={};l.CircleBy3.kind="C";l.CircleBy3.signature=["P","P","P"];l.CircleBy3.updatePosition=function(a){var b=l._helper.ConicBy5(a,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,h.ii,h.jj,v.csnames[a.args[2]].homog);a.matrix=h.normalizeMax(b);a.matrix=w.withUsage(a.matrix,"Circle")};l.ArcBy3={};l.ArcBy3.kind="C";l.ArcBy3.signature=
+["P","P","P"];l.ArcBy3.updatePosition=function(a){l.CircleBy3.updatePosition(a);a.startPoint=v.csnames[a.args[0]].homog;a.viaPoint=v.csnames[a.args[1]].homog;a.endPoint=v.csnames[a.args[2]].homog};l.ArcBy3.initialize=function(a){a.startPoint=v.csnames[a.args[0]].homog;a.viaPoint=v.csnames[a.args[1]].homog;a.endPoint=v.csnames[a.args[2]].homog;a.isArc=!0};l.PolarOfPoint={};l.PolarOfPoint.kind="L";l.PolarOfPoint.signature=["P","C"];l.PolarOfPoint.updatePosition=function(a){var b=w.mult(v.csnames[a.args[1]].matrix,
+v.csnames[a.args[0]].homog),b=h.normalizeMax(b);a.homog=w.withUsage(b,"Line")};l.PolarOfLine={};l.PolarOfLine.kind="P";l.PolarOfLine.signature=["L","C"];l.PolarOfLine.updatePosition=function(a){var b=v.csnames[a.args[0]],c=h.adjoint3(v.csnames[a.args[1]].matrix),b=w.mult(c,b.homog),b=h.normalizeMax(b);a.homog=w.withUsage(b,"Point")};l.AngleBisector={};l.AngleBisector.kind="Ls";l.AngleBisector.signature=["L","L","P"];l.AngleBisector.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,
+d=v.csnames[a.args[2]].homog,e=h.add,f=h.sub,k=h.abs,l=h.cross,m=h.scalmult,n=h.normalizeMax,p=h._helper.isAlmostZero,r=h.linfty,t=m(k(l(l(r,c),r)),b),b=m(k(l(l(r,b),r)),c),f=f(t,b),e=e(t,b);p(f)&&(f=l(l(l(r,e),r),d));p(e)&&(e=l(l(l(r,f),r),d));a.results=Pa(n(f),n(e))};l.AngleBisector.stateSize=Pa.stateSize;l._helper.IntersectLC=function(a,b){var c=m,d=h.crossOperator(a),e=h.transpose(d),e=w.mult(e,w.mult(b,d)),f=h.maxIndex(a,m.abs2),k,l,n,p;0===f?(f=e.value[1].value[1],k=e.value[1].value[2],l=e.value[2].value[1],
+n=e.value[2].value[2],p=a.value[0]):1===f?(f=e.value[0].value[0],k=e.value[0].value[2],l=e.value[2].value[0],n=e.value[2].value[2],p=a.value[1]):(f=e.value[0].value[0],k=e.value[0].value[1],l=e.value[1].value[0],n=e.value[1].value[1],p=a.value[2]);c=c.div(c.sqrt(c.sub(c.mult(k,l),c.mult(f,n))),p);c=h.add(e,h.scalmult(c,d));f=h.maxIndex(c,h.abs2);d=c.value[f];d=h.normalizeMax(d);d=w.withUsage(d,"Point");c=h.transpose(c);f=h.maxIndex(c,h.abs2);c=c.value[f];c=h.normalizeMax(c);c=w.withUsage(c,"Point");
+return[d,c]};l.IntersectLC={};l.IntersectLC.kind="Ps";l.IntersectLC.signature=["L","C"];l.IntersectLC.updatePosition=function(a){var b=l._helper.IntersectLC(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].matrix);a.results=Pa(b[0],b[1])};l.IntersectLC.stateSize=Pa.stateSize;l.OtherIntersectionCL={};l.OtherIntersectionCL.kind="P";l.OtherIntersectionCL.signature=["C","L","P"];l.OtherIntersectionCL.updatePosition=function(a){var b=v.csnames[a.args[2]].homog,c=l._helper.IntersectLC(v.csnames[a.args[1]].homog,
+v.csnames[a.args[0]].matrix),d=c[0],c=c[1],e=h.projectiveDistMinScal(d,b),b=h.projectiveDistMinScal(c,b);a.homog=e<b?c:d;a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};l.IntersectCirCir={};l.IntersectCirCir.kind="Ps";l.IntersectCirCir.signature=["C","C"];l.IntersectCirCir.updatePosition=function(a){var b=v.csnames[a.args[0]].matrix,c=v.csnames[a.args[1]].matrix,d=h.scalmult(c.value[0].value[0],b.value[2]),c=h.scalmult(b.value[0].value[0],c.value[2]),d=h.sub(d,c),d=h.turnIntoCSList([d.value[0],
+d.value[1],m.realmult(.5,d.value[2])]),d=h.normalizeMax(d),b=l._helper.IntersectLC(d,b);a.results=Pa(b[0],b[1])};l.IntersectCirCir.stateSize=Pa.stateSize;l.OtherIntersectionCC={};l.OtherIntersectionCC.kind="P";l.OtherIntersectionCC.signature=["C","C","P"];l.OtherIntersectionCC.updatePosition=function(a){var b=v.csnames[a.args[0]].matrix,c=v.csnames[a.args[1]].matrix,d=v.csnames[a.args[2]].homog,e=h.scalmult(c.value[0].value[0],b.value[2]),c=h.scalmult(b.value[0].value[0],c.value[2]),e=h.sub(e,c),
+e=h.turnIntoCSList([e.value[0],e.value[1],m.realmult(.5,e.value[2])]),e=h.normalizeMax(e),e=l._helper.IntersectLC(e,b),b=e[0],e=e[1],c=h.projectiveDistMinScal(b,d),d=h.projectiveDistMinScal(e,d);a.homog=c<d?e:b;a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};l._helper.IntersectConicConic=function(a,b){var c=a.value[0],d=a.value[1],e=a.value[2],f=b.value[0],k=b.value[1],n=b.value[2],p=h.det3(c,d,e),r=m.add(m.add(h.det3(c,d,n),h.det3(c,k,e)),h.det3(f,d,e)),c=m.add(m.add(h.det3(c,
+k,n),h.det3(f,d,n)),h.det3(f,k,e)),f=h.det3(f,k,n),n=m.abs2(p).value.real,k=m.abs2(f).value.real;n<k&&(n=a,a=b,b=n,n=f,f=p,p=n,n=c,c=r,r=n,n=k);1E-24>n?(p=a,c=b):(r=m.solveCubic(p,r,c,f),c=m.abs2(m.sub(r[0],r[1])).value.real,f=m.abs2(m.sub(r[0],r[2])).value.real,k=m.abs2(m.sub(r[1],r[2])).value.real,c>f?(p=r[1],r=c>k?r[0]:r[2]):(p=r[2],r=f>k?r[0]:r[1]),p=h.add(h.scalmult(p,a),b),c=h.add(h.scalmult(r,a),b));r=l._helper.splitDegenConic(p);p=r[0];r=r[1];c=l._helper.splitDegenConic(c);k=c[0];f=c[1];c=
+h.cross(p,k);k=h.cross(r,k);p=h.cross(p,f);r=h.cross(r,f);c=h.normalizeMax(c);k=h.normalizeMax(k);p=h.normalizeMax(p);r=h.normalizeMax(r);c=w.withUsage(c,"Point");k=w.withUsage(k,"Point");p=w.withUsage(p,"Point");r=w.withUsage(r,"Point");return[c,k,p,r]};l.IntersectConicConic={};l.IntersectConicConic.kind="Ps";l.IntersectConicConic.signature=["C","C"];l.IntersectConicConic.updatePosition=function(a){var b=l._helper.IntersectConicConic(v.csnames[a.args[0]].matrix,v.csnames[a.args[1]].matrix),b=Fc(b[0],
+b[1],b[2],b[3]);a.results=b};l.IntersectConicConic.stateSize=Fc.stateSize;l.SelectP={};l.SelectP.kind="P";l.SelectP.signature=["Ps"];l.SelectP.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=v.csnames[a.args[0]].results.value;a=l._helper.initializePoint(a);for(var c=h.projectiveDistMinScal(a,b[0]),d=0,e=1;e<b.length;++e){var f=h.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};l.SelectP.updatePosition=function(a){a.homog=v.csnames[a.args[0]].results.value[a.param]};l.SelectL=
+{};l.SelectL.kind="L";l.SelectL.signature=["Ls"];l.SelectL.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=v.csnames[a.args[0]].results.value;a=l._helper.initializeLine(a);for(var c=h.projectiveDistMinScal(a,b[0]),d=0,e=1;e<b.length;++e){var f=h.projectiveDistMinScal(a,b[e]);f<c&&(c=f,d=e)}return d};l.SelectL.updatePosition=function(a){a.homog=v.csnames[a.args[0]].results.value[a.param];a.homog=w.withUsage(a.homog,"Line")};l._helper.moebiusStep=function(a,b,c){var d=m.add,e=m.sub,
+f=m.mult,h=a.value[0],k=a.value[1];a=a.value[2];var l=b.value[0],n=b.value[1];b=b.value[2];var p=c.value[0],r=c.value[1],t=c.value[2];c=e(f(b,p),f(l,t));var u=e(f(b,r),f(n,t)),p=e(f(h,t),f(a,p)),r=e(f(k,t),f(a,r));return[e(f(h,c),f(k,u)),d(f(k,c),f(h,u)),f(a,c),f(a,u),e(f(l,p),f(n,r)),d(f(n,p),f(l,r)),f(b,p),f(b,r)]};l.TrMoebius={};l.TrMoebius.kind="Mt";l.TrMoebius.signature="PPPPPP".split("");l.TrMoebius.updatePosition=function(a){var b=m.neg,c=l._helper.moebiusStep(v.csnames[a.args[0]].homog,v.csnames[a.args[2]].homog,
+v.csnames[a.args[4]].homog),d=l._helper.moebiusStep(v.csnames[a.args[1]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[5]].homog),d=h.normalizeMax(h.matrix([[d[0],b(d[1]),d[4],b(d[5])],[d[1],d[0],d[5],d[4]],[d[2],b(d[3]),d[6],b(d[7])],[d[3],d[2],d[7],d[6]]])),b=h.normalizeMax(h.matrix([[c[6],b(c[4])],[c[7],b(c[5])],[b(c[2]),c[0]],[b(c[3]),c[1]]])),b=h.normalizeMax(h.productMM(d,b));a.moebius={anti:!1,ar:b.value[0].value[0],ai:b.value[1].value[0],br:b.value[0].value[1],bi:b.value[1].value[1],cr:b.value[2].value[0],
+ci:b.value[3].value[0],dr:b.value[2].value[1],di:b.value[3].value[1]};l._helper.moebiusPair(a)};l._helper.moebiusPair=function(a){var b=a.moebius,c=m.neg,d=b.anti?c:w.identity,b=h.normalizeMax(h.turnIntoCSList([h.matrix([[c(b.cr),d(b.ci),c(b.dr)],[b.ci,d(b.cr),b.di],[b.ar,c(d(b.ai)),b.br]]),h.matrix([[c(b.ci),c(d(b.cr)),c(b.di)],[c(b.cr),d(b.ci),c(b.dr)],[b.ai,d(b.ar),b.bi]])]));a.mat1=b.value[0];a.mat2=b.value[1]};l._helper.inverseMoebius=function(a){var b=m.neg,c=a.anti?b:w.identity;return{anti:a.anti,
+ar:a.dr,ai:c(a.di),br:b(a.br),bi:b(c(a.bi)),cr:b(a.cr),ci:b(c(a.ci)),dr:a.ar,di:c(a.ai)}};l.TrInverseMoebius={};l.TrInverseMoebius.kind="Mt";l.TrInverseMoebius.signature=["Mt"];l.TrInverseMoebius.updatePosition=function(a){a.moebius=l._helper.inverseMoebius(v.csnames[a.args[0]].moebius);l._helper.moebiusPair(a)};l.TrMoebiusP={};l.TrMoebiusP.kind="P";l.TrMoebiusP.signature=["Mt","P"];l.TrMoebiusP.updatePosition=function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]].homog,d=h.productMV(b.mat1,
+c),b=h.productMV(b.mat2,c);a.homog=h.normalizeMax(h.cross(d,b));a.homog=w.withUsage(a.homog,"Point")};l._helper.TrMoebiusP=function(a,b){var c=h.productMV(b.mat1,a),d=h.productMV(b.mat2,a);return h.normalizeMax(h.cross(c,d))};l.TrMoebiusL={};l.TrMoebiusL.kind="C";l.TrMoebiusL.signature=["Mt","L"];l.TrMoebiusL.updatePosition=function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]].homog,d=function(){var a=h.realVector([Math.random()-.5,Math.random()-.5,Math.random()-.5]);return h.normalizeMax(a)},
+e=h.cross(d(),c),f=h.cross(d(),c),c=h.cross(d(),c),e=l._helper.TrMoebiusP(e,b),f=l._helper.TrMoebiusP(f,b),b=l._helper.TrMoebiusP(c,b);a.matrix=h.normalizeMax(l._helper.ConicBy5(null,e,f,b,h.ii,h.jj));a.matrix=w.withUsage(a.matrix,"Circle")};l.TrMoebiusS={};l.TrMoebiusS.kind="C";l.TrMoebiusS.signature=["Mt","S"];l.TrMoebiusS.updatePosition=function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]],d=c.startpos,c=c.endpos,e=h.add(d,c),d=l._helper.TrMoebiusP(d,b),e=l._helper.TrMoebiusP(e,b),b=l._helper.TrMoebiusP(c,
+b);a.startPoint=d;a.viaPoint=e;a.endPoint=b;a.isArc=!0;a.matrix=h.normalizeMax(l._helper.ConicBy5(null,d,e,b,h.ii,h.jj));a.matrix=w.withUsage(a.matrix,"Circle")};l.TrMoebiusC={};l.TrMoebiusC.kind="C";l.TrMoebiusC.signature=["Mt","C"];l.TrMoebiusC.signatureConstraints=function(a){return"Circle"===v.csnames[a.args[1]].matrix.usage};l.TrMoebiusC.updatePosition=function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]].matrix,d=function(){var a=h.realVector([Math.random()-.5,Math.random()-.5,Math.random()-
+.5]);return h.normalizeMax(a)},e=l._helper.IntersectLC(d(),c),d=l._helper.IntersectLC(d(),c),c=e[1],d=d[1],e=l._helper.TrMoebiusP(e[0],b),c=l._helper.TrMoebiusP(c,b),b=l._helper.TrMoebiusP(d,b);a.matrix=h.normalizeMax(l._helper.ConicBy5(null,e,c,b,h.ii,h.jj));a.matrix=w.withUsage(a.matrix,"Circle")};l.TrMoebiusArc={};l.TrMoebiusArc.kind="C";l.TrMoebiusArc.signature=["Mt","C"];l.TrMoebiusArc.signatureConstraints=function(a){return v.csnames[a.args[1]].isArc};l.TrMoebiusArc.updatePosition=function(a){var b=
+v.csnames[a.args[0]],c=v.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=l._helper.TrMoebiusP(c.startPoint,b),d=l._helper.TrMoebiusP(d,b),b=l._helper.TrMoebiusP(e,b);a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=h.normalizeMax(l._helper.ConicBy5(null,c,d,b,h.ii,h.jj));a.matrix=w.withUsage(a.matrix,"Circle")};l._helper.trBuildMatrix=function(a,b){var c=b(0),d=b(1),e=h.productMM(d,h.adjoint3(c));a.matrix=h.normalizeMax(e);e=h.transpose(h.productMM(c,h.adjoint3(d)));a.dualMatrix=h.normalizeMax(e)};
+l.TrProjection={};l.TrProjection.kind="Tr";l.TrProjection.signature="PPPPPPPP".split("");l.TrProjection.initialize=function(a){a.isEuclidean=0};l.TrProjection.updatePosition=function(a){l._helper.trBuildMatrix(a,function(b){return D.basismap(v.csnames[a.args[0+b]].homog,v.csnames[a.args[2+b]].homog,v.csnames[a.args[4+b]].homog,v.csnames[a.args[6+b]].homog)})};l.TrAffine={};l.TrAffine.kind="Tr";l.TrAffine.signature="PPPPPP".split("");l.TrAffine.initialize=function(a){a.isEuclidean=0};l.TrAffine.updatePosition=
+function(a){var b=m.mult,c=h.scalmult,d=h.turnIntoCSList,e=h.transpose,f=h.normalizeMax,k=h.productMM,l=h.adjoint3,n=d([v.csnames[a.args[0]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[4]].homog]),p=d([v.csnames[a.args[1]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[5]].homog]),r=e(n),e=e(p),t=r.value[2].value,u=e.value[2].value,w=[b(t[0],u[2]),b(t[1],u[0]),b(t[2],u[1])],r=l(r).value;a.matrix=f(k(e,d([c(b(w[0],u[1]),r[0]),c(b(w[1],u[2]),r[1]),c(b(w[2],u[0]),r[2])])));r=n.value;a.dualMatrix=
+f(k(l(p),d([c(b(t[2],w[1]),r[0]),c(b(t[0],w[2]),r[1]),c(b(t[1],w[0]),r[2])])))};l.TrSimilarity={};l.TrSimilarity.kind="Tr";l.TrSimilarity.signature=["P","P","P","P"];l.TrSimilarity.initialize=function(a){a.isEuclidean=1};l.TrSimilarity.updatePosition=function(a){l._helper.trBuildMatrix(a,function(b){return D.basismap(v.csnames[a.args[0+b]].homog,v.csnames[a.args[2+b]].homog,h.ii,h.jj)})};l.TrTranslation={};l.TrTranslation.kind="Tr";l.TrTranslation.signature=["P","P"];l.TrTranslation.initialize=function(a){a.isEuclidean=
+1};l.TrTranslation.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=h.cross(b,c).value,b=m.mult(b.value[2],c.value[2]),c=h.turnIntoCSList,e=m.neg,f=m.zero,d=c([c([b,f,d[1]]),c([f,b,e(d[0])]),c([f,f,b])]),d=h.normalizeMax(d);a.matrix=d;b=e(d.value[0].value[0]);d=c([c([b,f,f]),c([f,b,f]),c([d.value[0].value[2],d.value[1].value[2],b])]);a.dualMatrix=d};l.TrReflectionP={};l.TrReflectionP.kind="Tr";l.TrReflectionP.signature=["P"];l.TrReflectionP.initialize=function(a){a.isEuclidean=
+1};l.TrReflectionP.updatePosition=function(a){var b=v.csnames[a.args[0]].homog.value,c=m.realmult(-.5,b[2]),d=m.zero,b=h.turnIntoCSList([h.turnIntoCSList([c,d,b[0]]),h.turnIntoCSList([d,c,b[1]]),h.turnIntoCSList([d,d,m.neg(c)])]),b=h.normalizeMax(b);a.matrix=b;a.dualMatrix=h.transpose(b)};l.TrReflectionL={};l.TrReflectionL.kind="Tr";l.TrReflectionL.signature=["L"];l.TrReflectionL.initialize=function(a){a.isEuclidean=-1};l.TrReflectionL.updatePosition=function(a){var b=m.mult,c=m.realmult,d=m.zero,
+e=v.csnames[a.args[0]].homog.value,f=e[0],k=e[1],e=e[2],l=b(f,f),n=b(k,k),p=c(-.5,m.sub(l,n)),r=b(f,k),b=h.turnIntoCSList([h.turnIntoCSList([m.neg(p),r,b(f,e)]),h.turnIntoCSList([r,p,b(k,e)]),h.turnIntoCSList([d,d,c(-.5,m.add(l,n))])]),b=h.normalizeMax(b);a.matrix=b;a.dualMatrix=h.transpose(b)};l.TrReflectionS={};l.TrReflectionS.kind="Tr";l.TrReflectionS.signature=["S"];l.TrReflectionS.updatePosition=l.TrReflectionL.updatePosition;l.TrReflectionC={};l.TrReflectionC.kind="Mt";l.TrReflectionC.signature=
+["C"];l.TrReflectionC.signatureConstraints=function(a){return"Circle"===v.csnames[a.args[0]].matrix.usage};l.TrReflectionC.updatePosition=function(a){var b=v.csnames[a.args[0]].matrix,c=b.value[0].value[2],d=b.value[1].value[2],e=m.neg;a.moebius={anti:!0,ar:c,ai:d,br:b.value[2].value[2],bi:m.zero,cr:e(b.value[0].value[0]),ci:m.zero,dr:e(c),di:d};l._helper.moebiusPair(a)};l.TrInverse={};l.TrInverse.kind="Tr";l.TrInverse.signature=["Tr"];l.TrInverse.initialize=function(a){a.isEuclidean=v.csnames[a.args[0]].isEuclidean};
+l.TrInverse.updatePosition=function(a){var b=v.csnames[a.args[0]];a.dualMatrix=h.transpose(b.matrix);a.matrix=h.transpose(b.dualMatrix)};l.TransformC={};l.TransformC.kind="C";l.TransformC.signature=["Tr","C"];l.TransformC.updatePosition=function(a){var b=v.csnames[a.args[0]].dualMatrix,b=h.productMM(h.productMM(b,v.csnames[a.args[1]].matrix),h.transpose(b)),b=h.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};l.TransformArc={};l.TransformArc.kind="C";l.TransformArc.signature=["Tr","C"];l.TransformArc.signatureConstraints=
+function(a){return v.csnames[a.args[0]].isArc};l.TransformArc.updatePosition=function(a){var b=v.csnames[a.args[0]].matrix,c=v.csnames[a.args[1]],d=c.viaPoint,e=c.endPoint,c=h.normalizeMax(h.productMV(b,c.startPoint)),d=h.normalizeMax(h.productMV(b,d)),b=h.normalizeMax(h.productMV(b,e));a.startPoint=c;a.viaPoint=d;a.endPoint=b;a.isArc=!0;a.matrix=h.normalizeMax(l._helper.ConicBy5(null,c,d,b,h.ii,h.jj));a.matrix=w.withUsage(a.matrix,"Circle")};l.TransformP={};l.TransformP.kind="P";l.TransformP.signature=
+["Tr","P"];l.TransformP.updatePosition=function(a){a.homog=h.normalizeMax(h.productMV(v.csnames[a.args[0]].matrix,v.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Point")};l.TransformL={};l.TransformL.kind="L";l.TransformL.signature=["Tr","L"];l.TransformL.updatePosition=function(a){a.homog=h.normalizeMax(h.productMV(v.csnames[a.args[0]].dualMatrix,v.csnames[a.args[1]].homog));a.homog=w.withUsage(a.homog,"Line")};l.TransformS={};l.TransformS.kind="S";l.TransformS.signature=["Tr","S"];l.TransformS.updatePosition=
+function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]];l.Segment.setSegmentPos(a,h.productMV(b.dualMatrix,c.homog),h.productMV(b.matrix,c.startpos),h.productMV(b.matrix,c.endpos))};l.TransformPolygon={};l.TransformPolygon.kind="Poly";l.TransformPolygon.signature=["Tr","Poly"];l.TransformPolygon.updatePosition=function(a){var b=v.csnames[a.args[0]].matrix;a.vertices=h.turnIntoCSList(v.csnames[a.args[1]].vertices.value.map(function(a){a=h.normalizeMax(h.productMV(b,a));return a=w.withUsage(a,
+"Point")}))};l.TrComposeTrTr={};l.TrComposeTrTr.kind="Tr";l.TrComposeTrTr.signature=["Tr","Tr"];l.TrComposeTrTr.initialize=function(a){a.isEuclidean=v.csnames[a.args[0]].isEuclidean*v.csnames[a.args[1]].isEuclidean};l.TrComposeTrTr.updatePosition=function(a){var b=v.csnames[a.args[0]],c=v.csnames[a.args[1]];a.matrix=h.normalizeMax(h.productMM(c.matrix,b.matrix));a.dualMatrix=h.normalizeMax(h.productMM(c.dualMatrix,b.dualMatrix))};l._helper.composeMtMt=function(a,b,c){function d(a,b,c,e){return k(p(a,
+b),p(c,e))}function e(a,b,c,g,f,h,l,m){return k(d(a,b,c,g),d(f,h,l,m))}function f(a,b,c,e,g,h,k,l){return n(d(a,b,c,e),d(g,h,k,l))}var k=m.add,n=m.sub,p=m.mult,r=c.anti?f:e,t=c.anti?e:f,r=h.normalizeMax(h.turnIntoCSList([t(b.ar,c.ar,b.cr,c.br,b.ai,c.ai,b.ci,c.bi),r(b.ar,c.ai,b.cr,c.bi,b.ai,c.ar,b.ci,c.br),t(b.br,c.ar,b.dr,c.br,b.bi,c.ai,b.di,c.bi),r(b.br,c.ai,b.dr,c.bi,b.bi,c.ar,b.di,c.br),t(b.ar,c.cr,b.cr,c.dr,b.ai,c.ci,b.ci,c.di),r(b.ar,c.ci,b.cr,c.di,b.ai,c.cr,b.ci,c.dr),t(b.br,c.cr,b.dr,c.dr,
+b.bi,c.ci,b.di,c.di),r(b.br,c.ci,b.dr,c.di,b.bi,c.cr,b.di,c.dr)])).value;a.moebius={anti:b.anti!==c.anti,ar:r[0],ai:r[1],br:r[2],bi:r[3],cr:r[4],ci:r[5],dr:r[6],di:r[7]};l._helper.moebiusPair(a)};l._helper.euc2moeb=function(a){var b=a.matrix.value;return{anti:0>a.isEuclidean,ar:b[0].value[0],ai:b[1].value[0],br:b[0].value[2],bi:b[1].value[2],cr:m.zero,ci:m.zero,dr:b[2].value[2],di:m.zero}};l.TrComposeMtMt={};l.TrComposeMtMt.kind="Mt";l.TrComposeMtMt.signature=["Mt","Mt"];l.TrComposeMtMt.updatePosition=
+function(a){l._helper.composeMtMt(a,v.csnames[a.args[0]].moebius,v.csnames[a.args[1]].moebius)};l.TrComposeTrMt={};l.TrComposeTrMt.kind="Mt";l.TrComposeTrMt.signature=["Tr","Mt"];l.TrComposeTrMt.signatureConstraints=function(a){return!!v.csnames[a.args[0]].isEuclidean};l.TrComposeTrMt.updatePosition=function(a){l._helper.composeMtMt(a,l._helper.euc2moeb(v.csnames[a.args[0]]),v.csnames[a.args[1]].moebius)};l.TrComposeMtTr={};l.TrComposeMtTr.kind="Mt";l.TrComposeMtTr.signature=["Mt","Tr"];l.TrComposeMtTr.signatureConstraints=
+function(a){return!!v.csnames[a.args[1]].isEuclidean};l.TrComposeMtTr.updatePosition=function(a){l._helper.composeMtMt(a,v.csnames[a.args[0]].moebius,l._helper.euc2moeb(v.csnames[a.args[1]]))};l._helper.pointReflection=function(a,b){return h.normalizeMax(h.sub(h.scalmult(m.realmult(2,b.value[2]),a),h.scalmult(a.value[2],b)))};l._helper.conicOtherIntersection=function(a,b,c){var d=h.productMV(a,c);a=h.scalproduct(c,d);d=h.scalproduct(b,d);d=m.realmult(-2,d);b=h.scalmult(a,b);c=h.scalmult(d,c);c=h.add(b,
+c);return c=h.normalizeMax(c)};l.Dist={};l.Dist.kind="V";l.Dist.signature=["P","P"];l.Dist.updatePosition=function(a){var b=v.csnames[a.args[1]].homog;a.value=h.abs(h.sub(h.normalizeZ(v.csnames[a.args[0]].homog),h.normalizeZ(b)))};l.Angle={};l.Angle.kind="V";l.Angle.signature=["L","L","P"];l.Angle.initialize=function(a){void 0===a.angle&&(a.angle=.5*Math.PI);Za(m._helper.input(a.angle))};l.Angle.updatePosition=function(a){var b=v.csnames[a.args[1]].homog,c=v.csnames[a.args[2]].homog,d=h.cross(v.csnames[a.args[0]].homog,
+h.linfty),b=h.cross(b,h.linfty),c=h.crossratio3(d,b,h.ii,h.jj,c),c=m.mult(m.complex(0,.5),m.log(c)),d=(Bb().value.real-c.value.real)/Math.PI,b=Math.round(d);!lb&&.01<Math.abs(b-d)&&ec();c=m.complex(b*Math.PI+c.value.real,c.value.imag);Za(c);a.value=w.withUsage(c,"Angle")};l.Angle.stateSize=2;l.Text={};l.Text.kind="Text";l.Text.signature="**";l.Text.isMovable=!0;l.Text.updatePosition=Sa;l.Text.initialize=function(a){a.text=String(a.text);a.pos&&(a.homog=l._helper.initializePoint(a));a.dock&&(a.dock.offset=
+a.dock.offset&&2===a.dock.offset.length?h.realVector([+a.dock.offset[0],+a.dock.offset[1]]):h.realVector([0,0]))};l.Text.getParamForInput=function(a,b,c){return l.Free.getParamForInput(a,b,c)};l.Text.getParamFromState=function(a){return a.homog};l.Text.putParamToState=function(a,b){a.homog=b};l.Calculation={};l.Calculation.kind="Text";l.Calculation.signature="**";l.Calculation.isMovable=!0;l.Calculation.updatePosition=Sa;l.Calculation.initialize=function(a){l.Text.initialize(a);a.calculation=Ua(a.text)};
+l.Calculation.getText=function(a){return Z(z(a.calculation))};l.Calculation.getParamForInput=l.Text.getParamForInput;l.Calculation.getParamFromState=l.Text.getParamFromState;l.Calculation.putParamToState=l.Text.putParamToState;l.Equation={};l.Equation.kind="Text";l.Equation.isMovable=!0;l.Equation.signature="**";l.Equation.updatePosition=Sa;l.Equation.initialize=function(a){l.Text.initialize(a);a.calculation=Ua(a.text)};l.Equation.getText=function(a){return a.text+" = "+Z(z(a.calculation))};l.Equation.getParamForInput=
+l.Text.getParamForInput;l.Equation.getParamFromState=l.Text.getParamFromState;l.Equation.putParamToState=l.Text.putParamToState;l.Evaluate={};l.Evaluate.kind="Text";l.Evaluate.isMovable=!0;l.Evaluate.signature="**";l.Evaluate.updatePosition=Sa;l.Evaluate.initialize=function(a){l.Text.initialize(a);a.calculation=Ua(a.text)};l.Evaluate.getText=function(a){z(a.calculation);return a.text};l.Evaluate.getParamForInput=l.Text.getParamForInput;l.Evaluate.getParamFromState=l.Text.getParamFromState;l.Evaluate.putParamToState=
+l.Text.putParamToState;l.Plot={};l.Plot.kind="Text";l.Plot.isMovable=!0;l.Plot.signature="**";l.Plot.updatePosition=Sa;l.Plot.initialize=function(a){l.Text.initialize(a);a.calculation=Ua("plot(("+a.text+"))")};l.Plot.getText=function(a){z(a.calculation);return a.text};l.Plot.getParamForInput=l.Text.getParamForInput;l.Plot.getParamFromState=l.Text.getParamFromState;l.Plot.putParamToState=l.Text.putParamToState;l.Button={};l.Button.kind="Text";l.Button.signature="**";l.Button.isMovable=!0;l.Button.updatePosition=
+Sa;l.Button.initialize=function(a){var b=document.createElement("button");Gc(a,"click",b)};l.Button.getParamForInput=l.Text.getParamForInput;l.Button.getParamFromState=l.Text.getParamFromState;l.Button.putParamToState=l.Text.putParamToState;l.Button.set_fillcolor=function(a,b){h._helper.isNumberVecN(b,3)&&(a.fillcolor=b.value.map(function(a){return a.value.real}),a.html.style.backgroundColor=x.makeColor(a.fillcolor,a.fillalpha))};l.ToggleButton={};l.ToggleButton.kind="Text";l.ToggleButton.signature=
+"**";l.ToggleButton.isMovable=!0;l.ToggleButton.updatePosition=Sa;l.ToggleButton.initialize=function(a){var b;b=void 0;void 0===b&&(b="CindyJSid");b+=++Qa;var c=document.createElement("input"),d=document.createElement("label");c.setAttribute("id",b);d.setAttribute("for",b);c.setAttribute("type","checkbox");a.pressed&&(c.checked=!0);a.checkbox=c;Gc(a,"change",c,d)};l.ToggleButton.getParamForInput=l.Text.getParamForInput;l.ToggleButton.getParamFromState=l.Text.getParamFromState;l.ToggleButton.putParamToState=
+l.Text.putParamToState;l.ToggleButton.set_fillcolor=l.Button.set_fillcolor;l.EditableText={};l.EditableText.kind="Text";l.EditableText.isMovable=!0;l.EditableText.signature=[];l.EditableText.updatePosition=Sa;l.EditableText.initialize=function(a){var b=document.createElement("input");b.setAttribute("type","text");b.className="CindyJS-editabletext";Ia(a.minwidth)&&(b.style.width=a.minwidth-3+"px");"string"===typeof a.text&&(b.value=a.text);b.addEventListener("keydown",function(c){13===c.keyCode&&(a.text=
+a.html.value,b.blur())});b.addEventListener("change",function(b){a.text=a.html.value});Gc(a,"change",b)};l.EditableText.getText=function(a){return!1};l.EditableText.getParamForInput=l.Text.getParamForInput;l.EditableText.getParamFromState=l.Text.getParamFromState;l.EditableText.putParamToState=l.Text.putParamToState;l.EditableText.set_fillcolor=l.Button.set_fillcolor;l.EditableText.get_currenttext=function(a){return w.string(String(a.html.value))};l.EditableText.get_text=function(a){return w.string(String(a.text))};
+l.EditableText.set_currenttext=function(a,b){a.html.value=a.text=Z(b)};l.EditableText.get_text=l.EditableText.get_text;l.EditableText.set_text=l.EditableText.set_currenttext;l.EditableText.get_val=l.EditableText.get_text;l.EditableText.set_val=l.EditableText.set_currenttext;l.EditableText.get_currenttext=l.EditableText.get_currenttext;l.EditableText.set_currenttext=l.EditableText.set_currenttext;l._helper.initializePoint=function(a){var b=0,c=0,d=0;if(a.pos){if("list"===a.pos.ctype&&h.isNumberVector(a.pos))return a.pos;
+2===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=1);3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=h.turnIntoCSList([m._helper.input(b),m._helper.input(c),m._helper.input(d)]);return a=h.normalizeMax(a)};l._helper.initializeLine=function(a){var b=0,c=0,d=0;if(a.pos){if("list"===a.pos.ctype&&h.isNumberVector(a.pos))return a.pos;3===a.pos.length&&(b=a.pos[0],c=a.pos[1],d=a.pos[2])}a=h.turnIntoCSList([m._helper.input(b),m._helper.input(c),m._helper.input(d)]);return a=h.normalizeMax(a)};l.Poly={};
+l.Poly.kind="Poly";l.Poly.signature="P*";l.Poly.updatePosition=function(a){a.vertices=h.turnIntoCSList(a.args.map(function(a){return v.csnames[a].homog}))};var U=null;l.IFS={};l.IFS.kind="IFS";l.IFS.signature="**";l.IFS.signatureConstraints=function(a){for(var b=0;b<a.args.length;++b){var c=v.csnames[a.args[b]].kind;if("Tr"!==c&&"Mt"!==c)return!1}return 0<a.args.length};l.IFS.initialize=function(a){if(U)U.dirty=!0;else if(a=va.getBaseDir(),!1!==a){U={dirty:!1,params:{generation:0}};var b=U.worker=
+new Worker(a+"ifs.js");b.onmessage=function(a){U.img&&"function"===typeof U.img.close&&U.img.close();if(!Yb){a=a.data;if(a.generation===U.params.generation){if(a.buffer){U.canvas||(U.canvas=document.createElement("canvas"),U.ctx=U.canvas.getContext("2d"));U.canvas.width=a.width;U.canvas.height=a.height;var d=new Uint8ClampedArray(a.buffer,a.imgPtr,a.width*a.height*4),d=new ImageData(d,a.width,a.height);U.ctx.putImageData(d,0,0);U.img=U.canvas}else U.img=a.img;e()}else U.img=null;a.buffer?b.postMessage({cmd:"next",
+buffer:a.buffer},[a.buffer]):b.postMessage({cmd:"next"})}};jb.push(b.terminate.bind(b))}};l.IFS.updatePosition=function(a){U.dirty=!0};l.IFS.updateParameters=function(){if(U.worker){var a={cmd:"init",generation:U.params.generation,width:4*ca,height:4*da};a.systems=v.ifs.map(function(a){var b=0,d,e=a.ifs||[],f=a.args.map(function(a,b){var c=e[b]||{};return{prob:c.prob||1,color:c.color||[0,0,0]}});for(d=0;d<f.length;++d)b+=f[d].prob;d=h.realMatrix([[1,0,0],[0,1,0],[0,0,4]]);var k=h.productMM(y.toMat(),
+d);for(d=0;d<a.args.length;++d){var n=v.csnames[a.args[d]],p=n.kind,r=f[d];r.kind=p;r.prob/=b;if("Tr"===p)n=h.normalizeMax(h.productMM(h.adjoint3(k),h.productMM(n.matrix,k))),h._helper.isAlmostReal(n)?r.mat=n.value.map(function(a){return a.value.map(function(a){return a.value.real})}):r.kind="cplx";else if("Mt"===p){var p=y.drawingstate.matrix,p={anti:0<p.det,ar:m.real(p.a),ai:m.real(p.c),br:m.real(p.tx),bi:m.real(-p.ty),cr:m.zero,ci:m.zero,dr:m.real(.25),di:m.zero},t={};l._helper.composeMtMt(t,n.moebius,
+p);p=l._helper.inverseMoebius(p);l._helper.composeMtMt(t,p,t.moebius);p=t.moebius;p=h.turnIntoCSList([p.ar,p.ai,p.br,p.bi,p.cr,p.ci,p.dr,p.di]);h._helper.isAlmostReal(p)?(p=p.value,r.moebius={ar:p[0].value.real,ai:p[1].value.real,br:p[2].value.real,bi:p[3].value.real,cr:p[4].value.real,ci:p[5].value.real,dr:p[6].value.real,di:p[7].value.real,sign:n.moebius.anti?-1:1}):r.kind="cplx"}}return{trafos:f}});w.deeplyEqual(a,U.params)||(++a.generation,U.img=null,U.params=a,U.mat=y.drawingstate.matrix,U.worker.postMessage(a))}};
+l.IFS.probSetter=function(a,b,c){"number"===c.ctype&&(b.ifs[a].prob=c.value.real,U.dirty=!0)};(function(){for(var a=0;10>a;++a)l.IFS["set_prob"+a]=l.IFS.probSetter.bind(null,a)})();l._helper.snapPointToLine=function(a,b){if(m._helper.isAlmostZero(a.value[2]))return a;var c=l._helper.projectPointToLine(a,b),c=h.normalizeZ(c),d=c.value[0].value.real,c=c.value[1].value.real,e=Math.round(d/za)*za,f=Math.round(c/za)*za,k=h.realVector([e,f,1]);.2>Math.abs(e-d)&&.2>Math.abs(f-c)&&m._helper.isAlmostZero(h.scalproduct(b,
+k))&&(a=l._helper.projectPointToLine(k,b));return a};var Ac={CircleByRadius:"CircleMr",IntersectionCircleCircle:"IntersectCirCir",IntersectionConicConic:"IntersectConicConic",FreePoint:"Free",Orthogonal:"Perp",Parallel:"Para",Pole:"PolarOfLine",Polar:"PolarOfPoint",Arc:"ArcBy3",EuclideanMid:"Mid",AngularBisector:"AngleBisector",TransformConic:"TransformC",TransformSegment:"TransformS",TrMoebiusSegment:"TrMoebiusS",ReflectCC:"TrMoebiusC",ReflectCL:"TrMoebiusL",ReflectCP:"TrMoebiusP",ReflectCArc:"TrMoebiusArc",
+ReflectCS:"TrMoebiusS",TrMoebiusCircle:"TrMoebiusC"},zd={CircleMFixedr:function(a){a.pinned=!0;a.type="CircleMr";return[a]},CircleByFixedRadius:function(a){a.pinned=!0;a.type="CircleMr";return[a]},IntersectionConicLine:function(a){a.args=[a.args[1],a.args[0]];a.type="IntersectLC";return[a]},angleBisector:function(a){var b={name:a.name+"_Intersection",type:"Meet",args:a.args,visible:!1};a.type="AngleBisector";a.args=[a.args[0],a.args[1],b.name];return[b,a]},Transform:function(a){var b=v.csnames[a.args[1]],
+b={Tr:"Transform",Mt:"TrMoebius"}[v.csnames[a.args[0]].kind]+(b.isArc?"Arc":b.kind);if(l.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]},TrReflection:function(a){var b="TrReflection"+v.csnames[a.args[0]].kind;if(l.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]},TrCompose:function(a){var b="TrCompose"+a.args.map(function(a){return v.csnames[a].kind}).join("");if(l.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");
+return[]}},te="align alpha angle args arrow arrowposition arrowshape arrowsides arrowsize clip color dashtype drawtrace fillalpha fillcolor filled labeled labelpos name overhang pinned printname radius size text text_fontfamily textbold textitalics textsize tracedim tracelength traceskip tracing type visible".split(" ");sa.saveState=function(){return{geometry:ue()}};var ya={},Qd,Rb,Rd,Sd;Qd=[[],[.2],[.075,.225],[44/45,-56/15,32/9],[19372/6561,-25360/2187,64448/6561,-212/729],[9017/3168,-355/33,46732/
+5247,49/176,-5103/18656],[35/384,0,500/1113,125/192,-2187/6784,11/84]];Rb=[0,.2,.3,.8,8/9,1,1];Rd=[35/384,0,500/1113,125/192,-2187/6784,11/84,0];Sd=[5179/57600,0,7571/16695,.6140625,-92097/339200,187/2100,.025];var Fa,ma=[],Hc=[],qc=!1;ya.tick=function(a){a/=Vb;for(var b=0;b<Vb;b++)ya.tick1(a),Ib+=a,z(R.simulationstep)};ya.tick1=function(a){for(var b=a,c=0;0<a&&c<.999*a||0>a&&c>.999*a;)b=ya.oneRKStep(b),c+=b,b=Math.min(2*b,a-c),b=Math.max(b,1E-16),ya.restorePosition(),ya.doCollisions(),ya.calculateForces(),
+ya.moveToFinalPos();return!0};ya.restorePosition=function(){Fa.forEach(function(a){O[a.type].restorePos(a,9)})};ya.doCollisions=function(){Fa.forEach(function(a){O[a.type].doCollisions(a)})};ya.calculateForces=function(){Fa.forEach(function(a){O[a.type].calculateForces(a)})};ya.moveToFinalPos=function(){Fa.forEach(function(a){O[a.type].move(a)})};ya.oneRKStep=function(a){for(var b=function(a){Fa.forEach(function(b){O[b.type].initRK(b,a);O[b.type].storePosition(b)})},c=function(a){Fa.forEach(function(b){O[b.type].setToTimestep(b,
+Rb[a])})},d=function(a){Fa.forEach(function(b){O[b.type].proceedMotion(b,Rb[a],a,Qd[a])})},e=function(){Fa.forEach(function(a){O[a.type].resetForces(a)})},f=function(a){Fa.forEach(function(b){O[b.type].calculateDelta(b,a)})},h=function(b){var c=0;Fa.forEach(function(a){O[a.type].proceedMotion(a,Rb[6],7,Rd);O[a.type].savePos(a,8);O[a.type].proceedMotion(a,Rb[6],7,Sd);O[a.type].savePos(a,9);c+=O[a.type].sqDist(a,8,9)});return c=Math.sqrt(c)/a},k=function(a){Fa.forEach(function(a){O[a.type].recallPosition(a)})},
+l=!1;!l;){b(a);for(var m=0;7>m;m++)c(m),d(m),e(),ya.calculateForces(),f(m);h(a)>O.env.errorbound&&a>O.env.lowestdeltat?(a/=O.env.slowdownfactor,k()):l=!0}return a};var O={Mass:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=1);"undefined"===typeof a.charge&&(a.charge=0);"undefined"===typeof a.friction&&(a.friction=0);a.lnfrict=0;"undefined"===typeof a.limitspeed&&(a.limitspeed=!1);"undefined"===typeof a.fixed&&(a.fixed=!1);"undefined"===typeof a.radius&&
+(a.radius=1);a.internalmove=!1;a.fx=0;a.fy=0;a.fz=0;a.vx=a.vx||0;a.vy=a.vy||0;a.vz=a.vz||0;a.mtype=0;a.env=O.env;a.deltat=0;a.mx=0;a.my=0;a.mz=0;a.mvx=0;a.mvy=0;a.mvz=0;a.dx=[0,0,0,0,0,0,0,0,0,0];a.dy=[0,0,0,0,0,0,0,0,0,0];a.dz=[0,0,0,0,0,0,0,0,0,0];a.dvx=[0,0,0,0,0,0,0,0,0,0];a.dvy=[0,0,0,0,0,0,0,0,0,0];a.dvz=[0,0,0,0,0,0,0,0,0,0];a.midx=0;a.midy=0;a.midz=0;a.lx=0;a.ly=0;a.lz=0},resetForces:function(a){a.fx=0;a.fy=0;a.fz=0},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);
+a.x=c.x;a.y=c.y;a.z=0;a.xo=a.x;a.yo=a.y;a.zo=a.z;a.vxo=a.vx;a.vyo=a.vy;a.vzo=a.vz;a.deltat=b;a.fx=0;a.fy=0;a.fz=0},setVelocity:function(a,b,c,d){d||(d=0);a.vx=b;a.vy=c;a.vz=d},move:function(a){a.pos=[a.x,a.y,1];a.internalmove=!0;ja&&aa.down&&a.el===ja.mover||La(a.el,h.realVector(a.pos),"homog");a.el.sx=a.x;a.el.sy=a.y;a.internalmove=!1},proceedMotion:function(a,b,c,d){if(!a.fixed)for(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz,b=0;b<c;b++)a.x+=d[b]*a.dx[b]*a.deltat,a.y+=d[b]*a.dy[b]*
+a.deltat,a.z+=d[b]*a.dz[b]*a.deltat,a.vx+=d[b]*a.dvx[b]*a.deltat,a.vy+=d[b]*a.dvy[b]*a.deltat,a.vz+=d[b]*a.dvz[b]*a.deltat},calculateForces:function(a){var b=Math.sqrt(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz);a.lnfrict=-Math.log((1-a.friction)*(1-a.env.friction)*(.1<b&&a.limitSpeed?.1/b:1));a.fx+=-a.vx*a.lnfrict*a.mass;a.fy+=-a.vy*a.lnfrict*a.mass;a.fz+=-a.vz*a.lnfrict*a.mass},calculateDelta:function(a,b){a.dx[b]=a.vx;a.dy[b]=a.vy;a.dz[b]=a.vz;a.dvx[b]=a.fx/a.mass;a.dvy[b]=a.fy/a.mass;a.dvz[b]=a.fz/a.mass},
+savePos:function(a,b){a.dx[b]=a.x;a.dy[b]=a.y;a.dz[b]=a.z;a.dvx[b]=a.vx;a.dvy[b]=a.vy;a.dvz[b]=a.vz},restorePos:function(a,b){a.fixed||(a.x=a.dx[b],a.y=a.dy[b],a.z=a.dz[b],a.vx=a.dvx[b],a.vy=a.dvy[b],a.vz=a.dvz[b])},sqDist:function(a,b,c){var d=(a.dx[b]-a.dx[c])*(a.dx[b]-a.dx[c]),d=d+(a.dy[b]-a.dy[c])*(a.dy[b]-a.dy[c]),d=d+(a.dz[b]-a.dz[c])*(a.dz[b]-a.dz[c]),d=d+(a.dvx[b]-a.dvx[c])*(a.dvx[b]-a.dvx[c]),d=d+(a.dvy[b]-a.dvy[c])*(a.dvy[b]-a.dvy[c]);return d+=(a.dvz[b]-a.dvz[c])*(a.dvz[b]-a.dvz[c])},kineticEnergy:function(a){return.5*
+a.mass*(a.vx*a.vx+a.vy*a.vy+a.vz*a.vz)},storePosition:function(a){a.mx=a.x;a.my=a.y;a.mz=a.z;a.mvx=a.vx;a.mvy=a.vy;a.mvz=a.vz},recallPosition:function(a){a.fixed||(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz)},doCollisions:function(a){}},Sun:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=10);"undefined"===typeof a.friction&&(a.friction=0);a.charge=0;a.x=0;a.y=0;a.z=0},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},
+initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){for(var b=a.x,c=a.y,d=a.z,e=0;e<ma.length;e++){var f=ma[e],h=f.behavior.x,k=f.behavior.y,l=f.behavior.z,m=Math.sqrt((b-h)*(b-h)+(c-k)*(c-k)+(d-l)*(d-l)),k=(c-k)*a.mass*f.behavior.mass/(m*m*m),l=(d-l)*a.mass*f.behavior.mass/(m*m*m);f.behavior.fx+=(b-h)*a.mass*f.behavior.mass/(m*m*
+m)*f.behavior.mass;f.behavior.fy+=k*f.behavior.mass;f.behavior.fz+=l*f.behavior.mass}},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Velocity:{reset:function(a){var b=v.csnames[a.geo[1]];console.log(b);var c=D.extractPoint(b.homog);a=D.extractPoint(v.csnames[a.geo[2]].homog);b=b.behavior;O[b.type].setVelocity(b,a.x-c.x,a.y-c.y,0)},resetForces:function(a){},
+getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){var b=v.csnames[a.geo[2]];if(!ja||!aa.down||b!==ja.mover){var c=v.csnames[a.geo[1]];a=D.extractPoint(c.homog);c=c.behavior;a=h.realVector([a.x+c.vx,a.y+c.vy,1]);La(b,a,"homog")}},proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},
+storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Gravity:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.strength&&(a.strength=1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=v.csnames[a.namea];a.mb=v.csnames[a.nameb]},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateDelta:function(a,b){},calculateForces:function(a){var b=
+D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=(c.x-b.x)*a.strength;a=(c.y-b.y)*a.strength;for(b=0;b<ma.length;b++)c=ma[b],c.behavior.fx+=d*c.behavior.mass,c.behavior.fy+=a*c.behavior.mass,c.behavior.fz+=0*c.behavior.mass},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},Spring:{reset:function(a,b){a.el=b;"undefined"===typeof a.strength&&(a.strength=
+1);"undefined"===typeof a.amplitude&&(a.amplitude=0);"undefined"===typeof a.phase&&(a.phase=0);"undefined"===typeof a.speed&&(a.speed=1);"undefined"===typeof a.l0&&(a.l0=0);"undefined"===typeof a.stype&&(a.stype=1);"undefined"===typeof a.readOnInit&&(a.readOnInit=!1);a.namea=b.args[0];a.nameb=b.args[1];a.ma=v.csnames[a.namea];a.mb=v.csnames[a.nameb];var c=D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.l0=Math.sqrt((c.x-d.x)*(c.x-d.x)+(c.y-d.y)*(c.y-d.y));a.env=O.env;a.ldiff=0},resetForces:function(a){},
+getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e;!a.ma.behavior||ja&&aa.down&&a.ma===ja.mover?(c=D.extractPoint(a.ma.homog),b=c.x,d=c.y):(b=a.ma.behavior.x,d=a.ma.behavior.y);!a.mb.behavior||ja&&aa.down&&a.mb===ja.mover?(e=D.extractPoint(a.mb.homog),c=e.x,e=e.y):(c=a.mb.behavior.x,e=a.mb.behavior.y);var f=Math.sqrt((b-c)*(b-c)+(d-e)*(d-e)),h=a.l0;a.ldiff=f-
+h;var k=a.stype;1===k&&(h=0);var l=0;if(2===k||3===k)l=a.ma.behavior.mass*a.mb.behavior.mass*a.strength;2===k&&(l=-l);var m,n;if(0===f||0!==k&&1!==k)if(a.ma.behavior&&a.mb.behavior&&0!==f){if(f*=f*f,2===k||3===k)m=(b-c)*l/f,n=(d-e)*l/f}else m=n=0;else m=-(b-c)*a.strength*(f-h)/f*a.env.springstrength,n=-(d-e)*a.strength*(f-h)/f*a.env.springstrength;a.ma.behavior&&(a.ma.behavior.fx+=m,a.ma.behavior.fy+=n);a.mb.behavior&&(a.mb.behavior.fx-=m,a.mb.behavior.fy-=n)},calculateDelta:function(a,b){},savePos:function(a,
+b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}},det:function(a,b,c,d,e,f){return c*f-e*d+e*b-a*f+a*d-c*b},Bouncer:{reset:function(a,b){a.el=b;"undefined"===typeof a.xdamp&&(a.xdamp=0);"undefined"===typeof a.ydamp&&(a.ydamp=0);"undefined"===typeof a.motorchanger&&(a.motorchanger=!0);a.namea=b.args[0];a.nameb=b.args[1];a.ma=v.csnames[a.namea];a.mb=v.csnames[a.nameb];var c=
+D.extractPoint(a.ma.homog),d=D.extractPoint(a.mb.homog);a.x1o=1.01*c.x-.01*d.x;a.y1o=1.01*c.y-.01*d.y;a.x2o=1.01*d.x-.01*c.x;a.y2o=1.01*d.y-.01*c.y;a.env=O.env},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){a.deltat=b},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},
+storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){for(var b=D.extractPoint(a.ma.homog),c=D.extractPoint(a.mb.homog),d=b.x,b=b.y,e=c.x,c=c.y,f=a.x1o,h=a.y1o,k=a.x2o,l=a.y2o,n=Math.sqrt((d-e)*(d-e)+(b-c)*(b-c)),p=(d-e)/n,n=(b-c)/n,r=0;r<ma.length;r++){var t=ma[r],u=t.behavior.xo,v=t.behavior.yo,w=t.behavior.x,x=t.behavior.y,y=m.mult(m.complex(f,h),m.complex(e,c)),z=m.mult(m.complex(k,l),m.complex(d,b)),y=m.sub(y,z),z=m.mult(m.complex(u,v),m.complex(d,b)),y=m.add(y,z),
+z=m.mult(m.complex(u,v),m.complex(e,c)),y=m.sub(y,z),z=m.sub(m.complex(f,h),m.complex(k,l)),y=m.div(y,z);0>O.det(d,b,e,c,w,x)*O.det(d,b,e,c,y.value.real,y.value.imag)&&0>O.det(d,b,w,x,y.value.real,y.value.imag)*O.det(e,c,w,x,y.value.real,y.value.imag)&&(v=t.behavior.mvx+a.deltat*(-y.value.real+t.behavior.xo),w=t.behavior.mvy+a.deltat*(-y.value.imag+t.behavior.yo),u=p*v+n*w,v=n*v-p*w,t.behavior.x=y.value.real,t.behavior.y=y.value.imag,t.behavior.vx=p*u*(1-a.xdamp),t.behavior.vy=n*u*(1-a.xdamp),t.behavior.vx+=
+-n*v*(1-a.ydamp),t.behavior.vy+=p*v*(1-a.ydamp))}a.x1o=d;a.y1o=b;a.x2o=e;a.y2o=c}},Environment:{init:function(a){"undefined"===typeof a.gravity&&(a.gravity=0);"undefined"===typeof a.friction&&(a.friction=0);"undefined"===typeof a.springstrength&&(a.springstrength=1);"undefined"!==typeof a.accuracy&&(Vb=a.accuracy);"undefined"!==typeof a.deltat&&ha(a.deltat/.6);"undefined"===typeof a.charges&&(a.charges=!1);"undefined"===typeof a.balls&&(a.balls=!1);"undefined"===typeof a.newton&&(a.newton=!1);"undefined"===
+typeof a.ballInteractionBoosting&&(a.ballInteractionBoosting=1);O.env=a;a.errorbound=.001;a.lowestdeltat=1E-7;a.slowdownfactor=2},reset:function(a){},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e,f,h,k,l,m,n;if(a.newton)for(b=0;b<ma.length-1;b++)for(c=ma[b],d=c.behavior.x,e=c.behavior.y,f=b+1;f<ma.length;f++)h=ma[f],k=h.behavior.x,
+l=h.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.mass*h.behavior.mass/(n*n*n),l=(e-l)*c.behavior.mass*h.behavior.mass/(n*n*n),c.behavior.fx-=k,c.behavior.fy-=l,h.behavior.fx+=k,h.behavior.fy+=l;if(a.charges)for(b=0;b<ma.length-1;b++)for(c=ma[b],d=c.behavior.x,e=c.behavior.y,f=b+1;f<ma.length;f++)h=ma[f],k=h.behavior.x,l=h.behavior.y,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),k=(d-k)*c.behavior.charge*h.behavior.charge/(n*n*n),l=(e-l)*c.behavior.charge*h.behavior.charge/(n*n*n),c.behavior.fx+=
+k,c.behavior.fy+=l,h.behavior.fx-=k,h.behavior.fy-=l;if(a.balls)for(b=0;b<ma.length-1;b++)if(c=ma[b],0!==c.behavior.radius)for(d=c.behavior.x,e=c.behavior.y,f=b+1;f<ma.length;f++)h=ma[f],0!==h.behavior.radius&&(k=h.behavior.x,l=h.behavior.y,m=c.behavior.radius+h.behavior.radius,n=Math.sqrt((d-k)*(d-k)+(e-l)*(e-l)),0===a.ballInteractionBoosting?(k=(d-k)/(n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n)*(n>m?0:(n-m)*(n-m))):1===a.ballInteractionBoosting?(k=(d-k)/(n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*
+n*n)*(n>m?0:(n-m)*(n-m))):(k=(d-k)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m))),c.behavior.fx+=k,c.behavior.fy+=l,h.behavior.fx-=k,h.behavior.fy-=l);for(b=0;b<ma.length;b++)c=ma[b],c.behavior.fx+=0,c.behavior.fy+=-a.gravity*c.behavior.mass,c.behavior.fz+=0},calculateDelta:function(a,b){},savePos:function(a,b){},restorePos:function(a,b){},sqDist:function(a,b,c){return 0},kineticEnergy:function(a){},storePosition:function(a){},recallPosition:function(a){},doCollisions:function(a){}}};
+return sa};return F}(),createCindy=CindyJS;"undefined"!==typeof process&&"undefined"!==typeof module&&"undefined"!==typeof module.exports&&"undefined"===typeof window&&(module.exports=CindyJS);
//# sourceMappingURL=Cindy.js.map
+
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js.map b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js.map
new file mode 100644
index 00000000000..f30d5b75e43
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js.map
@@ -0,0 +1,7 @@
+{"version":3,
+ "file":"Cindy.js",
+ "sourceRoot":"https://raw.githubusercontent.com/CindyJS/CindyJS/8c01b8d1d336e92934ad80c44aafc5510a1aea36/",
+ "sources":["node_modules/iphone-inline-video/dist/iphone-inline-video.min.js","lib/clipper/clipper.js","src/js/Head.js","src/js/Setup.js","src/js/Events.js","src/js/libgeo/GeoRender.js","src/js/libcs/List.js","src/js/libcs/Essentials.js","src/js/libcs/Operators.js","src/js/libcs/OpDrawing.js","src/js/libcs/OpImageDrawing.js","src/js/libcs/Parser.js","src/js/libcs/Evaluator.js","src/js/libcs/RenderBackends.js","src/js/libcs/Tools.js","src/js/libgeo/GeoBasics.js","src/js/libgeo/Tracing.js","src/js/libgeo/Prover.js","src/js/libgeo/GeoOps.js","src/js/libgeo/StateIO.js","src/js/liblab/LabBasics.js","build/js/Version.js","src/js/libcs/CSNumber.js","src/js/libcs/Dict.js","src/js/libcs/General.js","src/js/libcs/Namespace.js","src/js/libcs/Accessors.js","src/js/libcs/OpSound.js","src/js/libcs/CSad.js","src/js/libcs/Render2D.js","src/js/libgeo/GeoState.js","src/js/liblab/LabObjects.js","src/js/Tail.js"],
+ "sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"var version = [0,8,7,0,\"g8c01b8d\"];\n",null,null,null,null,null,null,null,null,null,null,null],
+ "names":["enableInlineVideo","e","i","n","r","t","d","a","start","stop","stopImmediatePropagation","addEventListener","Object","defineProperty","get","set","dispatchEvent","Event","Promise","resolve","then","Audio","crossOrigin","src","currentSrc","o","m","Date","now","b","currentTime","w","T","s","video","readyState","HAVE_FUTURE_DATA","hasAudio","driver","playbackRate","loop","duration","networkState","NETWORK_IDLE","buffered","length","load","ended","pause","c","h","webkitDisplayingFullscreen","g","paused","play","updater","HAVE_ENOUGH_DATA","v","E","p","bind","requestAnimationFrame","cancelAnimationFrame","muted","indexOf","y","document","head","style","matchMedia","matches","f","everywhere","test","iPad","ipad","navigator","userAgent","classList","add","autoplay","platform","console","warn","k","biginteger_used","fromInt","fromNumber","fromString","R","Math","floor","S","l","M","D","charCodeAt","x","A","B","mp","invDigit","mpl","mph","um","DB","mt2","U","K","N","O","C","P","z","r2","q3","ONE","dlShiftTo","mu","divide","use_lines","use_xyz","F","module","exports","window","ClipperLib","self","q","toString","toLowerCase","appName","G","L","H","I","J","Q","prototype","am","DM","DV","FV","pow","F1","F2","convert","A.prototype.convert","compareTo","mod","revert","A.prototype.revert","reduce","A.prototype.reduce","divRemTo","mulTo","A.prototype.mulTo","multiplyTo","sqrTo","A.prototype.sqrTo","squareTo","B.prototype.convert","abs","ZERO","subTo","B.prototype.revert","copyTo","B.prototype.reduce","clamp","drShiftTo","B.prototype.mulTo","B.prototype.sqrTo","k.prototype.copyTo","k.prototype.fromInt","k.prototype.fromString","fromRadix","charAt","k.prototype.clamp","k.prototype.dlShiftTo","k.prototype.drShiftTo","max","lShiftTo","k.prototype.lShiftTo","rShiftTo","k.prototype.rShiftTo","k.prototype.subTo","min","k.prototype.multiplyTo","k.prototype.squareTo","k.prototype.divRemTo","k.prototype.invDigit","isEven","k.prototype.isEven","exp","k.prototype.exp","k.prototype.toString","negate","toRadix","k.prototype.negate","k.prototype.abs","k.prototype.compareTo","bitLength","k.prototype.bitLength","k.prototype.mod","modPowInt","k.prototype.modPowInt","C.prototype.mulTo","C.prototype.sqrTo","z.prototype.convert","z.prototype.revert","z.prototype.reduce","multiplyUpperTo","multiplyLowerTo","dAddOffset","z.prototype.mulTo","z.prototype.sqrTo","u","V","chunkSize","k.prototype.chunkSize","LN2","log","k.prototype.toRadix","signum","intValue","substr","k.prototype.fromRadix","dMultiply","k.prototype.fromNumber","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","k.prototype.bitwiseTo","changeBit","k.prototype.changeBit","addTo","k.prototype.addTo","k.prototype.dMultiply","k.prototype.dAddOffset","k.prototype.multiplyLowerTo","k.prototype.multiplyUpperTo","modInt","k.prototype.modInt","millerRabin","k.prototype.millerRabin","subtract","getLowestSetBit","shiftRight","random","modPow","clone","k.prototype.clone","k.prototype.intValue","byteValue","k.prototype.byteValue","shortValue","k.prototype.shortValue","k.prototype.signum","toByteArray","k.prototype.toByteArray","equals","k.prototype.equals","k.prototype.min","k.prototype.max","and","k.prototype.and","or","k.prototype.or","xor","k.prototype.xor","andNot","k.prototype.andNot","not","k.prototype.not","k.prototype.shiftLeft","k.prototype.shiftRight","k.prototype.getLowestSetBit","bitCount","k.prototype.bitCount","k.prototype.testBit","setBit","k.prototype.setBit","clearBit","k.prototype.clearBit","flipBit","k.prototype.flipBit","k.prototype.add","k.prototype.subtract","multiply","k.prototype.multiply","k.prototype.divide","remainder","k.prototype.remainder","divideAndRemainder","k.prototype.divideAndRemainder","k.prototype.modPow","modInverse","k.prototype.modInverse","k.prototype.pow","gcd","k.prototype.gcd","k.prototype.isProbablePrime","square","k.prototype.square","IsNegative","k.prototype.IsNegative","op_Equality","k.op_Equality","op_Inequality","k.op_Inequality","op_GreaterThan","k.op_GreaterThan","op_LessThan","k.op_LessThan","op_Addition","k.op_Addition","op_Subtraction","k.op_Subtraction","Int128Mul","k.Int128Mul","op_Division","k.op_Division","ToDouble","k.prototype.ToDouble","parseFloat","getOwnPropertyNames","getOwnPropertyDescriptor","$baseCtor","Path","d.Path","Paths","d.Paths","DoublePoint","d.DoublePoint","arguments","Y","X","DoublePoint0","d.DoublePoint0","DoublePoint1","d.DoublePoint1","DoublePoint2","d.DoublePoint2","PolyNode","d.PolyNode","m_Parent","m_polygon","m_endtype","m_jointype","m_Index","m_Childs","IsOpen","IsHoleNode","d.PolyNode.prototype.IsHoleNode","ChildCount","d.PolyNode.prototype.ChildCount","Contour","d.PolyNode.prototype.Contour","AddChild","d.PolyNode.prototype.AddChild","push","GetNext","d.PolyNode.prototype.GetNext","GetNextSiblingUp","d.PolyNode.prototype.GetNextSiblingUp","Childs","d.PolyNode.prototype.Childs","Parent","d.PolyNode.prototype.Parent","IsHole","d.PolyNode.prototype.IsHole","PolyTree","d.PolyTree","m_AllPolys","call","Clear","d.PolyTree.prototype.Clear","GetFirst","d.PolyTree.prototype.GetFirst","Total","d.PolyTree.prototype.Total","Math_Abs_Int64","Math_Abs_Int32","Math_Abs_Double","d.Math_Abs_Double","Math_Max_Int32_Int32","d.Math_Max_Int32_Int32","Cast_Int32","Cast_Int64","ceil","Number","toInteger","parseInt","d.Clear","PI","PI2","IntPoint","d.IntPoint","Z","Clipper","Round","d.IntPoint.op_Equality","d.IntPoint.op_Inequality","IntPoint0","d.IntPoint0","IntPoint1","d.IntPoint1","IntPoint1dp","d.IntPoint1dp","IntPoint2","d.IntPoint2","IntPoint3","d.IntPoint3","IntRect","d.IntRect","left","top","right","bottom","IntRect0","d.IntRect0","IntRect1","d.IntRect1","IntRect4","d.IntRect4","ClipType","ctIntersection","ctUnion","ctDifference","ctXor","PolyType","ptSubject","ptClip","PolyFillType","pftEvenOdd","pftNonZero","pftPositive","pftNegative","JoinType","jtSquare","jtRound","jtMiter","EndType","etOpenSquare","etOpenRound","etOpenButt","etClosedLine","etClosedPolygon","EdgeSide","esLeft","esRight","Direction","dRightToLeft","dLeftToRight","TEdge","d.TEdge","Bot","Curr","Top","Delta","Dx","PolyTyp","Side","OutIdx","WindCnt2","WindCnt","WindDelta","PrevInSEL","NextInSEL","PrevInAEL","NextInAEL","NextInLML","Prev","Next","IntersectNode","d.IntersectNode","Edge2","Edge1","Pt","MyIntersectNodeSort","d.MyIntersectNodeSort","Compare","d.MyIntersectNodeSort.Compare","LocalMinima","d.LocalMinima","RightBound","LeftBound","Scanbeam","d.Scanbeam","OutRec","d.OutRec","Idx","BottomPt","Pts","FirstLeft","OutPt","d.OutPt","Join","d.Join","OutPt2","OutPt1","OffPt","ClipperBase","d.ClipperBase","m_CurrentLM","m_MinimaList","m_edges","PreserveCollinear","m_HasOpenPaths","m_UseFullRange","horizontal","Skip","Unassigned","tolerance","loRange","hiRange","near_zero","d.ClipperBase.near_zero","IsHorizontal","d.ClipperBase.IsHorizontal","PointIsVertex","d.ClipperBase.prototype.PointIsVertex","PointOnLineSegment","d.ClipperBase.prototype.PointOnLineSegment","PointOnPolygon","d.ClipperBase.prototype.PointOnPolygon","SlopesEqual","d.ClipperBase.SlopesEqual","SlopesEqual3","d.ClipperBase.SlopesEqual3","SlopesEqual4","d.ClipperBase.SlopesEqual4","SlopesEqual5","d.ClipperBase.SlopesEqual5","d.ClipperBase.prototype.Clear","DisposeLocalMinimaList","d.ClipperBase.prototype.DisposeLocalMinimaList","RangeTest","d.ClipperBase.prototype.RangeTest","Value","Error","InitEdge","d.ClipperBase.prototype.InitEdge","InitEdge2","d.ClipperBase.prototype.InitEdge2","SetDx","FindNextLocMin","d.ClipperBase.prototype.FindNextLocMin","ProcessBound","d.ClipperBase.prototype.ProcessBound","InsertLocalMinima","ReverseHorizontal","AddPath","d.ClipperBase.prototype.AddPath","Pt2IsBetweenPt1AndPt3","RemoveEdge","AddPaths","d.ClipperBase.prototype.AddPaths","d.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3","d.ClipperBase.prototype.RemoveEdge","d.ClipperBase.prototype.SetDx","d.ClipperBase.prototype.InsertLocalMinima","PopLocalMinima","d.ClipperBase.prototype.PopLocalMinima","d.ClipperBase.prototype.ReverseHorizontal","Reset","d.ClipperBase.prototype.Reset","d.Clipper","m_PolyOuts","m_ClipType","m_IntersectNodeComparer","m_IntersectList","m_SortedEdges","m_ActiveEdges","m_Scanbeam","m_ExecuteLocked","m_SubjFillType","m_ClipFillType","m_GhostJoins","m_Joins","StrictlySimple","ReverseSolution","m_UsingPolyTree","ZFillFunction","ioReverseSolution","ioStrictlySimple","ioPreserveCollinear","d.Clipper.prototype.Clear","DisposeAllPolyPts","DisposeScanbeamList","d.Clipper.prototype.DisposeScanbeamList","d.Clipper.prototype.Reset","InsertScanbeam","d.Clipper.prototype.InsertScanbeam","Execute","d.Clipper.prototype.Execute","ExecuteInternal","BuildResult2","BuildResult","FixHoleLinkage","d.Clipper.prototype.FixHoleLinkage","d.Clipper.prototype.ExecuteInternal","PopScanbeam","InsertLocalMinimaIntoAEL","ProcessHorizontals","ProcessIntersections","ProcessEdgesAtTopOfScanbeam","Area","ReversePolyPtLinks","JoinCommonEdges","FixupOutPolygon","DoSimplePolygons","d.Clipper.prototype.PopScanbeam","d.Clipper.prototype.DisposeAllPolyPts","DisposeOutRec","d.Clipper.prototype.DisposeOutRec","AddJoin","d.Clipper.prototype.AddJoin","AddGhostJoin","d.Clipper.prototype.AddGhostJoin","SetZ","d.Clipper.prototype.SetZ","d.Clipper.prototype.InsertLocalMinimaIntoAEL","InsertEdgeIntoAEL","SetWindingCount","IsContributing","AddOutPt","AddLocalMinPoly","AddEdgeToSEL","HorzSegmentsOverlap","IntersectEdges","d.Clipper.prototype.InsertEdgeIntoAEL","E2InsertsBeforeE1","d.Clipper.prototype.E2InsertsBeforeE1","TopX","IsEvenOddFillType","d.Clipper.prototype.IsEvenOddFillType","IsEvenOddAltFillType","d.Clipper.prototype.IsEvenOddAltFillType","d.Clipper.prototype.IsContributing","d.Clipper.prototype.SetWindingCount","d.Clipper.prototype.AddEdgeToSEL","CopyAELToSEL","d.Clipper.prototype.CopyAELToSEL","SwapPositionsInAEL","d.Clipper.prototype.SwapPositionsInAEL","SwapPositionsInSEL","d.Clipper.prototype.SwapPositionsInSEL","AddLocalMaxPoly","d.Clipper.prototype.AddLocalMaxPoly","AppendPolygon","d.Clipper.prototype.AddLocalMinPoly","CreateOutRec","d.Clipper.prototype.CreateOutRec","d.Clipper.prototype.AddOutPt","SetHoleState","SwapPoints","d.Clipper.prototype.SwapPoints","d.Clipper.prototype.HorzSegmentsOverlap","d.Clipper.prototype.SetHoleState","GetDx","d.Clipper.prototype.GetDx","FirstIsBottomPt","d.Clipper.prototype.FirstIsBottomPt","GetBottomPt","d.Clipper.prototype.GetBottomPt","GetLowermostRec","d.Clipper.prototype.GetLowermostRec","Param1RightOfParam2","d.Clipper.prototype.Param1RightOfParam2","GetOutRec","d.Clipper.prototype.GetOutRec","d.Clipper.prototype.AppendPolygon","d.Clipper.prototype.ReversePolyPtLinks","SwapSides","d.Clipper.SwapSides","SwapPolyIndexes","d.Clipper.SwapPolyIndexes","d.Clipper.prototype.IntersectEdges","DeleteFromAEL","d.Clipper.prototype.DeleteFromAEL","DeleteFromSEL","d.Clipper.prototype.DeleteFromSEL","UpdateEdgeIntoAEL","d.Clipper.prototype.UpdateEdgeIntoAEL","d.Clipper.prototype.ProcessHorizontals","ProcessHorizontal","GetHorzDirection","d.Clipper.prototype.GetHorzDirection","Left","Right","Dir","d.Clipper.prototype.ProcessHorizontal","GetMaximaPair","GetNextInAEL","d.Clipper.prototype.GetNextInAEL","IsMinima","d.Clipper.prototype.IsMinima","IsMaxima","d.Clipper.prototype.IsMaxima","IsIntermediate","d.Clipper.prototype.IsIntermediate","d.Clipper.prototype.GetMaximaPair","d.Clipper.prototype.ProcessIntersections","BuildIntersectList","FixupIntersectionOrder","ProcessIntersectList","d.Clipper.prototype.BuildIntersectList","IntersectPoint","EdgesAdjacent","d.Clipper.prototype.EdgesAdjacent","IntersectNodeSort","d.Clipper.IntersectNodeSort","d.Clipper.prototype.FixupIntersectionOrder","sort","d.Clipper.prototype.ProcessIntersectList","round","d.Clipper.TopX","d.Clipper.prototype.IntersectPoint","d.Clipper.prototype.ProcessEdgesAtTopOfScanbeam","DoMaxima","d.Clipper.prototype.DoMaxima","ReversePaths","d.Clipper.ReversePaths","reverse","Orientation","d.Clipper.Orientation","PointCount","d.Clipper.prototype.PointCount","d.Clipper.prototype.BuildResult","Array","d.Clipper.prototype.BuildResult2","d.Clipper.prototype.FixupOutPolygon","DupOutPt","d.Clipper.prototype.DupOutPt","GetOverlap","d.Clipper.prototype.GetOverlap","JoinHorz","d.Clipper.prototype.JoinHorz","JoinPoints","d.Clipper.prototype.JoinPoints","GetBounds","d.Clipper.GetBounds","GetBounds2","d.Clipper.prototype.GetBounds2","PointInPolygon","d.Clipper.PointInPolygon","d.Clipper.prototype.PointInPolygon","Poly2ContainsPoly1","d.Clipper.prototype.Poly2ContainsPoly1","FixupFirstLefts1","d.Clipper.prototype.FixupFirstLefts1","ParseFirstLeft","FixupFirstLefts2","d.Clipper.prototype.FixupFirstLefts2","d.Clipper.ParseFirstLeft","d.Clipper.prototype.JoinCommonEdges","UpdateOutPtIdxs","d.Clipper.prototype.UpdateOutPtIdxs","d.Clipper.prototype.DoSimplePolygons","d.Clipper.Area","d.Clipper.prototype.Area","SimplifyPolygon","d.Clipper.SimplifyPolygon","SimplifyPolygons","d.Clipper.SimplifyPolygons","DistanceSqrd","d.Clipper.DistanceSqrd","DistanceFromLineSqrd","d.Clipper.DistanceFromLineSqrd","SlopesNearCollinear","d.Clipper.SlopesNearCollinear","PointsAreClose","d.Clipper.PointsAreClose","ExcludeOp","d.Clipper.ExcludeOp","CleanPolygon","d.Clipper.CleanPolygon","CleanPolygons","d.Clipper.CleanPolygons","Minkowski","d.Clipper.Minkowski","MinkowskiSum","d.Clipper.MinkowskiSum","TranslatePath","d.Clipper.TranslatePath","MinkowskiDiff","d.Clipper.MinkowskiDiff","PolyTreeToPaths","d.Clipper.PolyTreeToPaths","AddPolyNodeToPaths","NodeType","ntAny","d.Clipper.AddPolyNodeToPaths","ntOpen","ntClosed","OpenPathsFromPolyTree","d.Clipper.OpenPathsFromPolyTree","ClosedPathsFromPolyTree","d.Clipper.ClosedPathsFromPolyTree","ClipperOffset","d.ClipperOffset","def_arc_tolerance","m_destPolys","m_srcPoly","m_destPoly","m_normals","m_StepsPerRad","m_miterLim","m_cos","m_sin","m_sinA","m_delta","m_lowest","m_polyNodes","MiterLimit","ArcTolerance","two_pi","d.ClipperOffset.prototype.Clear","d.ClipperOffset.prototype.AddPath","d.ClipperOffset.prototype.AddPaths","FixOrientations","d.ClipperOffset.prototype.FixOrientations","GetUnitNormal","d.ClipperOffset.GetUnitNormal","sqrt","DoOffset","d.ClipperOffset.prototype.DoOffset","acos","sin","cos","OffsetPoint","DoSquare","DoRound","d.ClipperOffset.prototype.Execute","splice","d.ClipperOffset.prototype.OffsetPoint","DoMiter","d.ClipperOffset.prototype.DoSquare","tan","atan2","d.ClipperOffset.prototype.DoMiter","d.ClipperOffset.prototype.DoRound","d.Error","alert","message","JS","AreaOfPolygon","d.JS.AreaOfPolygon","AreaOfPolygons","d.JS.AreaOfPolygons","BoundsOfPath","d.JS.BoundsOfPath","BoundsOfPaths","d.JS.BoundsOfPaths","Clean","d.JS.Clean","Clone","d.JS.Clone","Lighten","d.JS.Lighten","pop","PerimeterOfPath","d.JS.PerimeterOfPath","PerimeterOfPaths","d.JS.PerimeterOfPaths","ScaleDownPath","d.JS.ScaleDownPath","ScaleDownPaths","d.JS.ScaleDownPaths","ScaleUpPath","d.JS.ScaleUpPath","ScaleUpPaths","d.JS.ScaleUpPaths","ExPolygons","d.ExPolygons","ExPolygon","d.ExPolygon","holes","outer","AddOuterPolyNodeToExPolygons","d.JS.AddOuterPolyNodeToExPolygons","ExPolygonsToPaths","d.JS.ExPolygonsToPaths","PolyTreeToExPolygons","d.JS.PolyTreeToExPolygons","CindyJS","waitFor","name","waitCount","error","toStart","startup","data","instance","newInstance","autostart","cindyDontWait","baseDir","cindyJsScriptElement","waitingForLoad","getBaseDir","CindyJS.getBaseDir","scripts","getElementsByTagName","script","match","exec","index","addNewScript","CindyJS.addNewScript","path","onerror","elt","createElement","next","nextSibling","parent","parentElement","insertBefore","appendChild","loadScript","CindyJS.loadScript","onload","names","String","split","obj","shift","_autoLoadingPlugin","autoLoadPlugin","CindyJS.autoLoadPlugin","_pluginRegistry","listeners","nada","ctype","instances","registerPlugin","CindyJS.registerPlugin","apiVersion","pluginName","initCallback","forEach","callback","idCounter","dumpState","CindyJS.dumpState","state","saveState","JSON","stringify","debugState","CindyJS.debugState","map","cfg","config","parse","key","shutdown","CindyJS.newInstance","instanceInvocationArguments","updateCanvasDimensions","canvas","width","csw","clientWidth","height","csh","clientHeight","csctx","setTransform","csport","setMat","trafos","trafo","trname","keys","csscale","scale","translate","apply","drawingstate","initialmatrix","createnewbackup","greset","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","ratio","canvasWithContainingDiv","div","tagName","firstChild","removeChild","slice","attrs","attributes","attr","value","setAttributeNodeNS","removeAttributeNode","parentNode","replaceChild","position","border","margin","padding","getComputedStyle","getPropertyValue","isCinderellaBeforeVersion","cinderella","version","createCindyNow","startupCalled","waitForPlugins","exclusive","undefined","csconsole","NullConsoleHandler","CindyConsoleHandler","ElementConsoleHandler","csmouse","transform","ports","port","element","getElementById","id","divStyle","fill","background","backgroundColor","isFiniteNumber","grid","csgridsize","tgrid","cstgrid","snap","cssnap","axes","csaxes","canvasname","getContext","setLineDash","csctx.setLineDash","animation","controls","animcontrols","setupAnimControls","speed","accuracy","setSpeed","simaccuracy","statusbar","scriptconf","scriptpat","search","cscode","sname","replace","text","analyse","cscompiled","labelCode","keydown","keytyped","keytype","csgeo","images","geometry","csinit","behavior","csinitphys","img","loadImage","videos","globalInstance","oninit","use","evaluator","use$1","General","wrap","usedFunctions","convexhull3d$1","loadExtraPlugin","colorplot$1","colorplot$2","colorplot$3","colorplot$4","playtone$1","playmelody$1","doneLoadingModule","preload","setAttribute","Image","NaN","ready","live","generation","whenReady","callFunctionNow","tag","callWhenReady","complete","scheduleUpdate","HAVE_METADATA","videoWidth","videoHeight","setupAnimButton","ctrl","button","buttons","loadSvgIcon","setActive","active","remove","speedDrag","event","speedDragging","rect","slider","getBoundingClientRect","speedScale","clientX","clientLeft","speedLo","className","speedHi","speedRange","knob","addAutoCleaningEventListener","speedDown","speedUp","csplay","cspause","csstop","setSpeedKnob","simspeed","skipInit","cb","plugins","modulesToLoad","evaluate","init","setuplisteners","restoreGeo","backup","stateIn","speeds","el","csnames","vx","vy","vz","fx","fy","fz","recalcAll","csanimating","csstopped","stateArrays","points","simtime","simtick","csPhysicsInited","csresetphys","simulationstart","simulationstop","isShutDown","shutdownHooks","GenericConsoleHandler","args","in","this.in","preventNewline","append","createTextNode","out","this.out","err","this.err","this.createTextNode","color","that","cmd","container","innerHTML","body","onkeydown","cmd.onkeydown","evt","keyCode","prog","parse$1","erg","niceprint","scrollTop","scrollHeight","this.append","clear","this.clear","idOrElement","target","type","listener","useCapture","removeEventListener","updatePosition","pos","to","clientY","clientTop","mouse","prevx","prevy","touchUp","activeTouchIDList","changedTouches","gotit","identifier","activeTouchID","down","move","mouseup","manage","preventDefault","MO","MutationObserver","WebKitMutationObserver","mutations","contains","observe","documentElement","disconnect","keylistener","keyEvent","keyup","focus","which","mousedown","mousedrag","mousemove","mouseclick","dropUri","uri","haveText","req","XMLHttpRequest","DONE","status","responseText","oneDone","textDone","files","onreadystatechange","haveHead","getResponseHeader","imgDone","textType","open","send","string","wrapJSON","reported","img.onload","img.onerror","dropped","List","turnIntoCSList","countDown","dropPoint","ondrop","dt","dataTransfer","currentTarget","realVector","file","reader","FileReader","reader.onload","result","readAsText","readAsDataURL","getData","filter","line","touchDown","targetTouches","touchMove","requestAnimFrame","resizeSensor","mkdiv","reset","expand","scrollLeft","shrink","onScroll","scheduled","requestedAnimFrame","doit","delta","simcap","simfactor","time","lab","tick","updateCindy","save","clearRect","matrix","beginPath","strokeStyle","lineWidth","lineCap","tx","moveTo","lineTo","ty","stroke","sqrt3","lineJoin","miterLimit","traceMouseAndScripts","draw_traces","polygons","isshowing","visible","modifs","alpha","fillcolor","fillalpha","size","fillrule","eval_helper","drawpolygon","vertices","conics","isArc","drawarc","filled","df","drawconic","lines","_helper","isAlmostReal","homog","kind","overhang","dashtype","arrow","arrowsize","arrowposition","arrowshape","arrowsides","CSNumber","mult","zz","startpos","conjugate","endpos","real","draw$2","labeled","tmp","lbl","printname","orientedline","scalmult","sign","cross","npos","nposlength","lpos","labelpos","Render2D","makeColor","defaultAppearance","textColor","geoOps","midpoint","drawlabel","handleModifs","lineModifs","drawRaySegment","clip","pt1","pt2","xmin","xmax","ymin","ymax","incidences","pt","isAlmostZero","draw$1","col","noborder","texts","drawgeotext","ifs","dirty","deeplyEqual","mat","IFS","updateParameters","drawImage","restore","evtobj","unicode","charCode","cskey","fromCharCode","actualkey","cskeycode","conicMat2Vec","r0","r1","operator_not_implemented","first","Dict","namespace","getvar","infix_assign","u0","u1","v1","setvar","oper","assigntake","printStackTrace","assigndot","assigncolon","assignlist","comp_equals","v0","bool","imag","comp_notequals","comp_almostequals","evaluateAndVal","isAlmostEqual","almostequals","infix_and","infix_or","infix_add","usage","withUsage","infix_sub","sub","infix_mult","infix_div","isZero","infix_pow","infix_cross","evaluateAndHomog","minCostMatching","hungarianMethod","perms","permutationsFixedList","bc","POSITIVE_INFINITY","bp","j","mkVertex","matched","prev","cost","used","leaf","notincover1","i1","i2","v2","notincover2","matchsize","haspath","empty","eps","res","infix_take","asList","ind","li","v1i","infix_concat","shapeconcat","l0","l1","concat","infix_common","common","shapecommon","infix_remove","shaperemove","infix_append","infix_prepend","prepend","defaultPluralForm","cnt","solveRealQuadratic","hom","s1","s2","defaultTextRendererCanvas","ctx","align","lineHeight","Infinity","row","box","measureText","fillText","imageFromValue","val","hasOwnProperty","readPixelsIndirection","readPixels","getImageData","helpercanvas","exception","rescape","str","ParseError","location","msg","description","Tokenizer","input","re","RegExp","reNextToken","bols","bol","applyOperator","seq","op","lhs","rhs","isSuperscript","precedence","infix","postfix","prefix","bare","sym","subsup","tok","dict","operators","rassoc","end","rawtext","dstDigits","srcDigits","parseRec","tokens","closing","toktype","raw","substring","bra","brackets","closer","ctok","closedBy","pair","lst","expr","fname","functionCallPrecedence","Parser","usedVariables","impl","callStack","Accessor","getField","uobj","getuserData","isNumberVecN","code","parser","infixmap","create","label","frame","join","SvgWriterContext","_path","_defs","_imgcache","_body","_saveStack","_clipIndex","_stroke","_fill","_strokeOpacity","_fillOpacity","globalAlpha","PdfWriterContext","_yPos","_xPos","_extGState","Af255","As255","_objects","_offset","_nextIndex","_xobjects","_pathUsed","_fillAlpha","_strokeAlpha","_globalAlpha","imageToDataURL","mainCanvas","toDataURL","base64Decode","bytes","Uint8Array","alphabet","pngChunks","u32be","offset","chunks","len","subarray","crc","parseColor","spec","cacheImages","toCache","cachedDataURL","responseType","req.onreadystatechange","onloadend","reader.onloadend","response","statusText","padStr","chr","releaseExportedObject","exportedCanvasURL","URL","revokeObjectURL","exportWith","Context","origctx","blob","toBlob","createObjectURL","downloadHelper","getElementAtMouse","mov","adist","diff","gslp","pinned","dx","dy","dist","sc","sdet","normalizeZ","narrow","mid","rad","radius","xx","yy","ref","nn","ln","scaldiv","mover","getNextFreeName","pIndex","actions","tools","activeTool","step","do","success","elements","idx","isElementAtMouse","isPointAtMouse","isLineAtMouse","setElementAtMouse","grabPoint","addElement","grabLine","grabLineOrConic","grabLastPoint","p2","removeElement","tmpPoint","setDefaultAppearance","opName","assert","signature","stateSize","free","addElementNoProof","checkConjectures","setupTraceDrawing","tracedim","tracelength","traceskip","_traces","_traces_index","_traces_tick","pointDefault","pointSize","movable","pointColor","dimDependent","drawtrace","lineDefault","lineSize","lineColor","overhangLine","segmentDefault","overhangSeg","textDefault","textsize","polygonDefault","existingEl","isMovable","movepointscr","geoAliases","macro","geoMacros","expansion","isSet","isArray","argKind","signatureConstraints","totalStateSize","stateLastGood","stateIdx","stateAlloc","stateOut","tracingInitial","initialize","stateInIdx","stateOutIdx","param","isShowing","geoDependantsCache","guessIncidences","onSegment","el1","el2","elm","x1","y1","x2","y2","xm","ym","dd","d12","d1m","d2m","visiblecheck","bold","textbold","italics","textitalics","family","text_fontfamily","fontFamily","factor","drawtext","_bbox","opts","getText","htmlCallback","html","cache","_textCache","inlinebox","font","invisible","removeProperty","textRendererHtml","dock","textCornerNames","corner","screenbounds$0","display","drawIt","lev","elAlpha","dimfactor","condition","newSize","states","stateArrayNames","stateMasterArray","Float64Array","oldStateLastGood","good","stateContinueFromHere","tracingFailed","tracingStateReport","epsInverse","requestRefinement","noMoreRefinements","RefineException","defaultParameterPath","tr","tc","dst","traceLog","currentMouseAndScripts","inMouseMove","traceMover","draw","fullLog","logLength","postMouseHooks","currentMover","previousMover","traceLimit","deps","depSet","arg","last","opMover","parameterPath","originParam","getParamFromState","targetParam","getParamForInput","t2","complex","refining","currentStep","currentParam","stateTmp","putParamToState","currentElement","failed","textContent","getTraceLog","formatTraceLog","Blob","getStateComplexNumber","getStateComplexVector","putStateComplexNumber","putStateComplexVector","tracing2","n1","n2","o1","o2","tracing2core","do1n1","projectiveDistMinScal","do1n2","do2n1","do2n2","do1o2","dn1n2","cost1","cost2","debug","logRow","labelTracing2","realMatrix","isNaN","safety","tracing4","n3","n4","o3","o4","tracing4core","old_el","new_el","min_cost","distMatrix","bestperm","match_cost","odist","ndist","labelTracing4","tracingSesq","newVecs","oldVecs","oldNorms","newNorms","oldMinCost","newMinCost","normSquared","sesquilinearproduct","resCost","anyNaN","labelTracingSesq","tracing2Conics","c1","c2","flattenConicMatrix","buildConicMatrix","applyIncidence","incidentPL","holds","pn","prod","scalproduct","incidentPC","conjectures","commonButton","onEvent","Text","noop","savePos","unwrap","sum","xy","xz","yz","saveDockingInfo","saveGeoElement","attributesToClone","undim","saveGeoState","behaviors","beh","geo","labObjects","behavs","masses","springs","Environment","gravity","mainGeo","simunit","isFinite","iconsToLoad","url","handleStateChange","svg","responseXML","docElt","layers","node","nodeType","Node","ELEMENT_NODE","namespaceURI","localName","getAttribute","serializer","XMLSerializer","layer","serializeToString","encodeURIComponent","icon","evokeCS","parsed","evalcs","isNode","process","nextTick","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","roundingfactor","angleroundingfactor","niceround","CSNumber._helper.niceround","CSNumber.niceprint","niceangle","angleUnit","angleUnitName","TWOPI","PERTWOPI","angleUnits","CSNumber._helper.niceangle","unit","num","realmult","CSNumber.complex","CSNumber.real","zero","one","infinity","nan","CSNumber._helper.input","argmax","CSNumber.argmax","CSNumber.max","CSNumber.min","CSNumber.add","CSNumber.sub","neg","CSNumber.neg","CSNumber.re","im","CSNumber.im","CSNumber.conjugate","CSNumber.round","CSNumber.ceil","CSNumber.floor","CSNumber.mult","CSNumber.realmult","multiMult","CSNumber.multiMult","arr","abs2","CSNumber.abs2","CSNumber.abs","inv","CSNumber.inv","CSNumber.div","ar","ai","br","bi","epsbig","CSNumber.snap","CSNumber.exp","CSNumber.cos","rr","ii","imag1","real1","CSNumber.sin","CSNumber.tan","arccos","CSNumber.arccos","tmp1","arcsin","CSNumber.arcsin","arctan","CSNumber.arctan","t1","arctan2","CSNumber.arctan2","isReal","CSNumber.sqrt","powRealExponent","CSNumber.powRealExponent","CSNumber.log","CSNumber.pow","CSNumber.mod","a1","a2","b1","b2","seed","seedrandom","CSNumber._helper.seedrandom","rand","CSNumber._helper.rand","randnormal","CSNumber._helper.randnormal","isEqual","CSNumber._helper.isEqual","isLessThan","CSNumber._helper.isLessThan","compare","CSNumber._helper.compare","CSNumber._helper.isAlmostEqual","preci","CSNumber._helper.isZero","CSNumber._helper.isAlmostZero","CSNumber._helper.isReal","CSNumber._helper.isAlmostReal","CSNumber._helper.isNaN","CSNumber._helper.isFinite","isAlmostImag","CSNumber._helper.isAlmostImag","z3a","z3b","cub1","cub2","cub3","solveCubic","CSNumber.solveCubic","help","solveCubicHelper","CSNumber._helper.solveCubicHelper","cr","ci","dr","di","acr","aci","t1r","t1i","abr","abi","t3r","t3i","aar","aai","aadr","aadi","bbr","bbi","wr","wi","t2r","t2i","phi","w1i","w1r","xr","xi","yr","yi","zr","zi","List.turnIntoCSList","EMPTY","List.asList","List.realVector","unitvector","List._helper.unitvector","zerovector","idMatrix","List.idMatrix","zeromatrix","flippedidMatrix","List._helper.flippedidMatrix","println","List.println","List.matrix","List.realMatrix","ex","ey","ez","linfty","jj","fundDual","fund","sequence","List.sequence","ct","pairs","List.pairs","triples","List.triples","cycle","List.cycle","consecutive","List.consecutive","List.reverse","directproduct","List.directproduct","List.concat","List.prepend","List.append","List.contains","cc","List.common","bb","List.remove","sort1","List.sort1","List._helper.isEqual","List._helper.isLessThan","List._helper.compare","List.equals","av1","av2","List.almostequals","List._helper.isAlmostReal","List._helper.isAlmostZero","List._helper.isNaN","List.set","erg1","maxval","List.maxval","maxIndex","List.maxIndex","fun","startIdx","sIdx","bestIdx","bestVal","normalizeMax","List.normalizeMax","List.normalizeZ","dehom","List.dehom","normalizeAbs","List.normalizeAbs","List.max","List.min","List.scaldiv","List.scalmult","List.add","List.sub","List.abs2","List.abs","normalizeMaxXX","List.normalizeMaxXX","maxv","recursive","List.recursive","List.re","List.neg","List.im","List.conjugate","transjugate","List.transjugate","transpose","List.round","List.ceil","List.floor","colNumb","List._helper.colNumb","List._helper.isNumberVecN","isNumberVector","List.isNumberVector","isNumberVectorN","List.isNumberVectorN","isNumberMatrix","List.isNumberMatrix","isNumberMatrixMN","List._helper.isNumberMatrixMN","List.scalproduct","List.sesquilinearproduct","List.normSquared","av","productMV","List.productMV","productVM","List.productVM","productMM","List.productMM","aa","List.mult","List.projectiveDistMinScal","sa","sb","np","na","nb","d1","d2","conicDist","List.conicDist","mat1","mat2","vec1","vec2","crossOperator","List.crossOperator","List.cross","crossratio3harm","List.crossratio3harm","acx","det3","bdx","adx","bcx","numer","denom","crossratio3","List.crossratio3","veronese","List.veronese","turnIntoSCList","matrixFromVeronese","List.matrixFromVeronese","det2","List.det2","R1","R2","List.det3","det4m","List.det4m","m00r","m00i","m01r","m01i","m02r","m02i","m03r","m03i","m10r","m10i","m11r","m11i","m12r","m12i","m13r","m13i","a01r","a01i","a02r","a02i","a03r","a03i","a12r","a12i","a13r","a13i","a23r","a23i","b01r","b01i","b02r","b02i","b03r","b03i","b12r","b12i","b13r","b13i","b23r","b23i","eucangle","List.eucangle","tmp2","ca","cd","dv","ang","List.zerovector","List.zeromatrix","vandermonde","List.vandermonde","List.transpose","column","List.column","List.row","adjoint2","List.adjoint2","AA","adjoint3","List.adjoint3","r11","i11","r12","i12","r13","i13","r21","i21","r22","i22","r23","i23","i31","r32","i32","r31","r33","i33","inverse","List.inverse","det","LUP","LUdecomp","ei","LUsolve","linearsolve","List.linearsolve","linearsolveCramer2","linearsolveCramer3","getDiag","List.getDiag","getSubDiag","List.getSubDiag","eig2","List.eig2","trace","bdet","trace2","L2","L1","mroot","eig","List.eig","getEigenvectors","getEv","cslen","QRIteration","QRRes","eigvals","ID","eigenvecs","MM","lastevec","count","sameEigVal","qq","nullS","ceigval","nullSpace","inverseIteration","isAlmostZeroVec","isNormalMatrix","List._helper.isNormalMatrix","List._helper.QRIteration","maxIter","Alen","Id","QQ","mIter","kap","ann","dist1","numDeflations","block","getBlock","blockeigs","dist2","shiftId","QR","QRdecomp","buildBlockMatrix","isUpperTriangular","rank","List.rank","RRQRdecomp","List._helper.isAlmostZeroVec","isLowerTriangular","List._helper.isLowerTriangular","leni","lenj","List._helper.isUpperTriangular","isAlmostId","List._helper.isAlmostId","List.nullSpace","precision","nullRank","vec","isAlmostDiagonal","List._helper.isAlmostDiagonal","List._helper.inverseIteration","shiftinit","qk","toHessenberg","List._helper.toHessenberg","cslen2","absxx","Qk","getHouseHolder","swapEl","List._helper.swapEl","List.RRQRdecomp","preci2","e1","AAA","tA","norms","piv","maxIdx","tau","swapColumn","normxx","List._helper.getHouseHolder","QRgetAlpha","uu","vv","ww","transposeMult","reOrderbyPivots","List._helper.reOrderbyPivots","Rerg","List.QRdecomp","List._helper.swapColumn","List._helper.buildBlockMatrix","mA","nA","List._helper.getBlock","m0","n0","m1","setBlock","List._helper.setBlock","List._helper.transposeMult","List._helper.QRgetAlpha","List.LUdecomp","Ak","Pk","tpos","absAjk","Akk","Ai","LU","TransPos","List.LUsolve","List._helper.LUsolve","LUi","Pi","List.linearsolveCramer2","A1","A2","detA","List.linearsolveCramer3","A3","x3","linearsolveCGNR","List.linearsolveCGNR","transA","linearsolveCG","List.linearsolveCG","alp","Ap","rback","bet","List.det","ret","Aj","k1","temp","LUdet","List.LUdet","List.getField","nil","ofGeos","List.ofGeos","geos","Dict.key","Dict.create","Dict.clone","Dict.put","Dict.get","dflt","kv","Dict.niceprint","boolean","number","term","atomic","variable","list","General.string","General.bool","General.not","General.isLessThan","General.isEqual","General.compareResults","General.compare","order","General.add","General.sub","General.mult","General.div","General.max","General.min","General.wrap","General.unwrap","General.withUsage","General.wrapJSON","put","General.identity","General.deeplyEqual","General.DeepCloneJSON","DeepCloneJSON","myfunctions","postfix_numb_degree","infix_sqrt","sqrt$1","prefix_not","comp_ult","comp_ugt","comp_ge","comp_le","comp_uge","comp_ule","comp_gt","comp_lt","infix_in","infix_nin","comp_notalmostequals","infix_sequence","infix_define","previous","definer","postfix_undefine","infix_semicolon","eval_helper.evaluate","tt","arglist","newvar","pushVstack","cleanVstack","removevar","lastIndexOf","eval_helper.equals","vars","preset","pi","isVariable","namespace.isVariable","namespace.create","namespace.newvar","namespace.removevar","stack","namespace.setvar","undefinedWarning","namespace.getvar","dump","namespace.dump","vstack","namespace.pushVstack","popVstack","namespace.popVstack","namespace.cleanVstack","st","colorhsb","caption","selected","labelled","Accessor.getGeoField","geoname","field","Accessor.setGeoField","setField","Accessor.getField","ax","az","bz","cz","cen","CenterOfConic","checkbox","checked","generalFields","mass","charge","friction","ldiff","getter","Accessor.setField","setter","Accessor.getuserData","userData","Accessor.setuserData","version$0","evaluator.version$0","ver","clearconsole$0","evaluator.clearconsole$0","err$1","evaluator.err$1","varname","errc$1","evaluator.errc$1","print$1","evaluator.print$1","println$1","evaluator.println$1","assert$2","evaluator.assert$2","dump$1","evaluator.dump$1","repeat$2","evaluator.repeat$2","repeat$3","evaluator.repeat$3","lauf","startb","stopb","stepb","while$2","evaluator.while$2","bo","apply$2","evaluator.apply$2","apply$3","evaluator.apply$3","forall$2","evaluator.forall$2","forall$3","evaluator.forall$3","select$2","evaluator.select$2","select$3","evaluator.select$3","flatten$1","evaluator.flatten$1","recurse","level","levels","createvar$1","evaluator.createvar$1","local","evaluator.local","removevar$1","evaluator.removevar$1","release","evaluator.release","regional","evaluator.regional","genList","evaluator.genList","eval_helper.assigntake","what","where","ind1","eval_helper.assigndot","eval_helper.assigncolon","setuserData","tmpObj","eval_helper.assignlist","vals","if$2","evaluator.if$2","if$3","evaluator.if$3","and$2","or$2","xor$2","evaluator.xor$2","not$1","evaluator.not$1","genericListMathGen","eval_helper.genericListMathGen","emptyval","name$3","max$2","evaluator.max$2","max$3","max$1","min$2","evaluator.min$2","min$3","min$1","add$2","sub$2","mult$2","div$2","mod$2","evaluator.mod$2","pow$2","exp$1","evaluator.exp$1","sin$1","evaluator.sin$1","evaluator.sqrt$1","laguerre","eval_helper.laguerre","cs","maxiter","iter","tol","g2","quadratic_roots","eval_helper.quadratic_roots","roots","eval_helper.roots","cs_orig","qroots","roots$1","evaluator.roots$1","autodiff$3","evaluator.autodiff$3","ffunc","xarr","grade","CSad","autodiff","cos$1","evaluator.cos$1","tan$1","evaluator.tan$1","arccos$1","evaluator.arccos$1","arcsin$1","evaluator.arcsin$1","arctan$1","evaluator.arctan$1","arctan2$2","evaluator.arctan2$2","arctan2$1","evaluator.arctan2$1","log$1","evaluator.log$1","recursiveGen","eval_helper.recursiveGen","numOp","listOp","abs_infix","abs$1","random$0","evaluator.random$0","random$1","evaluator.random$1","seedrandom$1","evaluator.seedrandom$1","randomnormal$0","evaluator.randomnormal$0","randominteger$1","evaluator.randominteger$1","randomint$1","randombool$0","evaluator.randombool$0","isreal$1","evaluator.isreal$1","isinteger$1","evaluator.isinteger$1","iseven$1","evaluator.iseven$1","isodd$1","evaluator.isodd$1","iscomplex$1","evaluator.iscomplex$1","isstring$1","evaluator.isstring$1","islist$1","evaluator.islist$1","ismatrix$1","evaluator.ismatrix$1","iscircle$1","evaluator.iscircle$1","isconic$1","evaluator.isconic$1","isline$1","evaluator.isline$1","ispoint$1","evaluator.ispoint$1","isgeometric$1","evaluator.isgeometric$1","isnumbermatrix$1","evaluator.isnumbermatrix$1","isnumbervector$1","evaluator.isnumbervector$1","issun$1","evaluator.issun$1","ismass$1","evaluator.ismass$1","isspring$1","evaluator.isspring$1","isbouncer$1","evaluator.isbouncer$1","isundefined$1","evaluator.isundefined$1","cinderellaAlgoNames","ArcBy3","ConicBy1p4l","ConicBy4p1l","ConicBy5lines","ConicBy2Foci1P","ConicFromPrincipalDirections","Free","PolarOfLine","PolarOfPoint","PointOnSegment","Button","ToggleButton","TrReflectionL","TrReflectionP","TrReflectionC","TrTranslation","TrSimilarity","TrAffine","TransformP","TransformL","TransformSegment","TransformS","TransformPolygon","TransformArc","TransformConic","TransformC","TrMoebiusP","TrMoebiusL","TrMoebiusSegment","TrMoebiusS","TrMoebiusPolygon","TrMoebiusArc","TrMoebiusCircle","TrMoebiusC","TrInverseMoebius","Perp","Para","AngleBisector","IntersectLC","IntersectCirCir","OtherPointOnCircle","algorithm$1","evaluator.algorithm$1","compat","compatibility","inputs$1","evaluator.inputs$1","moveto$2","evaluator.moveto$2","continuefromhere$0","evaluator.continuefromhere$0","matrixrowcolumn$1","evaluator.matrixrowcolumn$1","rowmatrix$1","evaluator.rowmatrix$1","columnmatrix$1","evaluator.columnmatrix$1","submatrix$3","evaluator.submatrix$3","sane","row1","row2","complex$1","evaluator.complex$1","gauss$1","evaluator.gauss$1","cross$2","crossratio$4","evaluator.crossratio$4","a0","a3","v3","para$2","evaluator.para$2","w0","w1","perp$2","evaluator.perp$2","perp$1","evaluator.perp$1","parallel$2","perpendicular$2","perpendicular$1","meet$2","evaluator.meet$2","join$2","evaluator.join$2","dist$2","evaluator.dist$2","dist_infix","point$1","evaluator.point$1","line$1","evaluator.line$1","det$3","evaluator.det$3","det$1","evaluator.det$1","eig$1","evaluator.eig$1","eigenvalues$1","evaluator.eigenvalues$1","rank$1","evaluator.rank$1","kernel$1","evaluator.kernel$1","eigenvectors$1","evaluator.eigenvectors$1","area$3","evaluator.area$3","z0","z1","z2","inverse$1","evaluator.inverse$1","linearsolve$2","evaluator.linearsolve$2","mincostmatching$1","evaluator.mincostmatching$1","costMatrix","nr","nc","matching","take$2","length$1","evaluator.length$1","pairs$1","evaluator.pairs$1","triples$1","evaluator.triples$1","cycle$1","evaluator.cycle$1","consecutive$1","evaluator.consecutive$1","reverse$1","evaluator.reverse$1","directproduct$2","evaluator.directproduct$2","concat$2","common$2","remove$2","append$2","prepend$2","contains$2","evaluator.contains$2","sort$2","evaluator.sort$2","sort$3","evaluator.sort$3","compareResults","sort$1","evaluator.sort$1","set$1","evaluator.set$1","combinations$2","evaluator.combinations$2","pick","current","base","zeromatrix$2","evaluator.zeromatrix$2","zerovector$1","evaluator.zerovector$1","transpose$1","evaluator.transpose$1","row$2","evaluator.row$2","column$2","evaluator.column$2","dict$0","evaluator.dict$0","put$3","evaluator.put$3","get$2","evaluator.get$2","red$1","evaluator.red$1","green$1","evaluator.green$1","blue$1","evaluator.blue$1","gray$1","evaluator.gray$1","grey$1","HSVtoRGB","eval_helper.HSVtoRGB","hue$1","evaluator.hue$1","shapeconvert","eval_helper.shapeconvert","mx","my","pol","shapeop","eval_helper.shapeop","cpr","clip_fillType","subject_fillType","solution_paths","eval_helper.shapecommon","eval_helper.shaperemove","eval_helper.shapeconcat","key$0","evaluator.key$0","keycode$0","evaluator.keycode$0","mouse$0","evaluator.mouse$0","mover$0","evaluator.mover$0","translate$1","evaluator.translate$1","rotate$1","evaluator.rotate$1","rotate","scale$1","evaluator.scale$1","greset$0","evaluator.greset$0","csgstorage","gsave$0","evaluator.gsave$0","gsave","grestore$0","evaluator.grestore$0","grestore","color$1","evaluator.color$1","setcolor","linecolor$1","evaluator.linecolor$1","setlinecolor","pointcolor$1","evaluator.pointcolor$1","setpointcolor","alpha$1","evaluator.alpha$1","setalpha","pointsize$1","evaluator.pointsize$1","setpointsize","linesize$1","evaluator.linesize$1","setlinesize","textsize$1","evaluator.textsize$1","settextsize","playanimation$0","evaluator.playanimation$0","pauseanimation$0","evaluator.pauseanimation$0","stopanimation$0","evaluator.stopanimation$0","text$1","evaluator.text$1","replace$3","evaluator.replace$3","str0","str1","str2","regex","replace$2","evaluator.replace$2","getReplStr","from","keyind","rules","srep","substring$3","evaluator.substring$3","tokenize$2","evaluator.tokenize$2","autoconvert","fl","tail","token","indexof$2","evaluator.indexof$2","indexof$3","evaluator.indexof$3","evaluator.parse$1","unicode$1","evaluator.unicode$1","codepoint","fromCodePoint","cp","international$1","evaluator.international$1","international$2","evaluator.international$2","trl","translations","language","entry","pluralForm","_pluralFormFunction","currentlanguage$0","evaluator.currentlanguage$0","basismap","eval_helper.basismap","map$8","evaluator.map$8","w2","w3","m2","map$6","evaluator.map$6","inf","map$4","evaluator.map$4","map$2","evaluator.map$2","pointreflect$1","evaluator.pointreflect$1","linereflect$1","evaluator.linereflect$1","extractPointVec","eval_helper.extractPointVec","ok","polygon$1","evaluator.polygon$1","extractPoint","circle$2","evaluator.circle$2","screen$0","evaluator.screen$0","transf","px","py","halfplane$2","evaluator.halfplane$2","foot","sx","sy","pp1","pp2","pp3","pp4","element$1","evaluator.element$1","all$1","eval_helper.all$1","allpoints$0","evaluator.allpoints$0","allpoints$1","evaluator.allpoints$1","allmasses$0","evaluator.allmasses$0","allmasses$1","evaluator.allmasses$1","allsprings$0","evaluator.allsprings$0","allsprings$1","evaluator.allsprings$1","alllines$0","evaluator.alllines$0","alllines$1","evaluator.alllines$1","allsegments$0","evaluator.allsegments$0","allsegments$1","evaluator.allsegments$1","allconics$0","evaluator.allconics$0","allconics$1","evaluator.allconics$1","allcircles$0","evaluator.allcircles$0","allcircles$1","evaluator.allcircles$1","allelements$0","evaluator.allelements$0","allelements$1","evaluator.allelements$1","elementsatmouse$0","evaluator.elementsatmouse$0","distMouse","pz","getPerp","fp","inciPC","perp","dists","sect","inciPP","pp","farpoint","startPoint","endPoint","viaPoint","nor","elts","incidences$1","createpoint$2","evaluator.createpoint$2","create$3","evaluator.create$3","defs","def","javascript$1","evaluator.javascript$1","Function","evaluator.use$1","defineFunction","arity","getInitialMatrix","setTextRenderer","handlerCanvas","handlerHtml","textRendererCanvas","getImage","lazy","cdyUpdate","getMyfunction","format$2","evaluator.format$2","fmtNumber","toFixed","dec","fmt","Date.now","getTime","epoch","timestamp$0","evaluator.timestamp$0","seconds$0","evaluator.seconds$0","resetclock$0","evaluator.resetclock$0","time$0","evaluator.time$0","getHours","getMinutes","getSeconds","getMilliseconds","date$0","evaluator.date$0","getFullYear","getMonth","getDate","simulationtime$0","evaluator.simulationtime$0","settimeout$2","evaluator.settimeout$2","delay","formatForWebGL","eval_helper.formatForWebGL","generateWebGL$2","evaluator.generateWebGL$2","varlist","plotvars","compileToWebGL$1","evaluator.compileToWebGL$1","setsimulationspeed$1","evaluator.setsimulationspeed$1","setsimulationaccuracy$1","evaluator.setsimulationaccuracy$1","env","setsimulationquality$1","evaluator.setsimulationquality$1","qual","errorbound","lowestdeltat","slowdownfactor","activeButton","createtool$3","evaluator.createtool$3","modif","xref","yref","space","toolbar","reference","flipped","ncols","nrows","rowElt","click","tooltip","spacer","dropped$0","evaluator.dropped$0","droppoint$0","evaluator.droppoint$0","parsecsv$1","evaluator.parsecsv$1","mcon","delim","md","delimiter","lastIndex","itm","load$2","evaluator.load$2","load$3","evaluator.load$3","arg0","eval_helper.extractPoint","evaluator.draw$1","drawshape","drawline","pointModifs","drawpoint","evaluator.draw$2","drawsegcore","drawcircle$2","evaluator.drawcircle$2","drawcircle","arcHelper","eval_helper.arcHelper","arc","fillcircle$2","evaluator.fillcircle$2","drawarc$3","evaluator.drawarc$3","fillarc$3","evaluator.fillarc$3","eval_helper.drawarc","conicModifs","preDrawCurve","abcdet","con","ConicBy5","zer","startAngle","endAngle","arcDist","cclock","fillStyle","closePath","ptA","ptB","ptC","dAC","dBC","crossr","eval_helper.drawcircle","drawconic$1","evaluator.drawconic$1","half","tarr","eval_helper.drawconic","conicMatrix","c20","c11","c10","c02","c01","c00","link","verticalBoundary","vertical","mkp","sol","discr","k00","k10","k20","tpt","horizontalBoundary","k01","k02","doBoundary","bd","bMin","bMax","sign1","sign2","signMid","center","dist0","boundary","minx","maxx","miny","maxy","refine","depth","ux","uy","uz","cx","k11","cy","maxError","area","hx","hy","dMd","dMh","hMh","y3","quadraticCurveTo","lsize","tmat","toMat","dummy","startIndex","best","pt3","drawall$1","evaluator.drawall$1","pointAndLineModifs","connect$1","evaluator.connect$1","drawpoly$1","evaluator.drawpoly$1","fillpoly$1","evaluator.fillpoly$1","drawpolygon$1","evaluator.drawpolygon$1","fillpolygon$1","evaluator.fillpolygon$1","eval_helper.drawpolygon","drawpolyshape","polys","drawpoly","fillColor","rows","eval_helper.drawtext","textModifs","xOffset","yOffset","txt","katex","drawtext$2","evaluator.drawtext$2","drawtable$2","evaluator.drawtable$2","textcolor","hh","eval_helper.drawshape","shape","fillshape","eval_helper.fillshape","clipshape","eval_helper.clipshape","fill$1","evaluator.fill$1","clip$1","evaluator.clip$1","plot$1","evaluator.plot$1","plot$2","evaluator.plot$2","canbedrawn","drawstroke","xb","yb","xx2","yy2","xa","ya","xx1","yy1","stroking","drawrec","drawable1","drawable2","minstep","connectb","runv","ergmid","drawablem","drawit","pxlstep","mid1","ergmid1","mid2","ergmid2","dd1","dd2","steps","connect","xo","vo","plotX$1","evaluator.plotX$1","linecolor","eval_helper.plotvars","merge","els","l2","clrscr$0","evaluator.clrscr$0","repaint$0","evaluator.repaint$0","evaluator.screenbounds$0","pt4","createimage$3","evaluator.createimage$3","clearimage$1","evaluator.clearimage$1","image","localcanvas","cw","ch","localcontext","canvas$4","evaluator.canvas$4","pta","ptb","diffx","diffy","ptcx","ptcy","ptdx","ptdy","cva","cvc","cvd","x11","x12","x21","x22","x31","x32","a4","a5","a6","backupctx","canvas$5","evaluator.canvas$5","ptc","cvb","y11","y32","screenresolution$0","evaluator.screenresolution$0","layer$1","evaluator.layer$1","imagesize$1","evaluator.imagesize$1","imageready$1","evaluator.imageready$1","drawimage$2","evaluator.drawimage$2","drawimg1","scax","scay","flipx","flipy","rot","angle","rotation","scalex","scaley","initm","ixx1","iyy1","viewScale","drawTo","drawimg3","aspect","drawimage$3","drawimage$4","allimages$0","evaluator.allimages$0","cameravideo$0","evaluator.cameravideo$0","makeconstraints","advanced","ideal","audio","maximal","constraints","resolution","heightorratio","isInteger","aspectRatio","openVideoStream","gum","mediaDevices","getUserMedia","failure","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","stream","srcObject","playvideo$1","evaluator.playvideo$1","pausevideo$1","evaluator.pausevideo$1","imagergba$3","evaluator.imagergba$3","rgba","imagergb$3","imagergba$4","evaluator.imagergba$4","coord","interpolate","repeat","xf","yf","pixels","p10","p01","p11","imagergb$4","evaluator.imagergb$4","readpixels$1","evaluator.readpixels$1","operatorLevels","deg","take","functionCall","mul","eq","ne","lt","gt","le","ge","aeq","ane","alt","agt","ale","age","nin","assign","define","undefine","bdefine","prefixOperators","prefixOnly","postfixOnly","flexfix","operatorSymbols","initializeOperators","symbols","descr","symbol","reNumber","inTokenWhitespace","supNum","subNum","unicodeLetters","hiRanges","fst","reIdentifier","reSpace","tokenTypes","sanityCheck","advanceBy","Tokenizer.prototype.advanceBy","advanceTo","Tokenizer.prototype.advanceTo","curPos","Tokenizer.prototype.curPos","nextInternal","Tokenizer.prototype.nextInternal","pos1","pos2","Tokenizer.prototype.next","reComment","cvoid","postprocess","Parser.prototype.postprocess","Parser.prototype.parse","module.exports.parse","playsin$1","evaluator.playsin$1","linenumber","freq","CSad.printArr","ttemp","ttempi","printimag","CSad.zero","CSad.number","x0","CSad.variable","CSad.add","CSad.sub","CSad.mult","ges","CSad.pow","root","CSad.root","rOne","inner","csK","CSad.findFirstNoneZero","idxf","idxg","myEps","CSad.div","indxs","findFirstNoneZero","CSad.exp","CSad.log","CSad.sincos","ergsin","ergcos","sumcos","sumsin","insin","incos","numk","inboth","sinsave","cossave","CSad.sin","sincos","CSad.cos","CSad.faculty","CSad.diff","CSad.adevaluate","ergarr","facs","faculty","CSad.autodiff","adevaluate","Render2D.handleModifs","handlers","dashing","unSetDash","colorraw","fillcolorraw","psize","isArrow","arrowSides","headlen","arrowShape","arrowShapes","handler","modifHandlers","pointsize","linesize","pointcolor","pointcolorraw","linecolorraw","textcolorraw","black","dashpattern","pat","setDash","dashTypes","si","deprecated","allowed","x_offset","y_offset","Render2D.makeColor","Render2D.preDrawCurve","mozFillRule","close","clipSegment","Render2D.clipSegment","clipPoints","clipLineCore","q1","q2","dot1","dot2","Render2D.drawsegcore","draw_arrowhead","tipx","tipy","rx","ry","lx","ly","endpoint1x","endpoint1y","endpoint2x","endpoint2y","overhang1","overhang2","overhang1x","overhang1y","overhang2x","overhang2y","hs","pos_fac1","pos_fac2","tip1x","tip1y","tip2x","tip2y","Render2D.drawpoint","Render2D.clipLineCore","SQRT1_2","xMin","xMax","yMax","yMin","ul","ur","ll","lr","clipLine","Render2D.clipLine","Render2D.drawline","Render2D.drawRaySegment","norm","Render2D.setDash","pattern","webkitLineDash","mozDash","Render2D.unSetDash","_pathcmd","bezierCurveTo","dir","covered","largeArc","_cmd","_attrs","_transform","_setAlpha","butt","miter","bevel","limit","_kappa","_usePath","combined","_png","dataURL","chunk","ihdr","bitDepth","colorType","grayscale","compressionMethod","filterMethod","interlaceMethod","smask","numColors","idats","pako","inflate","Inflate","bytesPerComponent","colorBytesPerPixel","rgb","mask","deflate","_strm","Type","Subtype","Width","Height","ColorSpace","BitsPerComponent","Filter","DecodeParms","_dict","Predictor","Colors","Columns","_obj","xobj","Name","SMask","Length","unshift","mediaBox","Pages","Kids","Count","MediaBox","Contents","Resources","ProcSet","XObject","ExtGState","buf","objects","byIndex","trailer","Size","Root","exportSVG","globalInstance.exportSVG","exportPDF","globalInstance.exportPDF","exportPNG","globalInstance.exportPNG","href","download","Delete","Move","normalizedmid","midx","midy","vlength","refy","Point","Mid","Circle","Compass","Line","Segment","Parallel","Orthogonal","Intersection","csport.clone","constructor","csport.reset","csport.from","csport.to","csport.toMat","dumpTrafo","csport.dumpTrafo","csport.setMat","scaleAndOrigin","csport.scaleAndOrigin","originX","originY","visibleRect","csport.visibleRect","applyMat","csport.applyMat","csport.translate","csport.rotate","csport.scale","csport.gsave","csport.grestore","csport.greset","csport.createnewbackup","makecolor","csport.makecolor","rv","gv","bv","csport.setcolor","co","csport.setlinecolor","settextcolor","csport.settextcolor","csport.setpointcolor","csport.setalpha","al","csport.setpointsize","csport.setlinesize","csport.settextsize","enableTraceLog","addTraceHook","guessIncidences.P","conjecture","guessIncidences.L","guessIncidences.C","RandomLine","geoOps.RandomLine.updatePosition","FreeLine","geoOps.FreeLine.initialize","initializeLine","geoOps.FreeLine.getParamForInput","geoOps.FreeLine.getParamFromState","geoOps.FreeLine.putParamToState","geoOps.FreeLine.updatePosition","RandomPoint","geoOps.RandomPoint.updatePosition","geoOps.Join.updatePosition","geoOps.Segment.updatePosition","setSegmentPos","geoOps.Segment.setSegmentPos","startend","Meet","geoOps.Meet.updatePosition","geoOps.Meet.visiblecheck","geoOps._helper.midpoint","geoOps.Mid.updatePosition","geoOps.Perp.updatePosition","geoOps.Para.updatePosition","Horizontal","geoOps.Horizontal.updatePosition","HorizontalLine","geoOps.HorizontalLine.initialize","geoOps.HorizontalLine.getParamForInput","geoOps.HorizontalLine.getParamFromState","geoOps.HorizontalLine.putParamToState","geoOps.HorizontalLine.updatePosition","Vertical","geoOps.Vertical.updatePosition","VerticalLine","geoOps.VerticalLine.initialize","geoOps.VerticalLine.getParamForInput","geoOps.VerticalLine.getParamFromState","geoOps.VerticalLine.putParamToState","geoOps.VerticalLine.updatePosition","LineByFixedAngle","geoOps.LineByFixedAngle.initialize","geoOps.LineByFixedAngle.updatePosition","Through","geoOps.Through.initialize","geoOps.Through.getParamForInput","geoOps.Through.getParamFromState","geoOps.Through.putParamToState","geoOps.Through.updatePosition","set_angle","geoOps.Through.set_angle","ss","set_slope","geoOps.Through.set_slope","geoOps.Free.initialize","initializePoint","geoOps.Free.getParamForInput","geoOps.Free.getParamFromState","geoOps.Free.putParamToState","geoOps.Free.updatePosition","projectPointToLine","geoOps._helper.projectPointToLine","point","PointOnLine","geoOps.PointOnLine.initialize","other","geoOps.PointOnLine.updatePosition","isMover","newPoint","newLine","oldPoint","tmpIn","realPoint","realLine","circle","CircleMP","newCandidates","oldAntipode","pointReflection","geoOps.PointOnLine.getParamForInput","snapPointToLine","geoOps.PointOnLine.getParamFromState","geoOps.PointOnLine.putParamToState","PointOnCircle","geoOps.PointOnCircle.initialize","CenterOfCircle","diameter","candidates","d0","geoOps.PointOnCircle.putParamToState","geoOps.PointOnCircle.getParamFromState","geoOps.PointOnCircle.getParamForInput","oldparam","oldpos","olddir","oldSign","geoOps.PointOnCircle.parameterPath","sp","uc","tc2","uc2","tuc","geoOps.PointOnCircle.updatePosition","antipodalPoint","geoOps.OtherPointOnCircle.signatureConstraints","geoOps.OtherPointOnCircle.updatePosition","geoOps.PointOnSegment.initialize","geoOps.PointOnSegment.getParamForInput","seg","geoOps.PointOnSegment.getParamFromState","geoOps.PointOnSegment.putParamToState","geoOps.PointOnSegment.updatePosition","far","projectPointToCircle","geoOps._helper.projectPointToCircle","cir","isec","PointOnArc","geoOps.PointOnArc.signatureConstraints","geoOps.PointOnArc.initialize","geoOps.PointOnArc.getParamForInput","crh","geoOps.PointOnArc.getParamFromState","geoOps.PointOnArc.putParamToState","geoOps.PointOnArc.updatePosition","AI","BI","CI","M2x3","M3x2","M2x3c","M2x2","v2x1","ab","conicOtherIntersection","geoOps._helper.CenterOfCircle","geoOps._helper.CenterOfConic","adj","geoOps.CenterOfConic.updatePosition","geoOps._helper.CircleMP","mz","tang","la","geoOps.CircleMP.updatePosition","CircleMr","geoOps.CircleMr.initialize","geoOps.CircleMr.getParamForInput","geoOps.CircleMr.getParamFromState","geoOps.CircleMr.putParamToState","geoOps.CircleMr.updatePosition","sr","sr2","ScaledCircleMrr","set_radius","geoOps.CircleMr.set_radius","geoOps._helper.ScaledCircleMrr","vxy","geoOps.Compass.updatePosition","aZ","bZ","mZ","getConicType","geoOps._helper.getConicType","adet","geoOps._helper.ConicBy5","v23","v14","v12","v34","conicFromTwoDegenerates","geoOps._helper.conicFromTwoDegenerates","deg1","deg2","geoOps.ConicBy5.updatePosition","FreeConic","geoOps.FreeConic.initialize","inputConic","geoOps.FreeConic.getParamForInput","geoOps.FreeConic.getParamFromState","geoOps.FreeConic.putParamToState","geoOps.FreeConic.updatePosition","set_matrix","geoOps.FreeConic.set_matrix","geoOps._helper.buildConicMatrix","geoOps._helper.flattenConicMatrix","splitDegenConic","geoOps._helper.splitDegenConic","adj_mat","beta","zeros","lam","lg","lh","geoOps._helper.inputConic","SelectConic","geoOps.SelectConic.initialize","results","geoOps.SelectConic.updatePosition","geoOps._helper.ConicBy4p1l","bl","cl","dl","bcd","abd","acd","abc","k2","geoOps.ConicBy4p1l.updatePosition","ConicBy3p2l","geoOps._helper.ConicBy3p2l","gh","gl","hl","m3","a3a","b3a","signs","b3","p1","p3","p4","mm","geoOps.ConicBy3p2l.updatePosition","ConicBy2p3l","geoOps.ConicBy2p3l.updatePosition","dual","geoOps.ConicBy1p4l.updatePosition","ConicParabolaPL","geoOps.ConicParabolaPL.updatePosition","Fx","Fy","Fz","dz","Fz2","dx2","dy2","Fzdz","nFz","dx2pdy2","geoOps.ConicBy2Foci1P.updatePosition","PP","II","JJ","har","coHarmonic","e2","lII","lJJ","lF1","lF2","co1","co2","three","ConicBy2Pol1P","geoOps.ConicBy2Pol1P.updatePosition","sm","rm","AC","BC","M1","M2","M3","Ab","Ba","ConicBy2Pol1L","geoOps.ConicBy2Pol1L.updatePosition","aA","aB","bA","bB","cA","cB","conic1Pol3Inc","geoOps._helper.conic1Pol3Inc","ABC","BD","AD","aD","ConicBy1Pol3P","geoOps.ConicBy1Pol3P.updatePosition","ConicBy1Pol3L","geoOps.ConicBy1Pol3L.updatePosition","ConicBy1Pol2P1L","geoOps.ConicBy1Pol2P1L.updatePosition","aC","dA","dB","dC","AB","ABAC","res1","res2","ConicBy1Pol1P2L","geoOps.ConicBy1Pol1P2L.updatePosition","aAA","aAB","aBB","cAA","cAB","cBB","dAA","dAB","dBB","fa","fc","fd","cv","geoOps._helper.coHarmonic","poi","ix","jx","iy","jy","sqj","sqi","mui","tauj","out1","out2","ConicInSquare","geoOps.ConicInSquare.updatePosition","m2Tucm2","m1a","mC","geoOps.ConicBy5lines.updatePosition","erg_temp","geoOps.ConicFromPrincipalDirections.updatePosition","P1","P2","P3","P1M","perpDirP1M","vP1M","vPP1MTP1","vPP1MTP3","CircleBy3","geoOps.CircleBy3.updatePosition","geoOps.ArcBy3.updatePosition","geoOps.ArcBy3.initialize","geoOps.PolarOfPoint.updatePosition","conic","geoOps.PolarOfLine.updatePosition","dualMatrix","geoOps.AngleBisector.updatePosition","nm","geoOps._helper.IntersectLC","maxidx","a12","a21","a22","a11","erg2","geoOps.IntersectLC.updatePosition","OtherIntersectionCL","geoOps.OtherIntersectionCL.updatePosition","geoOps.IntersectCirCir.updatePosition","line1","ct1","line2","ct2","OtherIntersectionCC","geoOps.OtherIntersectionCC.updatePosition","IntersectConicConic","geoOps._helper.IntersectConicConic","B1","B2","B3","c3","c0","Aabs2","Babs2","myeps","CDeg1","CDeg2","sols","d01","d02","sol1","sol2","lines1","l11","l12","lines2","l21","l22","geoOps.IntersectConicConic.updatePosition","SelectP","geoOps.SelectP.initialize","geoOps.SelectP.updatePosition","SelectL","geoOps.SelectL.initialize","geoOps.SelectL.updatePosition","moebiusStep","geoOps._helper.moebiusStep","ay","bx","by","d3","d4","TrMoebius","geoOps.TrMoebius.updatePosition","mB","mAa","moebius","anti","moebiusPair","geoOps._helper.moebiusPair","flip","identity","mats","inverseMoebius","geoOps._helper.inverseMoebius","geoOps.TrInverseMoebius.updatePosition","geoOps.TrMoebiusP.updatePosition","geoOps._helper.TrMoebiusP","Tr","geoOps.TrMoebiusL.updatePosition","getRandLine","rline","geoOps.TrMoebiusS.updatePosition","geoOps.TrMoebiusC.signatureConstraints","geoOps.TrMoebiusC.updatePosition","pts1","pts2","geoOps.TrMoebiusArc.signatureConstraints","geoOps.TrMoebiusArc.updatePosition","Arc","trBuildMatrix","geoOps._helper.trBuildMatrix","oneStep","TrProjection","geoOps.TrProjection.initialize","isEuclidean","geoOps.TrProjection.updatePosition","geoOps.TrAffine.initialize","geoOps.TrAffine.updatePosition","ps1","ps2","ps1t","ps2t","geoOps.TrSimilarity.initialize","geoOps.TrSimilarity.updatePosition","geoOps.TrTranslation.initialize","geoOps.TrTranslation.updatePosition","geoOps.TrReflectionP.initialize","geoOps.TrReflectionP.updatePosition","geoOps.TrReflectionL.initialize","geoOps.TrReflectionL.updatePosition","pm","txy","TrReflectionS","geoOps.TrReflectionC.signatureConstraints","geoOps.TrReflectionC.updatePosition","TrInverse","geoOps.TrInverse.initialize","geoOps.TrInverse.updatePosition","geoOps.TransformC.updatePosition","geoOps.TransformArc.signatureConstraints","geoOps.TransformArc.updatePosition","geoOps.TransformP.updatePosition","geoOps.TransformL.updatePosition","geoOps.TransformS.updatePosition","geoOps.TransformPolygon.updatePosition","TrComposeTrTr","geoOps.TrComposeTrTr.initialize","geoOps.TrComposeTrTr.updatePosition","composeMtMt","geoOps._helper.composeMtMt","f1","f2","f3","addsub","subadd","euc2moeb","geoOps._helper.euc2moeb","TrComposeMtMt","geoOps.TrComposeMtMt.updatePosition","TrComposeTrMt","geoOps.TrComposeTrMt.signatureConstraints","geoOps.TrComposeTrMt.updatePosition","TrComposeMtTr","geoOps.TrComposeMtTr.signatureConstraints","geoOps.TrComposeMtTr.updatePosition","geoOps._helper.pointReflection","geoOps._helper.conicOtherIntersection","mb","bmb","amb","amb2","bmba","amb2b","Dist","geoOps.Dist.updatePosition","Angle","geoOps.Angle.initialize","geoOps.Angle.updatePosition","ap","winding","geoOps.Text.initialize","geoOps.Text.getParamForInput","geoOps.Text.getParamFromState","geoOps.Text.putParamToState","Calculation","geoOps.Calculation.initialize","calculation","geoOps.Calculation.getText","Equation","geoOps.Equation.initialize","geoOps.Equation.getText","Evaluate","geoOps.Evaluate.initialize","geoOps.Evaluate.getText","Plot","geoOps.Plot.initialize","geoOps.Plot.getText","geoOps.Button.initialize","set_fillcolor","geoOps.Button.set_fillcolor","geoOps.ToggleButton.initialize","pressed","EditableText","geoOps.EditableText.initialize","textbox","minwidth","blur","geoOps.EditableText.getText","get_currenttext","geoOps.EditableText.get_currenttext","get_text","geoOps.EditableText.get_text","set_currenttext","geoOps.EditableText.set_currenttext","set_text","get_val","set_val","geoOps._helper.initializePoint","sz","geoOps._helper.initializeLine","Poly","geoOps.Poly.updatePosition","geoOps.IFS.signatureConstraints","geoOps.IFS.initialize","params","worker","Worker","onmessage","worker.onmessage","buffer","imgBytes","Uint8ClampedArray","imgPtr","imgData","ImageData","putImageData","postMessage","terminate","geoOps.IFS.updatePosition","geoOps.IFS.updateParameters","supersampling","systems","trs","prob","px2hom","trel","view","elLike","moeb","probSetter","geoOps.IFS.probSetter","geoOps._helper.snapPointToLine","projPos","newpos","geoMacros.CircleMFixedr","geoMacros.CircleByFixedRadius","geoMacros.IntersectionConicLine","geoMacros.angleBisector","geoMacros.Transform","Mt","akind","geoMacros.TrReflection","geoMacros.TrCompose","globalInstance.saveState","lab.tick","deltat","tick1","simulationstep","lab.tick1","mydeltat","proceeded","actualdelta","oneRKStep","restorePosition","doCollisions","calculateForces","moveToFinalPos","lab.restorePosition","restorePos","lab.doCollisions","lab.calculateForces","lab.moveToFinalPos","lab.oneRKStep","initRKTimeStep","initRK","storePosition","setToTimestep","proceedMotion","resetForces","calculateDelta","calculateError","sqDist","recallInitialPosition","recallPosition","madeIt","elem","vel","lnfrict","limitspeed","fixed","internalmove","mtype","mvx","mvy","mvz","dvx","dvy","dvz","midz","lz","yo","zo","vxo","vyo","vzo","setVelocity","bvv","limitSpeed","kineticEnergy","tip","strength","namea","nameb","ma","amplitude","phase","stype","readOnInit","lact","mytype","l3","springstrength","labObjects.det","xdamp","ydamp","motorchanger","x1o","y1o","x2o","y2o","nx","ny","mxo","myo","vvx","vvy","ss1","ss2","charges","balls","newton","ballInteractionBoosting","createCindy"],
+ "mappings":"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CACjL,GADiL,CAC7K,GAD6K,CACzK,GADyK,CACrK,GADqK,CACjK,GADiK,CAC7J,GAD6J,CACzJ,GADyJ,CACrJ,GADqJ,CACjJ,GADiJ,CAC7I,GAD6I,CACzI,GADyI,CACrI,GADqI,CACjI,GADiI,CAC7H,GAD6H,CACzH,GADyH,CACrH,GADqH,CACjH,GADiH,CAC7G,GAD6G,CACzG,GADyG,CACrG,GADqG,CACjG,GADiG,CAC7F,GAD6F,CACzF,GADyF,CACrF,GADqF,CACjF,GADiF,CAC7E,GAD6E,CACzE,GADyE,CACrE,GADqE,CACjE,GADiE,CAC7D,GAD6D,CACzD,GADyD,CACrD,GADqD,CACjD,GADiD,CAC7C,GAD6C,CACzC,GADyC,CACrC,GADqC,CACjC,GADiC,CAC7B,GAD6B,CACzB,GADyB,CACrB,GADqB,CACjB,GADiB,CACb,GADa,CACT,GADS,CACL,GADK,CACD,GADC,CACG,GADH,CACO,GADP,CACW,GADX,CACe,GADf,CACmB,GADnB,CACuB,GADvB,CAC2B,GAD3B,CAC+B,GAD/B,CACmC,GADnC,CACuC,GADvC,CAC2C,GAD3C,CAC+C,GAD/C,CACmD,GADnD,CACuD,GADvD,CAC2D,GAD3D,CAC+D,GAD/D,CACmE,GADnE,CACuE,GADvE,CAC2E,GAD3E,CAC+E,GAD/E,CACmF,GADnF,CACuF,GADvF,CAC2F,GAD3F,CAC+F,GAD/F,CACmG,GADnG,CACuG,GADvG,CAC2G,GAD3G,CAC+G,GAD/G,CACmH,GADnH,CACuH,GADvH,CAC2H,GAD3H,CAC+H,GAD/H;AACmI,GADnI,CACuI,GADvI,CAC2I,GAD3I,CAlBtQ,CAmBsZC,GAAE,QAAFA,CAAWD,CAAA,CAAEA,CAAA3K,OAAF,CAAW,CAAX,CAAcuC,EAAAsD,UAAAgF,UAAA,CAAsBC,QAAQ,CAACpN,CAAD,CAAG,CAAC,MAAOmF,KAAAC,MAAA,CAAWD,IAAAkI,IAAX,CACne,IAAAnH,GADme,CAC3df,IAAAmI,IAAA,CAAStN,CAAT,CAD2d,CAAR,CACrc6E,EAAAsD,UAAA2D,QAAA,CAAoByB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"}
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt
new file mode 100644
index 00000000000..6061a5db6ce
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt
@@ -0,0 +1,163 @@
+Ketinit,basic1,41,182,Fillstore,Cindyname,Indexall,getname,Changesetting,Changework,pathsep,iswindows,ismacosx,isexists,iskcexists,setexec,Setwindow
+Fillstore,basic1,186,216
+Fillblack,basic1,220,234,Fillstore
+Fillrestore,basic1,238,250
+Readlines,basic1,254,265,readfile2str
+Changesetting,basic1,269,284,pathsep,getname,isexists
+Cindyname,basic1,288,295,Cdyname,Getcdyname
+Setwindow,basic1,299,336,Toupper,Lcrd,Pcrd,Putpoint
+Setfiles,basic1,340,353,Dqq
+Setparent,basic1,357,369,Dqq
+Dqq,basic1,373,373,DqDq
+DqDq,basic1,376,379
+PPa,basic1,383,384
+PaO,basic1,388,400
+PaC,basic1,404,416
+PPa,basic1,420,420
+Tab2list,basic1,424,486,Divoptions,Toupper,Indexall
+Columnlist,basic1,490,493
+Dispmat,basic1,497,519
+Sep1000,basic1,523,541
+Acos,basic1,545,548
+Asin,basic1,552,555
+Atan,basic1,559,562
+Sqr,basic1,566,569
+Factorial,basic1,573,581
+Norm,basic1,585,597
+Removespace,basic1,602,627
+Indexall,basic1,631,649
+Strsplit,basic1,653,664,Indexall
+Parlevel,basic1,668,668,Bracket
+Bracket,basic1,671,693,Indexall
+Pardiagram,basic1,697,793,Divoptions,Toupper,Bracket,Listplot,Letter,Expr
+Changework,basic1,797,858,Divoptions,Strsplit,Toupper,Indexall,isexists,Dqq,makedir,pathsep,iswindows,iskcexists,setexec
+Changestyle,basic1,862,894,Divoptions,Com2nd,Setcolor,GetLinestyle,Texcom
+Op,basic1,898,910
+Ptselected,basic1,914,928,Isptselected
+Finddef,basic1,932,951
+Findgeoinfo,basic1,955,980,Finddef
+Dependgeo,basic1,984,1004,Finddef
+Workprocess,basic1,1008,1012,Drawprocess
+Drawprocess,basic1,1015,1060,Divoptions,Strsplit,Toupper,Dependgeo
+Sortpointlist,basic1,1064,1096
+Toupper,basic1,1100,1115
+Textformat,basic1,1119,1143
+Sprintf,basic1,1147,1164,Textformat
+Assign,basic1,1168,1225,Textformat
+MeasureDepth,basic1,1229,1254
+Flattenlist,basic1,1258,1278,MeasureDepth
+Divoptions,basic1,1282,1385,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb
+Dotprod,basic1,1389,1395
+Crossprod,basic1,1399,1411
+Mvprod,basic1,1415,1433,MeasureDepth
+Ptstart,basic1,1437,1442
+Ptend,basic1,1446,1451
+Numptcrv,basic1,1455,1460
+Ptcrv,basic1,1464,1469
+Invert,basic1,1473,1486,Listplot
+Paramoncrv,basic1,1490,1490,Paramoncurve
+ParamonCurve,basic1,1493,1519,Nearestpt,LLcrd
+Pointoncrv,basic1,1523,1523,PointonCurve
+PointonCurve,basic1,1526,1544
+Koutenseg,basic1,1548,1656
+IntersectcrvsPp,basic1,1662,1805,Divoptions,MeasureDepth,LLcrd,Koutenseg
+Intersectcrvs,basic1,1809,1815,IntersectcrvsPp
+Intersectline,basic1,1823,1845,Dotprod,Crossprod
+Intersectseg,basic1,1849,1949,Op,Intersectline,Nearestpt
+Osplineseg,basic1,1953,1970,Dotprod,Bezier
+Intersectpartseg,basic1,1974,2076,Crossprod,Norm,Reflectpoint,Osplineseg,Intersectseg,Op,Intersectline
+Collectsameseg,basic1,2080,2122
+IntersectcurvesPp,basic1,2126,2229,LLcrd,Intersectpartseg,Collectsameseg,Nearestpt
+Intersectcurves,basic1,2233,2240,IntersectcurvesPp
+NearestptcrvPhy,basic1,2246,2255,Pcrd,MeasureDepth,Nearestpt
+Nearestptcrv,basic1,2259,2265,Nearestpt
+Nearestpt,basic1,2269,2322,MeasureDepth,ParamonCurve
+Derivative,basic1,2326,2417,Strsplit,Lineplot,IntersectcurvesPp,Pointoncurve,Dotprod,Divoptions,Toupper,PaO,Pcrd,Assign
+Tangentplot,basic1,2421,2468,Divoptions,Strsplit,Toupper,IntersectcurvesPp,Derivative,Lineplot
+Integrate,basic1,2472,2485,Integratefn,Integratedt
+Integratedt,basic1,2489,2521,Divoptions,Toupper,IntegrateO,MeasureDepth,MeetCurve,LLcrd
+Integratefn,basic1,2525,2585,Divoptions,Toupper,Strsplit,Assign,IntegrateO,Textformat
+IntegrateO,basic1,2589,2668,MeasureDepth,MeetCurve,LLcrd,Dotprod
+FindareaP,basic1,2672,2685,Lcrd
+FindareaO,basic1,2689,2710,Dist,IntegrateO
+Findarea,basic1,2714,2740,Divoptions,Strsplit,Toupper,FindareaO,FindareaP
+Findlength,basic1,2744,2756,Lcrd
+Inversefun,basic1,2760,2783,Textformat
+Com0th,basic1,2787,2791
+Com1st,basic1,2795,2800
+Com2nd,basic1,2804,2815,Toupper
+Com2ndpre,basic1,2819,2823
+Texcom,basic1,2827,2834,Com2nd
+Ketcindylogo,basic1,2838,2842,Com2nd,Texcom
+Drwline,basic1,2846,2849,Textformat,Com2nd
+Dashline,basic1,2854,2856,Com2nd
+Invdashline,basic1,2860,2862,Com2nd
+Dottedline,basic1,2866,2868,Com2nd
+SetEnglish,basic1,2872,2875,Com0th,setlanguage
+Drawlinetype,basic1,2879,2900,Toupper,Drwline,Dashline,Invdashline,Dottedline
+Setunitlen,basic1,2904,2956
+Setmarklen,basic1,2960,2964,Com2nd,Textformat
+Setorigin,basic1,2968,2972,Com2nd,Textformat
+Fontsize,basic1,2976,2979,Com2nd
+Setpen,basic1,2983,2987,Com2nd
+Setscaling,basic1,2991,3005,Com0th,Setwindow
+Lcrd,basic1,3009,3017
+Pcrd,basic1,3021,3029
+LLcrd,basic1,3033,3042
+Doscaling,basic1,3046,3073,Lcrd,LLcrd
+Unscaling,basic1,3077,3104,Lcrd,LLcrd
+Setpt,basic1,3108,3114,Ptsize,Com2nd
+Definecolor,basic1,3118,3126,Texcom
+Setcolor,basic1,3130,3157,Texcom,Colorcmyk2rgb,Com2nd
+Colorrgb2cmyk,basic1,3161,3173
+Colorcmyk2rgb,basic1,3177,3184
+Colorrgbhsv,basic1,3188,3220
+Colorhsvrgb,basic1,3224,3238
+Colorrgbhsl,basic1,3242,3278
+Colorhslrgb,basic1,3282,3303,Hue2rgb
+Hue2rgb,basic1,3307,3325
+Colorrgbhwb,basic1,3329,3335,Colorrgbhsl,Colorcode
+Colorhwbrgb,basic1,3339,3364
+Colorcode,basic1,3368,3381,Colorrgb2cmyk,Colorcmyk2rgb,Colorrgbhsv,Colorrgbhsl,Colorrgbhwb,Colorhsvrgb,Colorhslrgb,Colorhwbrgb
+Colorname2rgb,basic1,3385,3433,Colorcmyk2rgb
+GetLinestyle,basic1,3437,3503,Drwline,Dashline,Invdashline,Dottedline,Textformat,Drwpt
+Chunderscore,basic1,3507,3542,PaO
+AddGraph,basic1,3546,3646,Divoptions,Flattenlist,Pcrd,MeasureDepth,PaO,Listplot,Pointdata,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Joincrvs,basic1,3650,3746,LLcrd,Divoptions,Numptcrv,Ptstart,Ptend,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Partcrv,basic1,3750,3839,MeasureDepth,Divoptions,Numptcrv,Ptstart,Ptend,Joincrvs,Nearestpt,LLcrd,Pcrd,Textformat,Lcrd,Com2nd,Setcolor,GetLinestyle,Texcom
+Opcrvs,basic1,3843,3851,Listplot
+Pointdata,basic1,3855,3971,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb,MeasureDepth,Pcrd,Setcolor,PaO,Texcom,Setpen,Textformat,Com2nd,Setpt
+Listplot,basic1,3975,4060,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom,Lcrd
+Lineplot,basic1,4064,4132,Divoptions,Lcrd,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Plotdata,basic1,4136,4331,Divoptions,PaO,Dqq,Assign,Norm,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Paramplot,basic1,4335,4501,Divoptions,PaO,Dqq, differs from Scilab ,Assign,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Polarplot,basic1,4505,4514,Strsplit,Paramplot
+Connectseg,basic1,4518,4580,Norm
+Implicitplot,basic1,4584,4722,Divoptions,Strsplit,Toupper,Impfun,Connectseg,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Circledata,basic1,4726,4835,Divoptions,Lcrd,Defvar,Pcrd,Textformat,Lineplot,Com2nd,Setcolor,GetLinestyle,Texcom
+Framedata,basic1,4839,4964,MeasureDepth,LLcrd,Toupper,Framedata2,Lcrd,Divoptions,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Framedata2,basic1,4968,4975,Lcrd,Framedata
+Ovaldata,basic1,4979,5049,Divoptions,Lcrd,Listplot,Circledata,Reflectdata,Joincrvs,Com2nd,Setcolor,GetLinestyle,Texcom,Pcrd,Textformat
+Segmark,basic1,5053,5113,Drawsegmark,Divoptions,Toupper,Circledata,Listplot
+Parabolaplot,basic1,5117,5157,Lcrd,Rotatepoint,Textformat,Plotdata,Rotatedata
+Ellipseplot,basic1,5161,5204,Lcrd,Rotatepoint,Paramplot,Rotatedata
+Hyperbolaplot,basic1,5208,5272,Divoptions,Toupper,Lcrd,Rotatepoint,Paramplot,Lineplot,Rotatedata
+Polygonplot,basic1,5276,5322,Divoptions,Strsplit,Toupper,Lcrd,Putpoint,Listplot
+Putintersect,basic1,5326,5354,Intersectcrvs,Putpoint
+Setarrow,basic1,5358,5384
+Arrowheaddata,basic1,5389,5482,Divoptions,Strsplit,Toupper,Touppera,MeasureDepth,Nearestpt,|Ptend,Ptstart,Numptcrv,Ptcrv,LLcrd,IntersectcrvsPp,Pcrd
+Arrowhead,basic1,5486,5578,Strsplit,Toupper,MeasureDepth,Pcrd,Arrowheaddata,Inwindow,Listplot,Divoptions,Dqq,Textformat,LLcrd,Setcolor,Com2nd,Texcom
+Arrowdata,basic1,5582,5685,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Listplot,LLcrd,Arrowhead,Lcrd
+Anglemark,basic1,5689,5795,Divoptions,Letter,Expr,Lcrd,Defvar,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Paramark,basic1,5799,5885,Divoptions,Letter,Expr,Lcrd,Defvar,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+MakeBowdata,basic1,5889,5902,Lcrd,Rotatepoint
+Bowdata,basic1,5906,6071,Divoptions,Lcrd,Letterrot,Letter,Exprrot,Expr,MakeBowdata,Defvar,Norm,LLcrd,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Bowname,basic1,6075,6078,Expr
+Bownamerot,basic1,6082,6096,MeasureDepth,Ptend,Ptstart,Exprrot
+Deqdata,basic1,6100,6158,funP,Lcrd,funN
+Deqplot,basic1,6162,6287,Lcrd,Divoptions,Toupper,Indexall,Deqdata,Pcrd,Assign,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom
+Enclosing,basic1,6455,6621,Divoptions,isList,Lcrd,Listplot,IntersectcurvesPp,Prepend,Op,Length,Partcrv,Pointoncurve,Pcrd,Enclosing2,PaO,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom,LLcrd
+Makehatch,basic1,6629,6731,Lineplot,Intersectseg,Norm,Listplot
+Anyselected,basic1,6735,6743
+Hatchdata,basic1,6747,7043,HatchdataR,Hatchdatacindy,Listplot,Joincrvs,Enclosing2,Divoptions,Strsplit,Toupper,Anyselected,Bracket,isexists,Makehatch,Textformat,PaO,ReadOutData,Com2nd,Setcolor,GetLinestyle,Texcom,WriteOutData,LLcrd
+Shade,basic1,7047,7157,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Enclosing,Joincrvs,Pcrd,PaO,Listplot,Textformat,Setcolor,Com2nd,Texcom,Dqq
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt
new file mode 100644
index 00000000000..0b2d9d40f7d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt
@@ -0,0 +1,118 @@
+Dispchoice,basic2,22,27
+Datetime,basic2,31,42,getdatetime
+Rotatepoint,basic2,46,56,Lcrd
+Translatepoint,basic2,60,70,Lcrd
+Scalepoint,basic2,74,84,Lcrd
+Reflectpoint,basic2,88,113,Lcrd
+Rotatedata,basic2,117,190,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom
+Translatedata,basic2,194,259,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Scaledata,basic2,263,352,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom
+Reflectdata,basic2,356,437,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom
+Mksegments,basic2,442,457,Listplot
+Mkcircles,basic2,462,482,Strsplit,Circledata
+MakeRarg,basic2,486,499,RSslash,Textformat
+Htickmark,basic2,503,526,Listplot,Expr
+Vtickmark,basic2,530,551,Listplot,Expr,180710to// tmp=MakeRarg
+Vtick,basic2,555,565,Listplot
+Htick,basic2,569,581,LLcrd,Listplot
+Setax,basic2,585,602
+Drwxy,basic2,606,699,Divoptions,Strsplit,Toupper,Arrowdata,Listplot,Expr,Letter,Addax
+Drwpt,basic2,703,712,Pointdata
+Drawpoint,basic2,715,743,MeasureDepth,Textformat,Com2nd,Drwpt,Setpen
+Addax,basic2,747,750
+Expr,basic2,754,768,Letter
+Letter,basic2,772,860,Divoptions,Removespace,RSslash,Setcolor,Com2nd,Lcrd,Texcom,Pcrd
+Letterrot,basic2,864,906,Divoptions,Letter,Setcolor,Com2nd,Dqq,Texcom
+Exprrot,basic2,910,953,Divoptions,Expr,Setcolor,Com2nd,Dqq,Texcom
+Slider,basic2,957,997,Toupper,Strsplit,Indexall,Putpoint,Listplot,Putonseg
+Putpoint,basic2,1001,1012,Textformat,Pcrd
+Putpoint,basic2,1016,1027,Textformat,Pcrd
+Bezierpt,basic2,1031,1056,Lcrd
+Bezier,basic2,1060,1072,BezierCurve
+BezierCurve,basic2,1075,1152,Divoptions,MeasureDepth,Lcrd,Bezierpt,Pcrd,Textformat,RSform,Bezier,Com2nd,Setcolor,GetLinestyle,Texcom
+Readcsvsla,basic2,1156,1204,Readplotdigdata,Divoptions,Translatedata
+Putbezierdata,basic2,1208,1270,Divoptions,Putpoint,Lcrd,Letter
+Bezierstart,basic2,1274,1276
+Mkbezierptcrv,basic2,1280,1306,Readcsvsla,MeasureDepth,Putbezierdata,Bezier
+Mkbeziercrv,basic2,1310,1321,MeasureDepth,Bezier
+Writebezier,basic2,1325,1367,Bezier,PaO,WriteOutData
+Readbezier,basic2,1371,1423,Divoptions,Toupper,ReadOutData,MeasureDepth,Putpoint,Bezier
+Ospline,basic2,1427,1486,Dotprod,Lcrd,Bezier
+CRspline,basic2,1490,1536,Lcrd,Reflectpoint,Bezier
+Beziersmooth,basic2,1540,1601,Bzspline,Putpoint,Lcrd,Bezier
+Beziersym,basic2,1605,1654,Bzsspline,Lcrd,Putpoint,Bezier
+Listbspline2bz,basic2,1658,1673,Lcrd
+Bspline,basic2,1677,1685,Listbspline2bz,BezierCurve
+MeetCurve,basic2,1689,1749,MeasureDepth,LLcrd,Lcrd
+Putonline,basic2,1753,1782,PutonLine,Divoptions,Lcrd,Putpoint
+Putonseg,basic2,1786,1823,LLcrd,Divoptions,Lcrd,Putonline,Pcrd,Textformat
+Putoncurve,basic2,1827,1869,Toupper,MeetCurve,Textformat,Pcrd
+CrossPoint,basic2,1873,1891,MeetCurve,Putpoint
+Periodfun,basic2,1895,1981,Toupper,Op,Plotdata,Textformat,Translatedata,Listplot
+Fourierseries,basic2,1985,2010,Assign,Plotdata
+Tabledatalight,basic2,2014,2095,Divoptions,Toupper,Tlistplot,Tsegrmv,Addax,Setwindow
+Tabledata,basic2,2099,2229,Divoptions,Toupper,Putpoint,Tgrid,Tlistplot,Tsegrmv,Addax,Setwindow
+Tseginfo,basic2,2233,2253
+Tsegrmv,basic2,2257,2299,Tseginfo,Changestyle,Tlistplot
+Tgrid,basic2,2303,2317
+Tlistplot,basic2,2321,2350,divoptions,Toupper,Tgrid,Listplot
+ChangeTablestyle,basic2,2354,2407,Indexall,Changestyle,Tlistplot
+Findcell,basic2,2411,2437,Tgrid
+Putcell,basic2,2441,2475,Findcell,Letter,Putcellexpr
+Putrow,basic2,2479,2487,Putcell
+Putrowexpr,basic2,2491,2497,Putrow
+PutcoL,basic2,2501,2509,Putcell
+PutcoLexpr,basic2,2513,2519,PutcoL
+Setrange,basic2,2523,2529,Pcrd
+RSform,basic2,2533,2567,PaO,Bracket,PPa
+RSslash,basic2,2571,2576
+Rform,basic2,2580,2590,PaO
+Defvar,basic2,2594,2638
+IftoR,basic2,2642,2681,PaO,Indexall,Bracket
+FortoR,basic2,2685,2714,PaO,Bracket
+Deffun,basic2,2718,2765,Bracket,Indexall,FortoR,IftoR,RSform,PaO
+Inwindow,basic2,2769,2781
+Dashlinedata,basic2,2785,2858
+Windispg,basic2,2862,2925,Drwxy,MeasureDepth,Dashlinedata,Textformat
+WritetoRS,basic2,2929,3162,WritetoSci,Lcrd,c,Assignadd,Datetime,source,Setwindow,Textformat,Openfile,Cindyname,RSform,PPa,iswindows,Indexall,Dqq,PaO
+Extractdata,basic2,3166,3222,Divoptions,ReadOutData,Com2nd,Setcolor,GetLinestyle,Texcom
+RemoveOut,basic2,3226,3236
+ReadOutData,basic2,3240,3353,Divoptions,Strsplit,Toupper,Pcrd,Textformat
+WriteOutData,basic2,3357,3419,Flattenlist,MeasureDepth
+Makeshell,basic2,3423,3526,kc
+Convsjiswin,basic2,3530,3554,nkfwin,nkfcpdel,isexists,pathsep
+Makebat,basic2,3558,3698,kc,iswindows,isincludefull,isexists,Indexall
+Addpackage,basic2,3702,3720
+Usegraphics,basic2,3724,3734,Addpackage
+Viewtex,basic2,3738,3811,iswindows,Makebat,kc,Makeshell,WritetoRS
+Viewparent,basic2,3815,3833,isexists,iswindows,Makebat,Makeshell,WritetoRS,kc
+Makecmdlist,basic2,3837,3867
+Savecmdlist,basic2,3871,3877
+Quicksort,basic2,3881,3901
+Lessstr,basic2,3905,3932
+Figpdf,basic2,3936,4053,Removespace,isexists
+Makehelplist,basic2,4057,4101,PPa
+Helplist,basic2,4105,4159,Makehelplist
+Help,basic2,4163,4214
+Helpkey,basic2,4218,4236,Help
+Slidework,basic2,4240,4259,isexists,makedir,pathsep,Changework
+Setslidemargin,basic2,4263,4266
+Setslidepage,basic2,4270,4295
+Setslidemain,basic2,4299,4323
+Setslidebody,basic2,4327,4364
+Setslidehyper,basic2,4368,4446,Divoptions,Addpackage,Indexall,Toupper
+Settitle,basic2,4450,4521,Toupper,Indexall
+Maketitle,basic2,4525,4620,iswindows,Makebat,Makeshell,kc,Cindyname,isexists,PaO
+Repeatsameslide,basic2,4624,4779,Indexall
+Presentation,basic2,4783,5448,readfile2str,isexists,Removespace,fileslist,Repeatsameslide
+Mkslides,basic2,5452,5516,Fillblack,Changework,Setdirectory,setexec,isexists,Presentation,iswindows,Makebat,Makeshell,kc,pathsep,Fillrestore
+Mkslidesummary,basic2,5520,5585,Fillblack,pathsep,ismacosx,setexec,PPa,PaO,CalcbyR,iswindows,Makebat,Makeshell,kc,Changework,Fillstore
+Example,basic2,5589,5613
+BBdata,basic2,5617,5760,Divoptions,Toupper,ismacosx,iswindows,kc,Sprintf,Removespace
+Findfun,basic2,5764,5827,Removespace,Indexall
+Extractfun,basic2,5831,5848,Indexall,Findfun
+Extractall,basic2,5857,5884
+Copyketcindyjs,basic2,5888,5938,iswindows,Dqq,kc
+Ketjsoption,basic2,5942,5943,Setketcindyjs
+Setketcindyjs,basic2,5947,5964,Divoptions
+Mkketcindyjs,basic2,5968,6283,Strsplit,Toupper,Copyketcindyjs,isexists,Extractfun,Readcsv,Extractall,pathsep,Readlines,use,Removespace,Dqq,Indexall,rgb
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt
new file mode 100644
index 00000000000..33f9e5bdf12
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt
@@ -0,0 +1,401 @@
+Ketinit():=Ketinit("fig",1,[-5,5],[-5,5]); //181001
+Ketinit(Arg):=(//181001from
+ if(isstring(Arg),
+ Ketinit(Arg,1,[-5,5],[-5,5]);
+ ,
+ Ketinit("fig",Arg,[-5,5],[-5,5]);
+ );
+);
+Ketinit(work,sy,rangex,rangey):=(//181001to
+ regional(pt,tmp,tmp1,tmp2,letterc,boxc,shadowc,mboxc);
+ PenThickInit=8;
+ ULEN="1cm";
+ MEMORI=0.05;//18.01.15from
+ MEMORIInit=MEMORI;
+ MEMORINow=MEMORI;
+ MARKLEN=0.05;
+ MARKLENInit=MARKLEN; //180504
+ MARKLENNow= MARKLEN;
+ GENTEN=[0,0];//18.01.15until
+ KETPICLAYER=20;
+ MilliIn=1/2.54*1000;
+ PenThick=round(MilliIn*0.02);
+ PenThickInit=PenThick;
+ TenSizeInit=0.02;
+ TenSize=TenSizeInit;
+ YaSize=1; YaAngle=18; YaPosition=1;
+ YaCut=0; YasenStyle="dr,1"; Yajiristyle="tf";
+ KETPICCOUNT=1;
+ KCOLOR=[0,0,0];
+ GLIST=[];
+ GCLIST=[];
+ GOUTLIST=[];
+ POUTLIST=[];
+ VLIST=[];
+ FUNLIST=[];
+ LETTERlist=[];
+ COM0thlist=[];
+ COM1stlist=[];
+ COM2ndlist=[];
+ COM2ndlistb=[]; //180612
+ ADDAXES="1";
+ AXSTYLE=["l","x","e","y","n","O","sw","","",""]; //181216
+ AXCOUNT=1; //181215
+ LFmark=unicode("000a");
+ CRmark=unicode("000d");//16.12.13
+ Dq=unicode("0022");
+ CommonMake=0;//180610
+ WaitUnit=10;
+ CONTINUED=0;
+ OutComList=[];
+ OutFileLIst=[]; // 15.10.22
+ FigPdfList=[]; // 16.04.08
+ Fillstore(); //181212
+ ADDPACK=[]; // 16.05.16
+ GPACK="tpic"; //180817
+ ErrFlag=0;
+ KETJSOP=[]; //190129
+ ArrowlineNumber=1; // 15.01.05
+ ArrowheadNumber=1;
+ BezierNumber=1; //15.01.03
+ SCALEX=1;
+ SCALEY=sy;
+ XMIN=rangex_1/SCALEX;
+ XMAX=rangex_2/SCALEX;
+ YMIN=rangey_1/SCALEY;
+ YMAX=rangey_2/SCALEY;
+ Setwindow("Msg=n"); // 16.05.31
+);
+Fillstore():=(
+ regional(tmp,tmp1,out,dtL,txtL,clrL,txt,clr,nn,jj);
+ dtL=[ //181209from
+ ["Figure",[1,0.29,0.29]],["Parent",[1,1,0]],
+ ["ParaF",[0,1,1]],["Flip",[0,0,1]],["Anime",[0.51,0.95,1]],
+ ["Title",[0,1,0]],["Slide",[0.47,0,0.72]],["Digest",[1,0.74,0.47]],
+ ["KeTJS",[0,1,1]],["KeTJSoff",[0,1,1]],
+ ["Objview",[0,1,0]]
+ ];
+ txtL=apply(dtL,#_1);
+ clrL=apply(dtL,#_2);
+ tmp1=allelements();
+ tmp1=select(tmp1,indexof(#.name,"Text")>0);
+ out=[];
+ forall(1..(length(tmp1)),nn,
+ tmp=tmp1_nn;
+ txt=tmp.text;
+ tmp=select(1..(length(txtL)),txtL_#==txt);
+ if(length(tmp)>0,
+ jj=tmp_1;
+ clr=clrL_jj;
+ tmp=tmp1_nn;
+ tmp.fillcolor=clr;
+ ,
+ tmp=tmp1_nn;
+ clr=tmp.fillcolor;
+ );
+ out=append(out,[tmp.name,clr,tmp.text]);
+ ); //181209to
+ out;
+);
+Setwindow():=Setwindow("Msg=yes");
+Setwindow(str):=(
+ regional(tmp,tmp1,tmp2,msg);
+ msg="y";
+ tmp=indexof(str,"="); // 16.02.10
+ tmp1=Toupper(substring(str,tmp,tmp+1));
+ if(tmp1=="N",msg="n");
+ if((ispoint(SW) & ispoint(NE)),
+ tmp1=Lcrd(SW);
+ tmp2=Lcrd(NE);
+ XMIN=tmp1_1; XMAX=tmp2_1;
+ YMIN=tmp1_2; YMAX=tmp2_2;
+ ,
+ Putpoint("SW",Pcrd([XMIN,YMIN]));
+ Putpoint("NE", Pcrd([XMAX,YMAX]));
+ );
+ if(msg=="y",
+ println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
+ );
+ layer(KETPICLAYER);
+ autoclearlayer(KETPICLAYER,true);
+ drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
+ Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
+);
+Setwindow(xrange,yrange):=(
+ XMIN=xrange_1;
+ XMAX=xrange_2;
+ YMIN=yrange_1;
+ YMAX=yrange_2;
+ Putpoint("SW",[XMIN,YMIN]);//181016
+ Putpoint("NE",[XMAX,YMAX]);//181016
+);
+Textformat(value,dig):=(
+ regional(vv,tmp,tmp1);
+ if(islist(value),
+ tmp1="[";
+ forall(value,
+ tmp1=tmp1+Textformat(#,dig)+",";
+ );
+ if(length(tmp1)>1, //18.01.29from
+ tmp1=substring(tmp1,0,length(tmp1)-1);
+ );
+ tmp1=tmp1+"]"; //18.01.29until
+ ,
+ if(ispoint(value) % isstring(value),
+ if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
+ ,
+ tmp1=format(value,dig);
+ );
+ );
+ tmp1;
+);
+MeasureDepth(list):=(
+ regional(tmp,tmp1,Depth,Flg);
+ Flg=0;
+ Depth=0;
+ if(length(list)>0, //180501
+ if(ispoint(list),
+ Depth=0;
+ Flg=1;
+ ,
+ tmp1=select(1..(length(list)),length(list_#)>0);//17.05.21from
+ tmp=list_(tmp1_1);//17.05.21until
+ );
+ repeat(4,
+ if(Flg==0,
+ if(islist(tmp),
+ tmp=tmp_1;
+ Depth=Depth+1;
+ ,
+ if(ispoint(tmp),Depth=Depth+1);
+ Flg=1;
+ );
+ );
+ );
+ );//180501
+ Depth;
+);
+Drwxy():=Drwxy(0,[]); //190103from
+Drwxy(Arg):=(
+ if(islist(Arg),Drwxy(0,Arg); Drwxy(Arg,[]));
+);
+Drwxy(add):=Drwxy(add,[]);
+Drwxy(add,optionsorg):=( //190103to
+ regional(options,color,eqL,strL,org,xrng,yrng,ax,st,nn,size,
+ linesty,colorax,colorla,tmp,tmp1,tmp2);
+ options=optionsorg;
+ tmp=Divoptions(options);
+ color=tmp_(length(tmp)-2);
+ eqL=tmp_5;
+ org=GENTEN;
+ xrng=[XMIN,XMAX]; //190103
+ yrng=[YMIN,YMAX]; //190103
+ ax=AXSTYLE;
+ linesty=ax_8;
+ if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9));
+ if(length(colorax)>0,
+ colorax="Color="+colorax;
+ );
+ if(isstring(ax_10),colorla=ax_10,colorla=text(ax_10));
+ if(length(colorla)>0, //181217from
+ colorla="Color="+colorla;
+ ,
+ if(length(colorax)>0,
+ colorla=colorax;
+ );
+ ); //181217to
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="O", //190103from
+ org=parse(tmp_2);
+ options=remove(options,[#]);
+ ); //190103to
+ if(tmp1=="X",
+ xrng=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="Y",
+ yrng=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="A",
+ tmp2=tokenize(tmp_2,",");
+ st=1; nn=1;
+ if(isreal(tmp2_1),
+ st=2;
+ nn=tmp2_1;
+ );
+ forall(st..(length(tmp2)),
+ tmp=tmp2_#;
+ if(length(tmp)>0,ax_nn=tmp);
+ nn=nn+1;
+ );
+ options=remove(options,[#]);
+ );
+ );
+ options=append(options,linesty); //181216
+ if(substring(ax_1,0,1)=="a",
+ strL=select(options,isstring(#)); //181216
+ tmp=select(strL,contains(["dr","da","do","id"],substring(#,0,2)));
+ if(length(tmp)==0,options=append(options,YasenStyle));
+ tmp=substring(ax_1,1,length(ax_1)); //181216[2lines]
+ if(length(tmp)>0,size=parse(tmp),size=YaSize);
+ tmp1=concat(options,[size,YaAngle,YaPosition,YaCut,colorax]);//181216
+ tmp=[[xrng_1,org_2],[xrng_2,org_2]];
+ Arrowdata("axx"+text(AXCOUNT),tmp,tmp1);
+ tmp=[[org_1,yrng_1],[org_1,yrng_2]];
+ Arrowdata("axy"+text(AXCOUNT),tmp,tmp1);
+ ,
+ tmp=[[xrng_1,org_2],[xrng_2,org_2]];
+ tmp1=append(options,colorax);//181216
+ Listplot("axx"+text(AXCOUNT),tmp,tmp1);
+ tmp=[[org_1,yrng_1],[org_1,yrng_2]];
+ Listplot("axy"+text(AXCOUNT),tmp,tmp1);
+ );
+ AXCOUNT=AXCOUNT+1;
+ Expr([[xrng_2,org_2],ax_3,ax_2],[colorla]);//181216[3lines]
+ Expr([[org_1,yrng_2],ax_5,ax_4],[colorla]);
+ Letter([org,ax_7,ax_6],[colorla]);
+ if(add==0, //190103
+ Addax(0);
+ );
+);
+Dashlinedata(dataorg,sen,gap,ptn):=(
+ regional(data,eps,dtall,len,lenlist,ii,lenall,kari,
+ naga,tobi,nsen,seglist,segunit,hajime,owari,jj,
+ flg,tt,ptL,out,tmp,tmp1,tmp2);
+ eps=10.0^(-6);
+ if(isstring(dataorg),data=parse(dataorg),data=dataorg);
+ dtall=length(data);
+ out=[];
+ len=0; lenlist=[0];
+ forall(2..dtall,ii,
+ len=len+|data_ii-data_(ii-1)|;
+ lenlist=append(lenlist,len);
+ );
+ lenall=lenlist_dtall;
+ if(lenall>0,
+ kari=(sen+gap)*0.1;naga=sen*0.1;tobi=gap*0.1;
+ if(|data_1-data_dtall|<eps,
+ nsen=max([re(ceil(lenall/kari)),3]);
+ segunit=lenall/nsen;
+ naga=segunit*sen/(sen+gap);
+ tobi=segunit*gap/(sen+gap);
+ seglist=apply(0..(nsen-1),#*segunit);
+ ,
+ if(ptn==0,
+ nsen=max([re(ceil((lenall+tobi)/kari)),3]);
+ segunit=lenall*(sen+gap)/(nsen*sen+(nsen-1)*gap);
+ naga=segunit*sen/(sen+gap);
+ tobi=segunit*gap/(sen+gap);
+ seglist=apply(0..(nsen-1),#*segunit);
+ ,
+ nsen=max([re(ceil((lenall+naga)/kari)),3]);
+ segunit=lenall*(sen+gap)/((nsen-1)*sen+nsen*gap);
+ naga=segunit*sen/(sen+gap);
+ tobi=segunit*gap/(sen+gap);
+ seglist=apply(0..(nsen-2),tobi+#*segunit);
+ );
+ );
+ hajime=1;owari=1;
+ forall(1..(length(seglist)),ii,
+ len=seglist_ii;
+ flg=0;
+ forall(owari..dtall,jj,
+ if(flg==0,
+ if(len<lenlist_jj-eps,
+ flg=jj;
+ );
+ );
+ );
+ if(flg>0,hajime=flg-1);
+ flg=0;
+ forall(hajime..dtall,jj,
+ if(flg==0,
+ if(len+naga<lenlist_jj-eps,
+ flg=jj;
+ );
+ );
+ );
+ if(flg>0,owari=flg-1);
+ tt=len-lenlist_hajime;
+ tt=tt/(lenlist_(hajime+1)-lenlist_hajime);
+ tmp=data_hajime+tt*(data_(hajime+1)-data_hajime);
+ ptL=[tmp];
+ forall((hajime+1)..owari,jj,
+ ptL=append(ptL,data_jj);
+ );
+ tt=(len+naga-lenlist_owari);
+ tt=tt/(lenlist_(owari+1)-lenlist_owari);
+ tmp=data_owari+tt*(data_(owari+1)-data_owari);
+ ptL=append(ptL,tmp);
+ out=append(out,ptL);
+ );
+ );
+ out;
+);
+Windispg():=(
+ if(ADDAXES=="1", //181215from
+ Drwxy();
+ ADDAXES="0";
+ ); //181215to
+ Windispg(GCLIST); //190125
+);
+Windispg(gcLorg):=( //190125
+ regional(gcL,Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,tmp4,opcindy);
+ gcL=gcLorg; //190125from
+ if(length(gcL)>0,
+ if(!islist(gcL_1),gcL=[gcL]);
+ ); //190125to
+ gsave();
+ layer(KETPIClayer);
+ forall(gcL,Nj,
+ if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
+ if(islist(Dt) & length(Dt)>0, // 12.19,12.22
+ tmp=MeasureDepth(Dt);
+ if(tmp==1,Dt=[Dt]);
+ opcindy=Nj_3;
+ tmp=Nj_2; //190119from
+ if(!islist(tmp),tmp=[tmp,""]); //190123
+ if(tmp_1<0,tmp1=0,tmp1=tmp_1); //190119from
+ if(tmp1<10,
+ forall(Dt,Nk,
+ if(length(Nk)>1,
+ tmp3="";
+ if(indexof(opcindy,"color")==0, //190122from
+ tmp3=tmp3+",linecolor->"+KCOLOR;
+ );
+ tmp3=tmp3+opcindy;
+ if(tmp1==0, //190126from
+ if((length(tmp_2)>0)&(indexof(opcindy,"size")==0),
+ tmp3=tmp3+",size->"+tmp_2;
+ ); //190124to
+ tmp="connect("+Textformat(Nk,5)+tmp3+");";//190125
+ parse(tmp);
+ ,
+ if(tmp1==1,
+ tmp4=Dashlinedata(Nk,2.5,2.5,0);
+ forall(tmp4,
+ tmp="connect("+Textformat(#,5)+tmp3+");";
+ parse(tmp);
+ );
+ ,
+ tmp3=",dashtype->"+text(tmp1)+tmp3;
+ forall(1..(length(Nk)-1),
+ tmp="draw("+Textformat([Nk_#,Nk_(#+1)],5)+tmp3+");";
+ parse(tmp);
+ );
+ );
+ );
+ ,
+ tmp="draw("+text(Nk_1)+opcindy+");"; // 14.12.31
+ parse(tmp);
+ ); //190126to
+ );
+ );
+ );
+ );
+ grestore();
+ layer(0);
+);
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt
new file mode 100644
index 00000000000..400c3a7d726
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt
@@ -0,0 +1,39 @@
+Changesetting
+Changework
+Cindyname
+Com0th
+Com1st
+Com2nd
+Com2ndpre
+Copyketcindyjs
+Dashline
+Definecolor
+Dottedline
+Drwline
+Example
+Fontsize
+Help
+Helplist
+Invdashline
+Inwindow
+Ketjsoption
+Mkketcindyjs
+Presentation
+Putbezierdata
+Putpoint
+Readcsvsla
+RSform
+RSslash
+Setketcindyjs
+Setslidebody
+Setslidehyper
+Texcom
+
+Ketinit
+Windispg
+Fillstore
+Setwindow
+Drwxy
+MeasureDepth
+Dashlinedata
+Textformat
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js
new file mode 100644
index 00000000000..5870742d18f
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js
@@ -0,0 +1,296 @@
+(function() {
+ "use strict";
+
+ var log = console.log.bind(console);
+ var fonts = {};
+ var waitingInstances = [];
+ var repaintTimeout = null;
+
+ // Load required components: WebFontLoader and katex
+
+ var WebFontLoader = null;
+ var katex = null;
+
+ CindyJS.loadScript("WebFont", "webfont.js", fontLoaderReady);
+ CindyJS.loadScript("katex", "katex/katex.min.js", katexReady);
+
+ function fontLoaderReady() {
+ log("WebFontLoader is now available.");
+ WebFontLoader = window.WebFont;
+ loadFonts(["KaTeX_Math:i4", "KaTeX_Main:n4"]); // pre-load common fonts
+ someScriptLoaded();
+ }
+
+ function katexReady() {
+ log("KaTeX is now available.");
+ katex = window.katex;
+ someScriptLoaded();
+ }
+
+ function someScriptLoaded() {
+ if (allScriptsLoaded())
+ triggerRepaints();
+ }
+
+ function allScriptsLoaded() {
+ return katex && WebFontLoader;
+ }
+
+ // Load common and used fonts
+
+ function loadFonts(fontsToLoad) {
+ log("Loading ", fontsToLoad);
+ fontsToLoad.forEach(function(fvd) {
+ fonts[fvd] = "loading";
+ });
+ WebFontLoader.load({
+ custom: {
+ families: fontsToLoad,
+ testStrings: {
+ "KaTeX_Size1": "()[]",
+ "KaTeX_Size2": "()[]",
+ "KaTeX_Size3": "()[]",
+ "KaTeX_Size4": "()[]"
+ },
+ urls: [CindyJS.getBaseDir() + "katex/katex.min.css"]
+ },
+ fontactive: fontActive
+ });
+ }
+
+ function fontActive(font, variant) {
+ var fvd = font + ":" + variant;
+ log("Loaded " + fvd);
+ fonts[fvd] = true; // done loading
+ if (repaintTimeout === null)
+ repaintTimeout = setTimeout(triggerRepaints, 0);
+ }
+
+ // Handle repainting
+
+ function triggerRepaints() {
+ repaintTimeout = null;
+ var instances = waitingInstances;
+ waitingInstances = [];
+ for (var i = 0; i < instances.length; ++i)
+ instances[i].evokeCS(""); // trigger repaint
+ }
+
+ function haveToWait(i) {
+ if (!waitingInstances.some(function(j) {
+ return i === j;
+ })) {
+ waitingInstances.push(i);
+ }
+ }
+
+ // Plugin API
+
+ CindyJS.registerPlugin(1, "katex", plugin);
+
+ function plugin(api) {
+ var storage = {instance: api.instance, cache: {}, misses:0};
+ api.setTextRenderer(
+ katexRenderer.bind(storage),
+ katexHtml.bind(storage));
+ }
+
+ // Text box, with same api as a prepared KaTeX box but using current font
+
+ function textBox(ctx, text) {
+ this.width = ctx.measureText(text).width;
+ this.renderAt = function(x, y) {
+ ctx.fillText(text, x, y);
+ };
+ }
+
+ textBox.prototype.height = 0;
+
+ textBox.prototype.depth = 0;
+
+ // Custom macros defined specifically for Cinderella / CindyJS
+
+ var macros = {
+ "\\mbox": "\\text",
+ "\\lamda": "\\lambda",
+ "\\my": "\\mu",
+ "\\ny": "\\nu",
+ "\\ypsilon": "\\upsilon",
+ "\\Alpha": "\\mathrm{A}",
+ "\\Beta": "\\mathrm{B}",
+ "\\Epsilon": "\\mathrm{E}",
+ "\\Zeta": "\\mathrm{Z}",
+ "\\Eta": "\\mathrm{H}",
+ "\\Iota": "\\mathrm{I}",
+ "\\Kappa": "\\mathrm{K}",
+ "\\Lamda": "\\Lambda",
+ "\\Mu": "\\mathrm{M}",
+ "\\My": "\\Mu",
+ "\\Nu": "\\mathrm{N}",
+ "\\Ny": "\\Nu",
+ "\\Omicron": "\\mathrm{O}",
+ "\\Rho": "\\mathrm{P}",
+ "\\Tau": "\\mathrm{T}",
+ "\\Ypsilon": "\\Upsilon",
+ "\\Chi": "\\mathrm{X}",
+ "\\dots": "\\ldots",
+ "\\C": "\\mathbb{C}",
+ "\\H": "\\mathbb{H}",
+ "\\N": "\\mathbb{N}",
+ "\\P": "\\mathbb{P}",
+ "\\Q": "\\mathbb{Q}",
+ "\\R": "\\mathbb{R}",
+ "\\Z": "\\mathbb{Z}",
+ "\\slash": "/",
+ "\\operatorname": "\\text", // till KaTeX #145 gets resolved
+ "\\arccot": "\\operatorname{arccot}",
+ "\\arcsec": "\\operatorname{arcsec}",
+ "\\arccsc": "\\operatorname{arccsc}",
+ };
+
+ // Report whether we are ready
+
+ var firstMessage = true;
+
+ function katexRenderer(ctx, text, x, y, align, fontSize, lineHeight) {
+ var key = fontSize + "," + lineHeight + ":" + text;
+ var fontsMissing = false;
+ var fontsToLoad = {};
+ var parts, rows, row, n, i, j;
+ if (this.cache.hasOwnProperty(key)) {
+ rows = this.cache[key];
+ } else {
+ var opts = {
+ fontSize: fontSize,
+ macros: macros
+ };
+ parts = text.split("$");
+ row = [];
+ rows = [row];
+ n = parts.length;
+ if (n > 1 && !allScriptsLoaded()) {
+ if (firstMessage) {
+ log("KaTeX is not ready yet.");
+ firstMessage = false;
+ }
+ haveToWait(this.instance);
+ return;
+ }
+ for (i = 0; i < n; ++i) {
+ var part = parts[i];
+ var box;
+ if ((i & 1) === 0) { // plain text not TeX
+ if (part.indexOf("\n") === -1) {
+ row.push(new textBox(ctx, part));
+ } else {
+ var rows2 = part.split("\n");
+ row.push(new textBox(ctx, rows2[0]));
+ for (j = 1; j < rows2.length; ++j) {
+ row = [new textBox(ctx, rows2[j])];
+ rows.push(row);
+ }
+ }
+ } else {
+ try {
+ var tex = parts[i].replace(/°/g, "\\degree");
+ box = katex.canvasBox(tex, ctx, opts);
+ row.push(box);
+ for (var font in box.fontsUsed) {
+ var fontState = fonts[font];
+ if (fontState !== true) {
+ fontsMissing = true;
+ if (fontState === undefined)
+ fontsToLoad[font] = true;
+ }
+ }
+ } catch(e) {
+ console.error(e);
+ row.push(new textBox(ctx, "$" + parts[i] + "$"));
+ }
+ }
+ }
+ if (++this.misses === 1024) {
+ this.misses = 0;
+ this.cache = {};
+ }
+ if (!fontsMissing) {
+ this.cache[key] = rows;
+ }
+ }
+ if (fontsMissing) {
+ fontsToLoad = Object.keys(fontsToLoad);
+ if (fontsToLoad.length !== 0) {
+ loadFonts(fontsToLoad);
+ }
+ haveToWait(this.instance);
+ } else {
+ var left = Infinity;
+ var right = -Infinity;
+ var top = y - 0.7 * 1.2 * fontSize;
+ var bottom = -Infinity;
+ for (i = 0; i < rows.length; ++i) {
+ var total = 0;
+ var pos = x;
+ row = rows[i];
+ n = row.length;
+ for (j = 0; j < n; ++j)
+ total += row[j].width;
+ var pos = x - align * total;
+ for (j = 0; j < n; ++j) {
+ row[j].renderAt(pos, y);
+ if (left > pos) left = pos;
+ if (top > y - row[j].height) top = y - row[j].height;
+ if (bottom < y + row[j].depth) bottom = y + row[j].depth;
+ pos += row[j].width;
+ if (right < pos) right = pos;
+ }
+ y += lineHeight;
+ // TODO: take vertical dimensions of formulas into account
+ }
+ bottom = Math.max(bottom, y - lineHeight + 0.3 * 1.2 * fontSize);
+ return {
+ left: left,
+ right: right,
+ top: top,
+ bottom: bottom
+ };
+ }
+ };
+
+ function katexHtml(element, text) {
+ var opts = {
+ macros: macros
+ };
+ var parts = text.split("$");
+ var n = parts.length;
+ if (n > 1 && !allScriptsLoaded()) {
+ if (firstMessage) {
+ log("KaTeX is not ready yet.");
+ firstMessage = false;
+ }
+ haveToWait(this.instance);
+ return false;
+ }
+ while (element.firstChild)
+ element.removeChild(element.firstChild);
+ for (var i = 0; i < n; ++i) {
+ var text = parts[i];
+ if ((i & 1) === 0) {
+ if (text.indexOf("\n") !== -1) {
+ var rows = text.split("\n");
+ element.appendChild(document.createTextNode(rows[0]));
+ for (var j = 1; j < rows.length; ++j) {
+ element.appendChild(document.createElement("br"));
+ element.appendChild(document.createTextNode(rows[j]));
+ }
+ } else {
+ element.appendChild(document.createTextNode(text));
+ }
+ } else {
+ var span = document.createElement("span");
+ katex.render(text, span, opts);
+ element.appendChild(span);
+ }
+ }
+ }
+})();
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf
new file mode 100644
index 00000000000..da5797ffcce
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff
new file mode 100644
index 00000000000..37db672e821
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2 b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2
new file mode 100644
index 00000000000..48820424893
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf
new file mode 100644
index 00000000000..06f39d3a299
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff
new file mode 100644
index 00000000000..cf3b4b79e5b
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2 b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2
new file mode 100644
index 00000000000..5f8c4bfa455
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css
new file mode 100644
index 00000000000..d6fb8374d91
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css
@@ -0,0 +1 @@
+@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.eot);src:url(fonts/KaTeX_AMS-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'),url(fonts/KaTeX_AMS-Regular.woff) format('woff'),url(fonts/KaTeX_AMS-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.eot);src:url(fonts/KaTeX_Caligraphic-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Bold.ttf) format('truetype');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.eot);src:url(fonts/KaTeX_Caligraphic-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.eot);src:url(fonts/KaTeX_Fraktur-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'),url(fonts/KaTeX_Fraktur-Bold.ttf) format('truetype');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.eot);src:url(fonts/KaTeX_Fraktur-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'),url(fonts/KaTeX_Fraktur-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.eot);src:url(fonts/KaTeX_Main-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Bold.woff2) format('woff2'),url(fonts/KaTeX_Main-Bold.woff) format('woff'),url(fonts/KaTeX_Main-Bold.ttf) format('truetype');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.eot);src:url(fonts/KaTeX_Main-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Italic.woff2) format('woff2'),url(fonts/KaTeX_Main-Italic.woff) format('woff'),url(fonts/KaTeX_Main-Italic.ttf) format('truetype');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.eot);src:url(fonts/KaTeX_Main-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Regular.woff2) format('woff2'),url(fonts/KaTeX_Main-Regular.woff) format('woff'),url(fonts/KaTeX_Main-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.eot);src:url(fonts/KaTeX_Math-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Math-Italic.woff2) format('woff2'),url(fonts/KaTeX_Math-Italic.woff) format('woff'),url(fonts/KaTeX_Math-Italic.ttf) format('truetype');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Regular.eot);src:url(fonts/KaTeX_SansSerif-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'),url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'),url(fonts/KaTeX_SansSerif-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.eot);src:url(fonts/KaTeX_Script-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Script-Regular.woff2) format('woff2'),url(fonts/KaTeX_Script-Regular.woff) format('woff'),url(fonts/KaTeX_Script-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.eot);src:url(fonts/KaTeX_Size1-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size1-Regular.woff) format('woff'),url(fonts/KaTeX_Size1-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.eot);src:url(fonts/KaTeX_Size2-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size2-Regular.woff) format('woff'),url(fonts/KaTeX_Size2-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.eot);src:url(fonts/KaTeX_Size3-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size3-Regular.woff) format('woff'),url(fonts/KaTeX_Size3-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.eot);src:url(fonts/KaTeX_Size4-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size4-Regular.woff) format('woff'),url(fonts/KaTeX_Size4-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.eot);src:url(fonts/KaTeX_Typewriter-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'),url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'),url(fonts/KaTeX_Typewriter-Regular.ttf) format('truetype');font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:400 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathrm{font-style:normal}.katex .textit{font-style:italic}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .mord+.mop{margin-left:.16667em}.katex .mord+.mbin{margin-left:.22222em}.katex .mord+.mrel{margin-left:.27778em}.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.minner{margin-left:.16667em}.katex .mop+.mrel{margin-left:.27778em}.katex .mop+.minner{margin-left:.16667em}.katex .mbin+.minner,.katex .mbin+.mop,.katex .mbin+.mopen,.katex .mbin+.mord{margin-left:.22222em}.katex .mrel+.minner,.katex .mrel+.mop,.katex .mrel+.mopen,.katex .mrel+.mord{margin-left:.27778em}.katex .mclose+.mop{margin-left:.16667em}.katex .mclose+.mbin{margin-left:.22222em}.katex .mclose+.mrel{margin-left:.27778em}.katex .mclose+.minner,.katex .minner+.mop,.katex .minner+.mord,.katex .mpunct+.mclose,.katex .mpunct+.minner,.katex .mpunct+.mop,.katex .mpunct+.mopen,.katex .mpunct+.mord,.katex .mpunct+.mpunct,.katex .mpunct+.mrel{margin-left:.16667em}.katex .minner+.mbin{margin-left:.22222em}.katex .minner+.mrel{margin-left:.27778em}.katex .minner+.minner,.katex .minner+.mopen,.katex .minner+.mpunct{margin-left:.16667em}.katex .mbin.mtight,.katex .mclose.mtight,.katex .minner.mtight,.katex .mop.mtight,.katex .mopen.mtight,.katex .mord.mtight,.katex .mpunct.mtight,.katex .mrel.mtight{margin-left:0}.katex .mclose+.mop.mtight,.katex .minner+.mop.mtight,.katex .mop+.mop.mtight,.katex .mop+.mord.mtight,.katex .mord+.mop.mtight{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.negativemediumspace{margin-left:-.22222em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.sixmuspace{width:.333333em}.katex .mspace.eightmuspace{width:.444444em}.katex .mspace.enspace{width:.5em}.katex .mspace.twelvemuspace{width:.666667em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{width:100%}.katex .overline .overline-line:before,.katex .underline .underline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .overline .overline-line:after,.katex .underline .underline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid #000}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist{text-align:center}.katex .mtable .col-align-l>.vlist{text-align:left}.katex .mtable .col-align-r>.vlist{text-align:right} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js
new file mode 100644
index 00000000000..b66e0aca87a
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js
@@ -0,0 +1,5 @@
+(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.katex=e()}})(function(){var e,t,r;return function a(e,t,r){function i(n,l){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!l&&o)return o(n,!0);if(s)return s(n,!0);var u=new Error("Cannot find module '"+n+"'");throw u.code="MODULE_NOT_FOUND",u}var h=t[n]={exports:{}};e[n][0].call(h.exports,function(t){var r=e[n][1][t];return i(r?r:t)},h,h.exports,a,e,t,r)}return t[n].exports}var s=typeof require=="function"&&require;for(var n=0;n<r.length;n++)i(r[n]);return i}({1:[function(e,t,r){var a=e("./src/ParseError");var i=e("./src/Settings");var s=e("./src/buildHTML");var n=e("./src/buildTree");var l=e("./src/canvasRenderer");var o=e("./src/parseTree");var u=e("./src/utils");var h=function(e,t,r){u.clearNode(t);var a=new i(r);var s=o(e,a);var l=n(s,e,a).toNode();t.appendChild(l)};if(typeof document!=="undefined"){if(document.compatMode!=="CSS1Compat"){typeof console!=="undefined"&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your "+"website has a suitable doctype.");h=function(){throw new a("KaTeX doesn't work in quirks mode.")}}}var c=function(e,t){var r=new i(t);var a=o(e,r);return n(a,e,r).toMarkup()};var p=function(e,t,r,a,n){var u=new i(n);var h=o(e,u);var c=s(h,u.initialOptions());l.render(c,t,r,a,n)};var m=function(e,t,r){var a=new i(r);var n=o(e,a);var u=s(n,a.initialOptions());return l.prepare(u,t,r)};var f=function(e,t){var r=new i(t);return o(e,r)};t.exports={render:h,renderToString:c,renderToCanvas:p,canvasBox:m,__parse:f,ParseError:a}},{"./src/ParseError":6,"./src/Settings":8,"./src/buildHTML":11,"./src/buildTree":13,"./src/canvasRenderer":14,"./src/parseTree":23,"./src/utils":26}],2:[function(e,t,r){"use strict";function a(e){if(!e.__matchAtRelocatable){var t=e.source+"|()";var r="g"+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"");e.__matchAtRelocatable=new RegExp(t,r)}return e.__matchAtRelocatable}function i(e,t,r){if(e.global||e.sticky){throw new Error("matchAt(...): Only non-global regexes are supported")}var i=a(e);i.lastIndex=r;var s=i.exec(t);if(s[s.length-1]==null){s.length=s.length-1;return s}else{return null}}t.exports=i},{}],3:[function(e,t,r){var a=e("match-at");var i=e("./ParseError");function s(e){this.input=e;this.pos=0}function n(e,t,r,a){this.text=e;this.start=t;this.end=r;this.lexer=a}n.prototype.range=function(e,t){if(e.lexer!==this.lexer){return new n(t)}return new n(t,this.start,e.end,this.lexer)};var l=new RegExp("([ \r\n ]+)|"+"([!-\\[\\]-\u2027\u202a-\ud7ff\uf900-\uffff]"+"|[\ud800-\udbff][\udc00-\udfff]"+"|\\\\(?:[a-zA-Z]+|[^\ud800-\udfff])"+")");s.prototype.lex=function(){var e=this.input;var t=this.pos;if(t===e.length){return new n("EOF",t,t,this)}var r=a(l,e,t);if(r===null){throw new i("Unexpected character: '"+e[t]+"'",new n(e[t],t,t+1,this))}var s=r[2]||" ";var o=this.pos;this.pos+=r[0].length;var u=this.pos;return new n(s,o,u,this)};t.exports=s},{"./ParseError":6,"match-at":2}],4:[function(e,t,r){var a=e("./Lexer");function i(e,t){this.lexer=new a(e);this.macros=t;this.stack=[];this.discardedWhiteSpace=[]}i.prototype.nextToken=function(){for(;;){if(this.stack.length===0){this.stack.push(this.lexer.lex())}var e=this.stack.pop();var t=e.text;if(!(t.charAt(0)==="\\"&&this.macros.hasOwnProperty(t))){return e}var r=this.macros[t];if(typeof r==="string"){var i=new a(r);r=[];var s=i.lex();while(s.text!=="EOF"){r.push(s);s=i.lex()}r.reverse();this.macros[t]=r}this.stack=this.stack.concat(r)}};i.prototype.get=function(e){this.discardedWhiteSpace=[];var t=this.nextToken();if(e){while(t.text===" "){this.discardedWhiteSpace.push(t);t=this.nextToken()}}return t};i.prototype.unget=function(e){this.stack.push(e);while(this.discardedWhiteSpace.length!==0){this.stack.push(this.discardedWhiteSpace.pop())}};t.exports=i},{"./Lexer":3}],5:[function(e,t,r){function a(e){this.style=e.style;this.color=e.color;this.size=e.size;this.phantom=e.phantom;this.font=e.font;if(e.parentStyle===undefined){this.parentStyle=e.style}else{this.parentStyle=e.parentStyle}if(e.parentSize===undefined){this.parentSize=e.size}else{this.parentSize=e.parentSize}}a.prototype.extend=function(e){var t={style:this.style,size:this.size,color:this.color,parentStyle:this.style,parentSize:this.size,phantom:this.phantom,font:this.font};for(var r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return new a(t)};a.prototype.withStyle=function(e){return this.extend({style:e})};a.prototype.withSize=function(e){return this.extend({size:e})};a.prototype.withColor=function(e){return this.extend({color:e})};a.prototype.withPhantom=function(){return this.extend({phantom:true})};a.prototype.withFont=function(e){return this.extend({font:e||this.font})};a.prototype.reset=function(){return this.extend({})};var i={"katex-blue":"#6495ed","katex-orange":"#ffa500","katex-pink":"#ff00af","katex-red":"#df0030","katex-green":"#28ae7b","katex-gray":"gray","katex-purple":"#9d38bd","katex-blueA":"#ccfaff","katex-blueB":"#80f6ff","katex-blueC":"#63d9ea","katex-blueD":"#11accd","katex-blueE":"#0c7f99","katex-tealA":"#94fff5","katex-tealB":"#26edd5","katex-tealC":"#01d1c1","katex-tealD":"#01a995","katex-tealE":"#208170","katex-greenA":"#b6ffb0","katex-greenB":"#8af281","katex-greenC":"#74cf70","katex-greenD":"#1fab54","katex-greenE":"#0d923f","katex-goldA":"#ffd0a9","katex-goldB":"#ffbb71","katex-goldC":"#ff9c39","katex-goldD":"#e07d10","katex-goldE":"#a75a05","katex-redA":"#fca9a9","katex-redB":"#ff8482","katex-redC":"#f9685d","katex-redD":"#e84d39","katex-redE":"#bc2612","katex-maroonA":"#ffbde0","katex-maroonB":"#ff92c6","katex-maroonC":"#ed5fa6","katex-maroonD":"#ca337c","katex-maroonE":"#9e034e","katex-purpleA":"#ddd7ff","katex-purpleB":"#c6b9fc","katex-purpleC":"#aa87ff","katex-purpleD":"#7854ab","katex-purpleE":"#543b78","katex-mintA":"#f5f9e8","katex-mintB":"#edf2df","katex-mintC":"#e0e5cc","katex-grayA":"#f6f7f7","katex-grayB":"#f0f1f2","katex-grayC":"#e3e5e6","katex-grayD":"#d6d8da","katex-grayE":"#babec2","katex-grayF":"#888d93","katex-grayG":"#626569","katex-grayH":"#3b3e40","katex-grayI":"#21242c","katex-kaBlue":"#314453","katex-kaGreen":"#71B307"};a.prototype.getColor=function(){if(this.phantom){return"transparent"}else{return i[this.color]||this.color}};t.exports=a},{}],6:[function(e,t,r){function a(e,t){var r="KaTeX parse error: "+e;var i;var s;if(t&&t.lexer&&t.start<=t.end){var n=t.lexer.input;i=t.start;s=t.end;if(i===n.length){r+=" at end of input: "}else{r+=" at position "+(i+1)+": "}var l=n.slice(i,s).replace(/[^]/g,"$&\u0332");var o;if(i>15){o="\u2026"+n.slice(i-15,i)}else{o=n.slice(0,i)}var u;if(s+15<n.length){u=n.slice(s,s+15)+"\u2026"}else{u=n.slice(s)}r+=o+l+u}var h=new Error(r);h.name="ParseError";h.__proto__=a.prototype;h.position=i;return h}a.prototype.__proto__=Error.prototype;t.exports=a},{}],7:[function(e,t,r){var a=e("./functions");var i=e("./environments");var s=e("./MacroExpander");var n=e("./symbols");var l=e("./utils");var o=e("./unicodeRegexes").cjkRegex;var u=e("./parseData");var h=e("./ParseError");function c(e,t){this.gullet=new s(e,t.macros);this.settings=t;this.leftrightDepth=0}var p=u.ParseNode;function m(e,t,r){this.result=e;this.isFunction=t;this.token=r}c.prototype.expect=function(e,t){if(this.nextToken.text!==e){throw new h("Expected '"+e+"', got '"+this.nextToken.text+"'",this.nextToken)}if(t!==false){this.consume()}};c.prototype.consume=function(){this.nextToken=this.gullet.get(this.mode==="math")};c.prototype.switchMode=function(e){this.gullet.unget(this.nextToken);this.mode=e;this.consume()};c.prototype.parse=function(){this.mode="math";this.consume();var e=this.parseInput();return e};c.prototype.parseInput=function(){var e=this.parseExpression(false);this.expect("EOF",false);return e};var f=["}","\\end","\\right","&","\\\\","\\cr"];c.prototype.parseExpression=function(e,t){var r=[];while(true){var i=this.nextToken;if(f.indexOf(i.text)!==-1){break}if(t&&i.text===t){break}if(e&&a[i.text]&&a[i.text].infix){break}var s=this.parseAtom();if(!s){if(!this.settings.throwOnError&&i.text[0]==="\\"){var n=this.handleUnsupportedCmd();r.push(n);continue}break}r.push(s)}return this.handleInfixNodes(r)};c.prototype.handleInfixNodes=function(e){var t=-1;var r;for(var a=0;a<e.length;a++){var i=e[a];if(i.type==="infix"){if(t!==-1){throw new h("only one infix operator per group",i.value.token)}t=a;r=i.value.replaceWith}}if(t!==-1){var s;var n;var l=e.slice(0,t);var o=e.slice(t+1);if(l.length===1&&l[0].type==="ordgroup"){s=l[0]}else{s=new p("ordgroup",l,this.mode)}if(o.length===1&&o[0].type==="ordgroup"){n=o[0]}else{n=new p("ordgroup",o,this.mode)}var u=this.callFunction(r,[s,n],null);return[new p(u.type,u,this.mode)]}else{return e}};var v=1;c.prototype.handleSupSubscript=function(e){var t=this.nextToken;var r=t.text;this.consume();var i=this.parseGroup();if(!i){if(!this.settings.throwOnError&&this.nextToken.text[0]==="\\"){return this.handleUnsupportedCmd()}else{throw new h("Expected group after '"+r+"'",t)}}else if(i.isFunction){var s=a[i.result].greediness;if(s>v){return this.parseFunction(i)}else{throw new h("Got function '"+i.result+"' with no arguments "+"as "+e,t)}}else{return i.result}};c.prototype.handleUnsupportedCmd=function(){var e=this.nextToken.text;var t=[];for(var r=0;r<e.length;r++){t.push(new p("textord",e[r],"text"))}var a=new p("text",{body:t,type:"text"},this.mode);var i=new p("color",{color:this.settings.errorColor,value:[a],type:"color"},this.mode);this.consume();return i};c.prototype.parseAtom=function(){var e=this.parseImplicitGroup();if(this.mode==="text"){return e}var t;var r;while(true){var a=this.nextToken;if(a.text==="\\limits"||a.text==="\\nolimits"){if(!e||e.type!=="op"){throw new h("Limit controls must follow a math operator",a)}else{var i=a.text==="\\limits";e.value.limits=i;e.value.alwaysHandleSupSub=true}this.consume()}else if(a.text==="^"){if(t){throw new h("Double superscript",a)}t=this.handleSupSubscript("superscript")}else if(a.text==="_"){if(r){throw new h("Double subscript",a)}r=this.handleSupSubscript("subscript")}else if(a.text==="'"){var s=new p("textord","\\prime",this.mode);var n=[s];this.consume();while(this.nextToken.text==="'"){n.push(s);this.consume()}t=new p("ordgroup",n,this.mode)}else{break}}if(t||r){return new p("supsub",{base:e,sup:t,sub:r},this.mode)}else{return e}};var d=["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];var g=["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"];c.prototype.parseImplicitGroup=function(){var e=this.parseSymbol();if(e==null){return this.parseFunction()}var t=e.result;var r;if(t==="\\left"){var a=this.parseFunction(e);++this.leftrightDepth;r=this.parseExpression(false);--this.leftrightDepth;this.expect("\\right",false);var s=this.parseFunction();return new p("leftright",{body:r,left:a.value.value,right:s.value.value},this.mode)}else if(t==="\\begin"){var n=this.parseFunction(e);var o=n.value.name;if(!i.hasOwnProperty(o)){throw new h("No such environment: "+o,n.value.nameGroup)}var u=i[o];var c=this.parseArguments("\\begin{"+o+"}",u);var m={mode:this.mode,envName:o,parser:this,positions:c.pop()};var f=u.handler(m,c);this.expect("\\end",false);var v=this.nextToken;var y=this.parseFunction();if(y.value.name!==o){throw new h("Mismatch: \\begin{"+o+"} matched "+"by \\end{"+y.value.name+"}",v)}f.position=y.position;return f}else if(l.contains(d,t)){r=this.parseExpression(false);return new p("sizing",{size:"size"+(l.indexOf(d,t)+1),value:r},this.mode)}else if(l.contains(g,t)){r=this.parseExpression(true);return new p("styling",{style:t.slice(1,t.length-5),value:r},this.mode)}else{return this.parseFunction(e)}};c.prototype.parseFunction=function(e){if(!e){e=this.parseGroup()}if(e){if(e.isFunction){var t=e.result;var r=a[t];if(this.mode==="text"&&!r.allowedInText){throw new h("Can't use function '"+t+"' in text mode",e.token)}var i=this.parseArguments(t,r);var s=e.token;var n=this.callFunction(t,i,i.pop(),s);return new p(n.type,n,this.mode)}else{return e.result}}else{return null}};c.prototype.callFunction=function(e,t,r,i){var s={funcName:e,parser:this,positions:r,token:i};return a[e].handler(s,t)};c.prototype.parseArguments=function(e,t){var r=t.numArgs+t.numOptionalArgs;if(r===0){return[[this.pos]]}var i=t.greediness;var s=[this.pos];var n=[];for(var l=0;l<r;l++){var o=this.nextToken;var u=t.argTypes&&t.argTypes[l];var c;if(l<t.numOptionalArgs){if(u){c=this.parseGroupOfType(u,true)}else{c=this.parseGroup(true)}if(!c){n.push(null);s.push(this.pos);continue}}else{if(u){c=this.parseGroupOfType(u)}else{c=this.parseGroup()}if(!c){if(!this.settings.throwOnError&&this.nextToken.text[0]==="\\"){c=new m(this.handleUnsupportedCmd(this.nextToken.text),false)}else{throw new h("Expected group after '"+e+"'",o)}}}var p;if(c.isFunction){var f=a[c.result].greediness;if(f>i){p=this.parseFunction(c)}else{throw new h("Got function '"+c.result+"' as "+"argument to '"+e+"'",o)}}else{p=c.result}n.push(p);s.push(this.pos)}n.push(s);return n};c.prototype.parseGroupOfType=function(e,t){var r=this.mode;if(e==="original"){e=r}if(e==="color"){return this.parseColorGroup(t)}if(e==="size"){return this.parseSizeGroup(t)}this.switchMode(e);if(e==="text"){while(this.nextToken.text===" "){this.consume()}}var a=this.parseGroup(t);this.switchMode(r);return a};c.prototype.parseStringGroup=function(e,t){if(t&&this.nextToken.text!=="["){return null}var r=this.mode;this.mode="text";this.expect(t?"[":"{");var a="";var i=this.nextToken;var s=i;while(this.nextToken.text!==(t?"]":"}")){if(this.nextToken.text==="EOF"){throw new h("Unexpected end of input in "+e,i.range(this.nextToken,a))}s=this.nextToken;a+=s.text;this.consume()}this.mode=r;this.expect(t?"]":"}");return i.range(s,a)};c.prototype.parseRegexGroup=function(e,t){var r=this.mode;this.mode="text";var a=this.nextToken;var i=a;var s="";while(this.nextToken.text!=="EOF"&&e.test(s+this.nextToken.text)){i=this.nextToken;s+=i.text;this.consume()}if(s===""){throw new h("Invalid "+t+": '"+a.text+"'",a)}this.mode=r;return a.range(i,s)};c.prototype.parseColorGroup=function(e){var t=this.parseStringGroup("color",e);if(!t){return null}var r=/^(#[a-z0-9]+|[a-z]+)$/i.exec(t.text);if(!r){throw new h("Invalid color: '"+t.text+"'",t)}return new m(new p("color",r[0],this.mode),false)};c.prototype.parseSizeGroup=function(e){var t;if(!e&&this.nextToken.text!=="{"){t=this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2}$/,"size")}else{t=this.parseStringGroup("size",e)}if(!t){return null}var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!r){throw new h("Invalid size: '"+t.text+"'",t)}var a={number:+(r[1]+r[2]),unit:r[3]};if(a.unit!=="em"&&a.unit!=="ex"&&a.unit!=="mu"){throw new h("Invalid unit: '"+a.unit+"'",t)}return new m(new p("color",a,this.mode),false)};c.prototype.parseGroup=function(e){var t=this.nextToken;if(this.nextToken.text===(e?"[":"{")){this.consume();var r=this.parseExpression(false,e?"]":null);var a=this.nextToken;this.expect(e?"]":"}");if(this.mode==="text"){this.formLigatures(r)}return new m(new p("ordgroup",r,this.mode,t,a),false)}else{return e?null:this.parseSymbol()}};c.prototype.formLigatures=function(e){var t;var r=e.length-1;for(t=0;t<r;++t){var a=e[t];var i=a.value;if(i==="-"&&e[t+1].value==="-"){if(t+1<r&&e[t+2].value==="-"){e.splice(t,3,new p("textord","---","text",a,e[t+2]));r-=2}else{e.splice(t,2,new p("textord","--","text",a,e[t+1]));r-=1}}if((i==="'"||i==="`")&&e[t+1].value===i){e.splice(t,2,new p("textord",i+i,"text",a,e[t+1]));r-=1}}};c.prototype.parseSymbol=function(){var e=this.nextToken;if(a[e.text]){this.consume();return new m(e.text,true,e)}else if(n[this.mode][e.text]){this.consume();return new m(new p(n[this.mode][e.text].group,e.text,this.mode,e),false,e)}else if(this.mode==="text"&&o.test(e.text)){this.consume();return new m(new p("textord",e.text,this.mode,e),false,e)}else{return null}};c.prototype.ParseNode=p;t.exports=c},{"./MacroExpander":4,"./ParseError":6,"./environments":17,"./functions":20,"./parseData":22,"./symbols":24,"./unicodeRegexes":25,"./utils":26}],8:[function(e,t,r){var a=e("./Options");var i=e("./Style");function s(e,t){return e===undefined?t:e}function n(e){e=e||{};this.displayMode=s(e.displayMode,false);this.throwOnError=s(e.throwOnError,true);this.errorColor=s(e.errorColor,"#cc0000");this.macros=e.macros||{}}n.prototype.initialOptions=function(){var e=i.TEXT;if(this.displayMode){e=i.DISPLAY}var t=new a({style:e,size:"size5"});return t};t.exports=n},{"./Options":5,"./Style":9}],9:[function(e,t,r){var a=e("./fontMetrics.js").sigmas;var i=[{},{},{}];var s;for(var n in a){if(a.hasOwnProperty(n)){for(s=0;s<3;s++){i[s][n]=a[n][s]}}}for(s=0;s<3;s++){i[s].emPerEx=a.xHeight[s]/a.quad[s]}function l(e,t,r,a){this.id=e;this.size=t;this.cramped=a;this.sizeMultiplier=r;this.metrics=i[t>0?t-1:0]}l.prototype.sup=function(){return y[b[this.id]]};l.prototype.sub=function(){return y[w[this.id]]};l.prototype.fracNum=function(){return y[x[this.id]]};l.prototype.fracDen=function(){return y[k[this.id]]};l.prototype.cramp=function(){return y[z[this.id]]};l.prototype.cls=function(){return d[this.size]+(this.cramped?" cramped":" uncramped")};l.prototype.reset=function(){return g[this.size]};l.prototype.isTight=function(){return this.size>=2};var o=0;var u=1;var h=2;var c=3;var p=4;var m=5;var f=6;var v=7;var d=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"];var g=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"];var y=[new l(o,0,1,false),new l(u,0,1,true),new l(h,1,1,false),new l(c,1,1,true),new l(p,2,.7,false),new l(m,2,.7,true),new l(f,3,.5,false),new l(v,3,.5,true)];var b=[p,m,p,m,f,v,f,v];var w=[m,m,m,m,v,v,v,v];var x=[h,c,p,m,f,v,f,v];var k=[c,c,m,m,v,v,v,v];var z=[u,u,c,c,m,m,v,v];t.exports={DISPLAY:y[o],TEXT:y[h],SCRIPT:y[p],SCRIPTSCRIPT:y[f]}},{"./fontMetrics.js":18}],10:[function(e,t,r){var a=e("./domTree");var i=e("./fontMetrics");var s=e("./symbols");var n=e("./utils");var l=["\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma","\\Upsilon","\\Phi","\\Psi","\\Omega"];var o=["\u0131","\u0237","\xa3"];var u=function(e,t,r,n,l){if(s[r][e]&&s[r][e].replace){e=s[r][e].replace}var o=i.getCharacterMetrics(e,t);var u;if(o){var h=o.italic;if(r==="text"){h=0}u=new a.symbolNode(e,o.height,o.depth,h,o.skew,l)}else{typeof console!=="undefined"&&console.warn("No character metrics for '"+e+"' in style '"+t+"'");u=new a.symbolNode(e,0,0,0,0,l)}if(n){if(n.style.isTight()){u.classes.push("mtight")}if(n.getColor()){u.style.color=n.getColor()}}return u};var h=function(e,t,r,a){if(e==="\\"||s[t][e].font==="main"){return u(e,"Main-Regular",t,r,a)}else{return u(e,"AMS-Regular",t,r,a.concat(["amsrm"]))}};var c=function(e,t,r,a,i){if(i==="mathord"){return p(e,t,r,a)}else if(i==="textord"){return u(e,"Main-Regular",t,r,a.concat(["mathrm"]))}else{throw new Error("unexpected type: "+i+" in mathDefault")}};var p=function(e,t,r,a){if(/[0-9]/.test(e.charAt(0))||n.contains(o,e)||n.contains(l,e)){return u(e,"Main-Italic",t,r,a.concat(["mainit"]))}else{return u(e,"Math-Italic",t,r,a.concat(["mathit"]))}};var m=function(e,t,r){var a=e.mode;var l=e.value;if(s[a][l]&&s[a][l].replace){l=s[a][l].replace}var h=["mord"];var m=t.font;if(m){if(m==="mathit"||n.contains(o,l)){return p(l,a,t,h)}else{var f=k[m].fontName;if(i.getCharacterMetrics(l,f)){return u(l,f,a,t,h.concat([m]))}else{return c(l,a,t,h,r)}}}else{return c(l,a,t,h,r)}};var f=function(e){var t=0;var r=0;var a=0;if(e.children){for(var i=0;i<e.children.length;i++){if(e.children[i].height>t){t=e.children[i].height}if(e.children[i].depth>r){r=e.children[i].depth}if(e.children[i].maxFontSize>a){a=e.children[i].maxFontSize}}}e.height=t;e.depth=r;e.maxFontSize=a};var v=function(e,t,r){var i=new a.span(e,t,r);f(i);return i};var d=function(e,t){e.children=t.concat(e.children);f(e)};var g=function(e){var t=new a.documentFragment(e);f(t);return t};var y=function(e,t){var r=v([],[new a.symbolNode("\u200b")]);r.style.fontSize=t/e.style.sizeMultiplier+"em";var i=v(["fontsize-ensurer","reset-"+e.size,"size5"],[r]);return i};var b=function(e,t,r,i){var s;var n;var l;if(t==="individualShift"){var o=e;e=[o[0]];s=-o[0].shift-o[0].elem.depth;n=s;for(l=1;l<o.length;l++){var u=-o[l].shift-n-o[l].elem.depth;var h=u-(o[l-1].elem.height+o[l-1].elem.depth);n=n+u;e.push({type:"kern",size:h});e.push(o[l])}}else if(t==="top"){var c=r;for(l=0;l<e.length;l++){if(e[l].type==="kern"){c-=e[l].size}else{c-=e[l].elem.height+e[l].elem.depth}}s=c}else if(t==="bottom"){s=-r}else if(t==="shift"){s=-e[0].elem.depth-r}else if(t==="firstBaseline"){s=-e[0].elem.depth}else{s=0}var p=0;for(l=0;l<e.length;l++){if(e[l].type==="elem"){p=Math.max(p,e[l].elem.maxFontSize)}}var m=y(i,p);var f=[];n=s;for(l=0;l<e.length;l++){if(e[l].type==="kern"){n+=e[l].size}else{var d=e[l].elem;var g=-d.depth-n;n+=d.height+d.depth;var b=v([],[m,d]);b.height-=g;b.depth+=g;b.style.top=g+"em";f.push(b)}}var w=v(["baseline-fix"],[m,new a.symbolNode("\u200b")]);f.push(w);var x=v(["vlist"],f);x.height=Math.max(n,x.height);x.depth=Math.max(-s,x.depth);return x};var w={size1:.5,size2:.7,size3:.8,size4:.9,size5:1,size6:1.2,size7:1.44,size8:1.73,size9:2.07,size10:2.49};var x={"\\qquad":{size:"2em",className:"qquad"},"\\quad":{size:"1em",className:"quad"},"\\enspace":{size:"0.5em",className:"enspace"},"\\;":{size:"0.277778em",className:"thickspace"},"\\:":{size:"0.22222em",className:"mediumspace"},"\\,":{size:"0.16667em",className:"thinspace"},"\\!":{size:"-0.16667em",className:"negativethinspace"}};var k={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}};t.exports={fontMap:k,makeSymbol:u,mathsym:h,makeSpan:v,makeFragment:g,makeVList:b,makeOrd:m,prependChildren:d,sizingMultiplier:w,spacingFunctions:x}},{"./domTree":16,"./fontMetrics":18,"./symbols":24,"./utils":26}],11:[function(e,t,r){var a=e("./ParseError");var i=e("./Style");var s=e("./buildCommon");var n=e("./delimiter");var l=e("./domTree");var o=e("./fontMetrics");var u=e("./utils");var h=s.makeSpan;var c=function(e){return e instanceof l.span&&e.classes[0]==="mspace"};var p=function(e){return e&&e.classes[0]==="mbin"};var m=function(e,t){if(e){return u.contains(["mbin","mopen","mrel","mop","mpunct"],e.classes[0])}else{return t}};var f=function(e,t){if(e){return u.contains(["mrel","mclose","mpunct"],e.classes[0])}else{return t}};var v=function(e,t,r){var a=[];for(var i=0;i<e.length;i++){var n=e[i];var o=z(n,t);if(o instanceof l.documentFragment){Array.prototype.push.apply(a,o.children)}else{a.push(o)}}var u=null;for(i=0;i<a.length;i++){if(c(a[i])){u=u||[];u.push(a[i]);a.splice(i,1);i--}else if(u){if(a[i]instanceof l.symbolNode){a[i]=h([].concat(a[i].classes),[a[i]])}s.prependChildren(a[i],u);u=null}}if(u){Array.prototype.push.apply(a,u)}for(i=0;i<a.length;i++){if(p(a[i])&&(m(a[i-1],r)||f(a[i+1],r))){a[i].classes[0]="mord"}}return a};var d=function(e){if(e instanceof l.documentFragment){if(e.children.length){return d(e.children[e.children.length-1])}}else{if(u.contains(["mord","mop","mbin","mrel","mopen","mclose","mpunct","minner"],e.classes[0])){return e.classes[0]}}return null};var g=function(e,t){if(!e){return false}else if(e.type==="op"){return e.value.limits&&(t.style.size===i.DISPLAY.size||e.value.alwaysHandleSupSub)}else if(e.type==="accent"){return b(e.value.base)}else{return null}};var y=function(e){if(!e){return false}else if(e.type==="ordgroup"){if(e.value.length===1){return y(e.value[0])}else{return e}}else if(e.type==="color"){if(e.value.value.length===1){return y(e.value.value[0])}else{return e}}else if(e.type==="font"){return y(e.value.body)}else{return e}};var b=function(e){var t=y(e);return t.type==="mathord"||t.type==="textord"||t.type==="bin"||t.type==="rel"||t.type==="inner"||t.type==="open"||t.type==="close"||t.type==="punct"};var w=function(e,t){return h(t.concat(["sizing","reset-"+e.size,"size5",e.style.reset(),i.TEXT.cls(),"nulldelimiter"]))};var x={};x.mathord=function(e,t){return s.makeOrd(e,t,"mathord")};x.textord=function(e,t){return s.makeOrd(e,t,"textord")};x.bin=function(e,t){return s.mathsym(e.value,e.mode,t,["mbin"])};x.rel=function(e,t){return s.mathsym(e.value,e.mode,t,["mrel"])};x.open=function(e,t){return s.mathsym(e.value,e.mode,t,["mopen"])};x.close=function(e,t){return s.mathsym(e.value,e.mode,t,["mclose"])};x.inner=function(e,t){return s.mathsym(e.value,e.mode,t,["minner"])};x.punct=function(e,t){return s.mathsym(e.value,e.mode,t,["mpunct"])};x.ordgroup=function(e,t){return h(["mord",t.style.cls()],v(e.value,t.reset(),true),t)};x.text=function(e,t){var r=t.withFont(e.value.style);var a=v(e.value.body,r,true);for(var i=0;i<a.length-1;i++){if(a[i].tryCombine(a[i+1])){a.splice(i+1,1);i--}}return h(["mord","text",r.style.cls()],a,r)};x.color=function(e,t){var r=v(e.value.value,t.withColor(e.value.color),false);return new s.makeFragment(r)};x.supsub=function(e,t){if(g(e.value.base,t)){return x[e.value.base.type](e,t)}var r=z(e.value.base,t.reset());var a;var n;var u;var c;var p=t.style;var m;if(e.value.sup){m=t.withStyle(p.sup());u=z(e.value.sup,m);a=h([p.reset(),p.sup().cls()],[u],m)}if(e.value.sub){m=t.withStyle(p.sub());c=z(e.value.sub,m);n=h([p.reset(),p.sub().cls()],[c],m)}var f;var v;if(b(e.value.base)){f=0;v=0}else{f=r.height-p.metrics.supDrop;v=r.depth+p.metrics.subDrop}var y;if(p===i.DISPLAY){y=p.metrics.sup1}else if(p.cramped){y=p.metrics.sup3}else{y=p.metrics.sup2}var w=i.TEXT.sizeMultiplier*p.sizeMultiplier;var k=.5/o.metrics.ptPerEm/w+"em";var S;if(!e.value.sup){v=Math.max(v,p.metrics.sub1,c.height-.8*p.metrics.xHeight);S=s.makeVList([{type:"elem",elem:n}],"shift",v,t);S.children[0].style.marginRight=k;if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+"em"}}else if(!e.value.sub){f=Math.max(f,y,u.depth+.25*p.metrics.xHeight);S=s.makeVList([{type:"elem",elem:a}],"shift",-f,t);S.children[0].style.marginRight=k}else{f=Math.max(f,y,u.depth+.25*p.metrics.xHeight);v=Math.max(v,p.metrics.sub2);var M=o.metrics.defaultRuleThickness;if(f-u.depth-(c.height-v)<4*M){v=4*M-(f-u.depth)+c.height;var T=.8*p.metrics.xHeight-(f-u.depth);if(T>0){f+=T;v-=T}}S=s.makeVList([{type:"elem",elem:n,shift:v},{type:"elem",elem:a,shift:-f}],"individualShift",null,t);if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+"em"}S.children[0].style.marginRight=k;S.children[1].style.marginRight=k}var A=d(r)||"mord";return h([A],[r,h(["msupsub"],[S])],t)};x.genfrac=function(e,t){var r=t.style;if(e.value.size==="display"){r=i.DISPLAY}else if(e.value.size==="text"){r=i.TEXT}var a=r.fracNum();var l=r.fracDen();var u;u=t.withStyle(a);var c=z(e.value.numer,u);var p=h([r.reset(),a.cls()],[c],u);u=t.withStyle(l);var m=z(e.value.denom,u);var f=h([r.reset(),l.cls()],[m],u);var v;if(e.value.hasBarLine){v=o.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{v=0}var d;var g;var y;if(r.size===i.DISPLAY.size){d=r.metrics.num1;if(v>0){g=3*v}else{g=7*o.metrics.defaultRuleThickness}y=r.metrics.denom1}else{if(v>0){d=r.metrics.num2;g=v}else{d=r.metrics.num3;g=3*o.metrics.defaultRuleThickness}y=r.metrics.denom2}var b;if(v===0){var x=d-c.depth-(m.height-y);if(x<g){d+=.5*(g-x);y+=.5*(g-x)}b=s.makeVList([{type:"elem",elem:f,shift:y},{type:"elem",elem:p,shift:-d}],"individualShift",null,t)}else{var k=r.metrics.axisHeight;if(d-c.depth-(k+.5*v)<g){d+=g-(d-c.depth-(k+.5*v))}if(k-.5*v-(m.height-y)<g){y+=g-(k-.5*v-(m.height-y))}var S=h([t.style.reset(),i.TEXT.cls(),"frac-line"]);S.height=v;var M=-(k-.5*v);b=s.makeVList([{type:"elem",elem:f,shift:y},{type:"elem",elem:S,shift:M},{type:"elem",elem:p,shift:-d}],"individualShift",null,t)}b.height*=r.sizeMultiplier/t.style.sizeMultiplier;b.depth*=r.sizeMultiplier/t.style.sizeMultiplier;var T;if(r.size===i.DISPLAY.size){T=r.metrics.delim1}else{T=r.metrics.delim2}var A;var N;if(e.value.leftDelim==null){A=w(t,["mopen"])}else{A=n.customSizedDelim(e.value.leftDelim,T,true,t.withStyle(r),e.mode,["mopen"])}if(e.value.rightDelim==null){N=w(t,["mclose"])}else{N=n.customSizedDelim(e.value.rightDelim,T,true,t.withStyle(r),e.mode,["mclose"])}return h(["mord",t.style.reset(),r.cls()],[A,h(["mfrac"],[b]),N],t)};var k=function(e,t){var r=e.number;if(e.unit==="ex"){r*=t.metrics.emPerEx}else if(e.unit==="mu"){r/=18}return r};x.array=function(e,t){var r;var i;var n=e.value.body.length;var l=0;var c=new Array(n);var p=t.style;var m=1/o.metrics.ptPerEm;var f=5*m;var v=12*m;var d=u.deflt(e.value.arraystretch,1);var g=d*v;var y=.7*g;var b=.3*g;var w=0;for(r=0;r<e.value.body.length;++r){var x=e.value.body[r];var S=y;var M=b;if(l<x.length){l=x.length}var T=new Array(x.length);for(i=0;i<x.length;++i){var A=z(x[i],t);if(M<A.depth){M=A.depth}if(S<A.height){S=A.height}T[i]=A}var N=0;if(e.value.rowGaps[r]){N=k(e.value.rowGaps[r].value,p);if(N>0){N+=b;if(M<N){M=N}N=0}}T.height=S;T.depth=M;w+=S;T.pos=w;w+=M+N;c[r]=T}var q=w/2+p.metrics.axisHeight;var C=e.value.cols||[];var R=[];var E;var O;for(i=0,O=0;i<l||O<C.length;++i,++O){var D=C[O]||{};var F=true;while(D.type==="separator"){if(!F){E=h(["arraycolsep"],[]);E.style.width=o.metrics.doubleRuleSep+"em";R.push(E)}if(D.separator==="|"){var P=h(["vertical-separator"],[]);P.style.height=w+"em";P.style.verticalAlign=-(w-q)+"em";R.push(P)}else{throw new a("Invalid separator type: "+D.separator)}O++;D=C[O]||{};F=false}if(i>=l){continue}var L;if(i>0||e.value.hskipBeforeAndAfter){L=u.deflt(D.pregap,f);if(L!==0){E=h(["arraycolsep"],[]);E.style.width=L+"em";R.push(E)}}var _=[];for(r=0;r<n;++r){var I=c[r];var B=I[i];if(!B){continue}var X=I.pos-q;B.depth=I.depth;B.height=I.height;_.push({type:"elem",elem:B,shift:X})}_=s.makeVList(_,"individualShift",null,t);_=h(["col-align-"+(D.align||"c")],[_]);R.push(_);if(i<l-1||e.value.hskipBeforeAndAfter){L=u.deflt(D.postgap,f);if(L!==0){E=h(["arraycolsep"],[]);E.style.width=L+"em";R.push(E)}}}c=h(["mtable"],R);return h(["mord"],[c],t)};x.spacing=function(e,t){if(e.value==="\\ "||e.value==="\\space"||e.value===" "||e.value==="~"){if(e.mode==="text"){return s.makeOrd(e,t,"textord")}else{return h(["mspace"],[s.mathsym(e.value,e.mode,t)],t)}}else{return h(["mspace",s.spacingFunctions[e.value].className],[],t)}};x.llap=function(e,t){var r=h(["inner"],[z(e.value.body,t.reset())]);var a=h(["fix"],[]);return h(["mord","llap",t.style.cls()],[r,a],t)};x.rlap=function(e,t){var r=h(["inner"],[z(e.value.body,t.reset())]);var a=h(["fix"],[]);return h(["mord","rlap",t.style.cls()],[r,a],t)};x.op=function(e,t){var r;var a;var n=false;if(e.type==="supsub"){r=e.value.sup;a=e.value.sub;e=e.value.base;n=true}var l=t.style;var c=["\\smallint"];var p=false;if(l.size===i.DISPLAY.size&&e.value.symbol&&!u.contains(c,e.value.body)){p=true}var m;var f=0;var d=0;if(e.value.symbol){var g=p?"Size2-Regular":"Size1-Regular";m=s.makeSymbol(e.value.body,g,"math",t,["mop","op-symbol",p?"large-op":"small-op"]);f=(m.height-m.depth)/2-l.metrics.axisHeight*l.sizeMultiplier;d=m.italic}else if(e.value.value){var y=v(e.value.value,t,true);m=h(["mop"],y,t)}else{var b=[];for(var w=1;w<e.value.body.length;w++){b.push(s.mathsym(e.value.body[w],e.mode))}m=h(["mop"],b,t)}if(n){m=h([],[m]);var x;var k;var S;var M;var T;if(r){T=t.withStyle(l.sup());var A=z(r,T);x=h([l.reset(),l.sup().cls()],[A],T);k=Math.max(o.metrics.bigOpSpacing1,o.metrics.bigOpSpacing3-A.depth)}if(a){T=t.withStyle(l.sub());var N=z(a,T);S=h([l.reset(),l.sub().cls()],[N],T);M=Math.max(o.metrics.bigOpSpacing2,o.metrics.bigOpSpacing4-N.height);
+}var q;var C;var R;if(!r){C=m.height-f;q=s.makeVList([{type:"kern",size:o.metrics.bigOpSpacing5},{type:"elem",elem:S},{type:"kern",size:M},{type:"elem",elem:m}],"top",C,t);q.children[0].style.marginLeft=-d+"em"}else if(!a){R=m.depth+f;q=s.makeVList([{type:"elem",elem:m},{type:"kern",size:k},{type:"elem",elem:x},{type:"kern",size:o.metrics.bigOpSpacing5}],"bottom",R,t);q.children[1].style.marginLeft=d+"em"}else if(!r&&!a){return m}else{R=o.metrics.bigOpSpacing5+S.height+S.depth+M+m.depth+f;q=s.makeVList([{type:"kern",size:o.metrics.bigOpSpacing5},{type:"elem",elem:S},{type:"kern",size:M},{type:"elem",elem:m},{type:"kern",size:k},{type:"elem",elem:x},{type:"kern",size:o.metrics.bigOpSpacing5}],"bottom",R,t);q.children[0].style.marginLeft=-d+"em";q.children[2].style.marginLeft=d+"em"}return h(["mop","op-limits"],[q],t)}else{if(e.value.symbol){m.style.top=f+"em"}return m}};x.mod=function(e,t){var r=[];if(e.value.modType==="bmod"){if(!t.style.isTight()){r.push(h(["mspace","negativemediumspace"],[],t))}r.push(h(["mspace","thickspace"],[],t))}else if(t.style.size===i.DISPLAY.size){r.push(h(["mspace","quad"],[],t))}else if(e.value.modType==="mod"){r.push(h(["mspace","twelvemuspace"],[],t))}else{r.push(h(["mspace","eightmuspace"],[],t))}if(e.value.modType==="pod"||e.value.modType==="pmod"){r.push(s.mathsym("(",e.mode))}if(e.value.modType!=="pod"){var a=[s.mathsym("m",e.mode),s.mathsym("o",e.mode),s.mathsym("d",e.mode)];if(e.value.modType==="bmod"){r.push(h(["mbin"],a,t));r.push(h(["mspace","thickspace"],[],t));if(!t.style.isTight()){r.push(h(["mspace","negativemediumspace"],[],t))}}else{Array.prototype.push.apply(r,a);r.push(h(["mspace","sixmuspace"],[],t))}}if(e.value.value){Array.prototype.push.apply(r,v(e.value.value,t,false))}if(e.value.modType==="pod"||e.value.modType==="pmod"){r.push(s.mathsym(")",e.mode))}return s.makeFragment(r)};x.katex=function(e,t){var r=h(["k"],[s.mathsym("K",e.mode)],t);var a=h(["a"],[s.mathsym("A",e.mode)],t);a.height=(a.height+.2)*.75;a.depth=(a.height-.2)*.75;var i=h(["t"],[s.mathsym("T",e.mode)],t);var n=h(["e"],[s.mathsym("E",e.mode)],t);n.height=n.height-.2155;n.depth=n.depth+.2155;var l=h(["x"],[s.mathsym("X",e.mode)],t);return h(["mord","katex-logo"],[r,a,i,n,l],t)};x.overline=function(e,t){var r=t.style;var a=z(e.value.body,t.withStyle(r.cramp()));var n=o.metrics.defaultRuleThickness/r.sizeMultiplier;var l=h([r.reset(),i.TEXT.cls(),"overline-line"]);l.height=n;l.maxFontSize=1;var u=s.makeVList([{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:l},{type:"kern",size:n}],"firstBaseline",null,t);return h(["mord","overline"],[u],t)};x.underline=function(e,t){var r=t.style;var a=z(e.value.body,t);var n=o.metrics.defaultRuleThickness/r.sizeMultiplier;var l=h([r.reset(),i.TEXT.cls(),"underline-line"]);l.height=n;l.maxFontSize=1;var u=s.makeVList([{type:"kern",size:n},{type:"elem",elem:l},{type:"kern",size:3*n},{type:"elem",elem:a}],"top",a.height,t);return h(["mord","underline"],[u],t)};x.sqrt=function(e,t){var r=t.style;var a=z(e.value.body,t.withStyle(r.cramp()));var l=o.metrics.defaultRuleThickness/r.sizeMultiplier;var u=h([r.reset(),i.TEXT.cls(),"sqrt-line"],[],t);u.height=l;u.maxFontSize=1;var c=l;if(r.id<i.TEXT.id){c=r.metrics.xHeight}var p=l+c/4;var m=(a.height+a.depth)*r.sizeMultiplier;var f=m+p+l;var v=h(["sqrt-sign"],[n.customSizedDelim("\\surd",f,false,t,e.mode)],t);var d=v.height+v.depth-l;if(d>a.height+a.depth+p){p=(p+d-a.height-a.depth)/2}var g=-(a.height+p+l)+v.height;v.style.top=g+"em";v.height-=g;v.depth+=g;var y;if(a.height===0&&a.depth===0){y=h()}else{y=s.makeVList([{type:"elem",elem:a},{type:"kern",size:p},{type:"elem",elem:u},{type:"kern",size:l}],"firstBaseline",null,t)}if(!e.value.index){return h(["mord","sqrt"],[v,y],t)}else{var b=t.withStyle(i.SCRIPTSCRIPT);var w=z(e.value.index,b);var x=h([r.reset(),i.SCRIPTSCRIPT.cls()],[w],b);var k=Math.max(v.height,y.height);var S=Math.max(v.depth,y.depth);var M=.6*(k-S);var T=s.makeVList([{type:"elem",elem:x}],"shift",-M,t);var A=h(["root"],[T]);return h(["mord","sqrt"],[A,v,y],t)}};x.sizing=function(e,t){var r=v(e.value.value,t.withSize(e.value.size),false);var a=t.style;var i=s.sizingMultiplier[e.value.size];i=i*a.sizeMultiplier;for(var n=0;n<r.length;n++){var l=u.indexOf(r[n].classes,"sizing");if(l<0){r[n].classes.push("sizing","reset-"+t.size,e.value.size,a.cls());r[n].maxFontSize=i}else if(r[n].classes[l+1]==="reset-"+e.value.size){r[n].classes[l+1]="reset-"+t.size}}return s.makeFragment(r)};x.styling=function(e,t){var r={display:i.DISPLAY,text:i.TEXT,script:i.SCRIPT,scriptscript:i.SCRIPTSCRIPT};var a=r[e.value.style];var n=t.withStyle(a);var l=v(e.value.value,n,false);for(var o=0;o<l.length;o++){var h=u.indexOf(l[o].classes,a.reset());if(h<0){l[o].classes.push(t.style.reset(),a.cls())}else{l[o].classes[h]=t.style.reset()}}return new s.makeFragment(l)};x.font=function(e,t){var r=e.value.font;return z(e.value.body,t.withFont(r))};x.delimsizing=function(e,t){var r=e.value.value;if(r==="."){return h([e.value.mclass])}return n.sizedDelim(r,e.value.size,t,e.mode,[e.value.mclass])};x.leftright=function(e,t){var r=v(e.value.body,t.reset(),true);var a=0;var i=0;var s=false;for(var l=0;l<r.length;l++){if(r[l].isMiddle){s=true}else{a=Math.max(r[l].height,a);i=Math.max(r[l].depth,i)}}var o=t.style;a*=o.sizeMultiplier;i*=o.sizeMultiplier;var u;if(e.value.left==="."){u=w(t,["mopen"])}else{u=n.leftRightDelim(e.value.left,a,i,t,e.mode,["mopen"])}r.unshift(u);if(s){for(l=1;l<r.length;l++){if(r[l].isMiddle){r[l]=n.leftRightDelim(r[l].isMiddle.value,a,i,r[l].isMiddle.options,e.mode,[])}}}var c;if(e.value.right==="."){c=w(t,["mclose"])}else{c=n.leftRightDelim(e.value.right,a,i,t,e.mode,["mclose"])}r.push(c);return h(["minner",o.cls()],r,t)};x.middle=function(e,t){var r;if(e.value.value==="."){r=w(t,[])}else{r=n.sizedDelim(e.value.value,1,t,e.mode,[]);r.isMiddle={value:e.value.value,options:t}}return r};x.rule=function(e,t){var r=h(["mord","rule"],[],t);var a=t.style;var i=0;if(e.value.shift){i=k(e.value.shift,a)}var s=k(e.value.width,a);var n=k(e.value.height,a);i/=a.sizeMultiplier;s/=a.sizeMultiplier;n/=a.sizeMultiplier;r.style.borderRightWidth=s+"em";r.style.borderTopWidth=n+"em";r.style.bottom=i+"em";r.width=s;r.height=n+i;r.depth=-i;return r};x.kern=function(e,t){var r=h(["mord","rule"],[],t);var a=t.style;var i=0;if(e.value.dimension){i=k(e.value.dimension,a)}i/=a.sizeMultiplier;r.style.marginLeft=i+"em";return r};x.accent=function(e,t){var r=e.value.base;var a=t.style;var i;if(e.type==="supsub"){var n=e;e=n.value.base;r=e.value.base;n.value.base=r;i=z(n,t.reset())}var l=z(r,t.withStyle(a.cramp()));var o;if(b(r)){var u=y(r);var c=z(u,t.withStyle(a.cramp()));o=c.skew}else{o=0}var p=Math.min(l.height,a.metrics.xHeight);var m=s.makeSymbol(e.value.accent,"Main-Regular","math",t);m.italic=0;var f=e.value.accent==="\\vec"?"accent-vec":null;var v=h(["accent-body",f],[h([],[m])]);v=s.makeVList([{type:"elem",elem:l},{type:"kern",size:-p},{type:"elem",elem:v}],"firstBaseline",null,t);v.children[1].style.marginLeft=2*o+"em";var d=h(["mord","accent"],[v],t);if(i){i.children[0]=d;i.height=Math.max(d.height,i.height);i.classes[0]="mord";return i}else{return d}};x.phantom=function(e,t){var r=v(e.value.value,t.withPhantom(),false);return new s.makeFragment(r)};x.mclass=function(e,t){var r=v(e.value.value,t,true);return h([e.value.mclass],r,t)};var z=function(e,t){if(!e){return h()}if(x[e.type]){var r=x[e.type](e,t);var i;if(t.style!==t.parentStyle){i=t.style.sizeMultiplier/t.parentStyle.sizeMultiplier;r.height*=i;r.depth*=i}if(t.size!==t.parentSize){i=s.sizingMultiplier[t.size]/s.sizingMultiplier[t.parentSize];r.height*=i;r.depth*=i}return r}else{throw new a("Got group of unknown type: '"+e.type+"'")}};var S=function(e,t){e=JSON.parse(JSON.stringify(e));var r=v(e,t,true);var a=h(["base",t.style.cls()],r,t);var i=h(["strut"]);var s=h(["strut","bottom"]);i.style.height=a.height+"em";s.style.height=a.height+a.depth+"em";s.style.verticalAlign=-a.depth+"em";var n=h(["katex-html"],[i,s,a]);n.setAttribute("aria-hidden","true");return n};t.exports=S},{"./ParseError":6,"./Style":9,"./buildCommon":10,"./delimiter":15,"./domTree":16,"./fontMetrics":18,"./utils":26}],12:[function(e,t,r){var a=e("./buildCommon");var i=e("./fontMetrics");var s=e("./mathMLTree");var n=e("./ParseError");var l=e("./symbols");var o=e("./utils");var u=a.makeSpan;var h=a.fontMap;var c=function(e,t){if(l[t][e]&&l[t][e].replace){e=l[t][e].replace}return new s.TextNode(e)};var p=function(e,t){var r=t.font;if(!r){return null}var a=e.mode;if(r==="mathit"){return"italic"}var s=e.value;if(o.contains(["\\imath","\\jmath"],s)){return null}if(l[a][s]&&l[a][s].replace){s=l[a][s].replace}var n=h[r].fontName;if(i.getCharacterMetrics(s,n)){return h[t.font].variant}return null};var m={};m.mathord=function(e,t){var r=new s.MathNode("mi",[c(e.value,e.mode)]);var a=p(e,t);if(a){r.setAttribute("mathvariant",a)}return r};m.textord=function(e,t){var r=c(e.value,e.mode);var a=p(e,t)||"normal";var i;if(/[0-9]/.test(e.value)){i=new s.MathNode("mn",[r]);if(t.font){i.setAttribute("mathvariant",a)}}else{i=new s.MathNode("mi",[r]);i.setAttribute("mathvariant",a)}return i};m.bin=function(e){var t=new s.MathNode("mo",[c(e.value,e.mode)]);return t};m.rel=function(e){var t=new s.MathNode("mo",[c(e.value,e.mode)]);return t};m.open=function(e){var t=new s.MathNode("mo",[c(e.value,e.mode)]);return t};m.close=function(e){var t=new s.MathNode("mo",[c(e.value,e.mode)]);return t};m.inner=function(e){var t=new s.MathNode("mo",[c(e.value,e.mode)]);return t};m.punct=function(e){var t=new s.MathNode("mo",[c(e.value,e.mode)]);t.setAttribute("separator","true");return t};m.ordgroup=function(e,t){var r=f(e.value,t);var a=new s.MathNode("mrow",r);return a};m.text=function(e,t){var r=f(e.value.body,t);var a=new s.MathNode("mtext",r);return a};m.color=function(e,t){var r=f(e.value.value,t);var a=new s.MathNode("mstyle",r);a.setAttribute("mathcolor",e.value.color);return a};m.supsub=function(e,t){var r=[v(e.value.base,t)];if(e.value.sub){r.push(v(e.value.sub,t))}if(e.value.sup){r.push(v(e.value.sup,t))}var a;if(!e.value.sub){a="msup"}else if(!e.value.sup){a="msub"}else{a="msubsup"}var i=new s.MathNode(a,r);return i};m.genfrac=function(e,t){var r=new s.MathNode("mfrac",[v(e.value.numer,t),v(e.value.denom,t)]);if(!e.value.hasBarLine){r.setAttribute("linethickness","0px")}if(e.value.leftDelim!=null||e.value.rightDelim!=null){var a=[];if(e.value.leftDelim!=null){var i=new s.MathNode("mo",[new s.TextNode(e.value.leftDelim)]);i.setAttribute("fence","true");a.push(i)}a.push(r);if(e.value.rightDelim!=null){var n=new s.MathNode("mo",[new s.TextNode(e.value.rightDelim)]);n.setAttribute("fence","true");a.push(n)}var l=new s.MathNode("mrow",a);return l}return r};m.array=function(e,t){return new s.MathNode("mtable",e.value.body.map(function(e){return new s.MathNode("mtr",e.map(function(e){return new s.MathNode("mtd",[v(e,t)])}))}))};m.sqrt=function(e,t){var r;if(e.value.index){r=new s.MathNode("mroot",[v(e.value.body,t),v(e.value.index,t)])}else{r=new s.MathNode("msqrt",[v(e.value.body,t)])}return r};m.leftright=function(e,t){var r=f(e.value.body,t);if(e.value.left!=="."){var a=new s.MathNode("mo",[c(e.value.left,e.mode)]);a.setAttribute("fence","true");r.unshift(a)}if(e.value.right!=="."){var i=new s.MathNode("mo",[c(e.value.right,e.mode)]);i.setAttribute("fence","true");r.push(i)}var n=new s.MathNode("mrow",r);return n};m.middle=function(e,t){var r=new s.MathNode("mo",[c(e.value.middle,e.mode)]);r.setAttribute("fence","true");return r};m.accent=function(e,t){var r=new s.MathNode("mo",[c(e.value.accent,e.mode)]);var a=new s.MathNode("mover",[v(e.value.base,t),r]);a.setAttribute("accent","true");return a};m.spacing=function(e){var t;if(e.value==="\\ "||e.value==="\\space"||e.value===" "||e.value==="~"){t=new s.MathNode("mtext",[new s.TextNode("\xa0")])}else{t=new s.MathNode("mspace");t.setAttribute("width",a.spacingFunctions[e.value].size)}return t};m.op=function(e,t){var r;if(e.value.symbol){r=new s.MathNode("mo",[c(e.value.body,e.mode)])}else if(e.value.value){r=new s.MathNode("mo",f(e.value.value,t))}else{r=new s.MathNode("mi",[new s.TextNode(e.value.body.slice(1))])}return r};m.mod=function(e,t){var r=[];if(e.value.modType==="pod"||e.value.modType==="pmod"){r.push(new s.MathNode("mo",[c("(",e.mode)]))}if(e.value.modType!=="pod"){r.push(new s.MathNode("mo",[c("mod",e.mode)]))}if(e.value.value){var a=new s.MathNode("mspace");a.setAttribute("width","0.333333em");r.push(a);r=r.concat(f(e.value.value,t))}if(e.value.modType==="pod"||e.value.modType==="pmod"){r.push(new s.MathNode("mo",[c(")",e.mode)]))}return new s.MathNode("mo",r)};m.katex=function(e){var t=new s.MathNode("mtext",[new s.TextNode("KaTeX")]);return t};m.font=function(e,t){var r=e.value.font;return v(e.value.body,t.withFont(r))};m.delimsizing=function(e){var t=[];if(e.value.value!=="."){t.push(c(e.value.value,e.mode))}var r=new s.MathNode("mo",t);if(e.value.mclass==="mopen"||e.value.mclass==="mclose"){r.setAttribute("fence","true")}else{r.setAttribute("fence","false")}return r};m.styling=function(e,t){var r=f(e.value.value,t);var a=new s.MathNode("mstyle",r);var i={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]};var n=i[e.value.style];a.setAttribute("scriptlevel",n[0]);a.setAttribute("displaystyle",n[1]);return a};m.sizing=function(e,t){var r=f(e.value.value,t);var i=new s.MathNode("mstyle",r);i.setAttribute("mathsize",a.sizingMultiplier[e.value.size]+"em");return i};m.overline=function(e,t){var r=new s.MathNode("mo",[new s.TextNode("\u203e")]);r.setAttribute("stretchy","true");var a=new s.MathNode("mover",[v(e.value.body,t),r]);a.setAttribute("accent","true");return a};m.underline=function(e,t){var r=new s.MathNode("mo",[new s.TextNode("\u203e")]);r.setAttribute("stretchy","true");var a=new s.MathNode("munder",[v(e.value.body,t),r]);a.setAttribute("accentunder","true");return a};m.rule=function(e){var t=new s.MathNode("mrow");return t};m.kern=function(e){var t=new s.MathNode("mrow");return t};m.llap=function(e,t){var r=new s.MathNode("mpadded",[v(e.value.body,t)]);r.setAttribute("lspace","-1width");r.setAttribute("width","0px");return r};m.rlap=function(e,t){var r=new s.MathNode("mpadded",[v(e.value.body,t)]);r.setAttribute("width","0px");return r};m.phantom=function(e,t){var r=f(e.value.value,t);return new s.MathNode("mphantom",r)};m.mclass=function(e,t){var r=f(e.value.value,t);return new s.MathNode("mstyle",r)};var f=function(e,t){var r=[];for(var a=0;a<e.length;a++){var i=e[a];r.push(v(i,t))}return r};var v=function(e,t){if(!e){return new s.MathNode("mrow")}if(m[e.type]){return m[e.type](e,t)}else{throw new n("Got group of unknown type: '"+e.type+"'")}};var d=function(e,t,r){var a=f(e,r);var i=new s.MathNode("mrow",a);var n=new s.MathNode("annotation",[new s.TextNode(t)]);n.setAttribute("encoding","application/x-tex");var l=new s.MathNode("semantics",[i,n]);var o=new s.MathNode("math",[l]);return u(["katex-mathml"],[o])};t.exports=d},{"./ParseError":6,"./buildCommon":10,"./fontMetrics":18,"./mathMLTree":21,"./symbols":24,"./utils":26}],13:[function(e,t,r){var a=e("./buildHTML");var i=e("./buildMathML");var s=e("./buildCommon");var n=e("./Settings");var l=s.makeSpan;var o=function(e,t,r){r=r||new n({});var s=r.initialOptions();var o=i(e,t,s);var u=a(e,s);var h=l(["katex"],[o,u]);if(r.displayMode){return l(["katex-display"],[h])}else{return h}};t.exports=o},{"./Settings":8,"./buildCommon":10,"./buildHTML":11,"./buildMathML":12}],14:[function(e,t,r){"use strict";var a={left:0,center:.5,right:1};var i=[null,.5,.7,.8,.9,1,1.2,1.44,1.73,2.07,2.49];var s={i4:"italic ",n4:"",n7:"bold "};function n(e){for(var t in e){if(e.hasOwnProperty(t)){this[t]=e[t]}}}n.prototype.sizeChanged=function(){this.em=this.baseSize*i[this.sizeIndex]*this.styleFactor;this.fontChanged()};n.prototype.fontChanged=function(){this.font=this.variant+this.weight+this.em+"px "+this.family};n.prototype.withStyle=function(e){var t=new n(this);t.styleFactor=e;t.sizeChanged();return t};n.prototype.withSize=function(e){var t=new n(this);t.sizeIndex=e;t.sizeChanged();return t};n.prototype.withFace=function(e,t){var r=new n(this);r.variant=s[t];r.family=e;r.fvd=e+":"+t;r.fontChanged();return r};n.prototype.withYShift=function(e){var t=new n(this);t.ypos+=e*t.em;return t};n.prototype.withHAlign=function(e){var t=new n(this);t.halign=e;return t};n.prototype.withColor=function(e){var t=new n(this);t.color=e;return t};function l(e,t){this.ctxt=e;this.fontSize=16;this.left=Infinity;this.top=Infinity;this.right=-Infinity;this.bottom=-Infinity;this.x=0;this.outList=[];this.fontsUsed={};this.horizontalLines=[];this.prevClass="";this.baseSize=t.fontSize||16*1.21;this.state=new n({baseSize:this.baseSize,sizeIndex:5,styleFactor:1,variant:"",weight:"",family:"KaTeX_Main",fvd:"KaTeX_Main:n4",color:null,ypos:0,halign:t.halign||a.left});this.state.sizeChanged()}var o=.16667;var u=.22222;var h=.27778;var c={mord_mop:o,mord_mbin:u,mord_mrel:h,mord_minner:o,mop_mord:o,mop_mop:o,mop_mrel:h,mop_minner:o,mbin_mord:u,mbin_mop:u,mbin_mopen:u,mbin_minner:u,mrel_mord:h,mrel_mop:h,mrel_mopen:h,mrel_minner:h,mclose_mop:o,mclose_mbin:u,mclose_mrel:h,mclose_minner:o,mpunct_mord:o,mpunct_mop:o,mpunct_mrel:o,mpunct_mopen:o,mpunct_mclose:o,mpunct_mpunct:o,mpunct_minner:o,minner_mord:o,minner_mop:o,minner_mbin:u,minner_mrel:h,minner_mopen:o,minner_mpunct:o,minner_minner:o};var p={mord_mop:o,mop_mord:o,mop_mop:o,mclose_mop:o,minner_mop:o};l.prototype.prepare=function(e){var t=this.state;var r=!e.classes?"":e.classes.filter(function(e){return e!==null}).join(" ");if(r===""){r=[]}else{r=r.split(" ")}var i;var s;var n;var l=null;function m(){if(l===null){var e=n-1;while(e-->0){var t=r[e];if(!t){continue}if(t.substr(4)==="size"){l=+t.substr(4);break}}}return l}var f=false;var v="";var d=null;var g=0;var y=null;var b=null;n=r.length;while(n--){var w=r[n];switch(w){case"delimsizing":if(m()!==null){this.state=this.state.withFace("KaTeX_Size"+l,"n4")}break;case"delim-size1":case"small-op":this.state=this.state.withFace("KaTeX_Size1","n4");break;case"large-op":this.state=this.state.withFace("KaTeX_Size2","n4");break;case"delim-size4":this.state=this.state.withFace("KaTeX_Size4","n4");break;case"fontsize-ensurer":case"sizing":if(m()!==null){this.state=this.state.withSize(l)}break;case"frac-line":case"sqrt-line":case"overline-line":this.horizontalLines.push({y:this.state.ypos,height:Math.max(1,.04*this.state.em),color:this.state.color});break;case"mfrac":case"accent":case"op-limits":case"col-align-c":this.state=this.state.withHAlign(a.center);break;case"root":d=5/18;g=-10/18;break;case"accent-vec":d+=.326;break;case"accent-body":y=this.x;break;case"mathit":this.state=this.state.withFace("KaTeX_Math","i4");break;case"mathbf":this.state=this.state.withFace("KaTeX_Main","n7");break;case"amsrm":this.state=this.state.withFace("KaTeX_AMS","n4");break;case"mathbb":this.state=this.state.withFace("KaTeX_AMS","n4");break;case"mathcal":this.state=this.state.withFace("KaTeX_Caligraphic","n4");break;case"mathfrak":this.state=this.state.withFace("KaTeX_Fraktur","n4");break;case"mathtt":this.state=this.state.withFace("KaTeX_Typewriter","n4");break;case"mathscr":this.state=this.state.withFace("KaTeX_Script","n4");break;case"mathsf":this.state=this.state.withFace("KaTeX_SansSerif","n4");break;case"mainit":this.state=this.state.withFace("KaTeX_Main","i4");break;case"mathrm":break;case"mord":case"mop":case"mbin":case"mrel":case"mopen":case"mclose":case"minner":case"mpunct":v=w;break;case"msupsub":case"col-align-l":this.state=this.state.withHAlign(a.left);break;case"col-align-r":this.state=this.state.withHAlign(a.right);break;case"scriptscriptstyle":this.state=this.state.withStyle(.5);break;case"scriptstyle":this.state=this.state.withStyle(.7);break;case"textstyle":this.state=this.state.withStyle(1);break;case"size1":case"size2":case"size3":case"size4":case"size5":case"size6":case"size7":case"size8":case"size9":case"size10":l=+w.substr(4);break;case"negativethinspace":g+=-o;break;case"thinspace":g+=o;break;case"mediumspace":g+=u;break;case"thickspace":g+=h;break;case"enspace":g+=.5;break;case"quad":g+=1;break;case"qquad":g+=2;break;case"k":break;case"a":this.state=this.state.withStyle(.75).withYShift(-.2);d=-.32;break;case"t":d=-.23;break;case"e":this.state=this.state.withYShift(.2155);d=-.1667;break;case"x":d=-.125;break;case"vlist":f=true;break;case"llap":case"rlap":b=w;break;case"arraycolsep":case"base":case"baseline-fix":case"bottom":case"cramped":case"delimsizinginner":case"displaystyle":case"katex-logo":case"katex-html":case"mspace":case"mtable":case"mult":case"op-symbol":case"overline":case"reset-scriptscriptstyle":case"reset-scriptstyle":case"reset-size1":case"reset-size2":case"reset-size3":case"reset-size4":case"reset-size5":case"reset-size6":case"reset-size7":case"reset-size8":case"reset-size9":case"reset-size10":case"reset-textstyle":case"sqrt":case"sqrt-sign":case"strut":case"style-wrap":case"text":case"uncramped":break;default:}}for(i in e.style){if(e.style.hasOwnProperty(i)){s=e.style[i];switch(i){case"top":if(s.substr(s.length-2)!=="em"){throw new Error("em is the only supported unit.")}s=+s.substr(0,s.length-2);this.state=this.state.withYShift(s);break;case"fontSize":if(s==="0em"){return}break;case"marginLeft":if(s.substr(s.length-2)!=="em"){throw new Error("em is the only supported unit.")}d=+s.substr(0,s.length-2);break;case"marginRight":case"width":if(s.substr(s.length-2)!=="em"){throw new Error("em is the only supported unit.")}g=+s.substr(0,s.length-2);break;case"color":this.state=this.state.withColor(s);break;case"height":case"verticalAlign":break;default:}}}for(i in e.attributes){if(e.attributes.hasOwnProperty(i)){s=e.attributes[i];switch(i){case"aria-hidden":break;default:}}}var x=this.prevClass+"_"+v;if(d===null){d=p[x];if(d===undefined&&this.state.styleFactor===1){d=c[x]}}if(d){this.x+=d*this.state.em}if(f){this.halign(e.children,this.state.halign)}else if(b){this.lap(b,e.children)}else if(e.children){e.children.forEach(this.prepare.bind(this))}else{this.ctxt.font=this.state.font;var k=e.value;var z=this.ctxt.measureText(k);var S=z.width;if(e.italic){g+=e.italic}if(k!==""&&k!=="\u200b"){var M={x:this.x,y:this.state.ypos,font:this.state.font,color:this.state.color,text:k};this.outList.push(M);this.fontsUsed[this.state.fvd]=this.state.font}this.x+=S}this.x+=g*this.state.em;if(y!==null){this.x=y}this.state=t;this.prevClass=v};l.prototype.halign=function(e,t){var r;var a;var i=this.horizontalLines;this.horizontalLines=[];var s=this.outList;var n=this.x;var l=s.length;var o=0;for(r=0;r<e.length;++r){var u=s.length;this.x=0;this.prepare(e[r]);var h=this.x;if(o<h){o=h}a=t*h;while(u<s.length){s[u++].x-=a}}a=t*o+n;while(l<s.length){s[l++].x+=a}for(r=0;r<this.horizontalLines.length;++r){var c=this.horizontalLines[r];c.x=n;c.width=o;s.push(c)}this.x=n+o;this.horizontalLines=i};l.prototype.lap=function(e,t){var r=t[0];var a=this.x;var i=this.outList;var s=i.length;this.prepare(r);var n=this.x-a;this.x=a;if(e==="llap"){while(s<i.length){i[s++].x-=n}}};function m(e,t){var r=e.getContext?e.getContext("2d"):e;var a=r.font;var i=r.fillStyle;try{var s=t(r);r.font=a;r.fillStyle=i;return s}catch(n){r.font=a;r.fillStyle=i;throw n}}function f(e,t,r,a){this.fontsUsed=r;this.renderAt=function(r,i){r-=a;m(e,function(e){var a=e.fillStyle;for(var s=0;s<t.length;++s){var n=t[s];e.fillStyle=n.color===null?a:n.color;if(n.text){e.font=n.font;e.fillText(n.text,n.x+r,n.y+i)}else if(n.width||n.height){e.fillRect(n.x+r,n.y+i-n.height,n.width,n.height)}}})}}function v(e,t,r){return m(t,function(t){var i=r.halign||a.left;var s=new l(t,r);s.prepare(e);var n=s.state.em;var o=s.x*i;var u=new f(t,s.outList,s.fontsUsed,o);u.width=s.x;u.depth=e.depth*n;u.height=e.height*n;return u})}function d(e,t,r,a,i){v(e,t,i).renderAt(r,a)}t.exports={prepare:v,render:d}},{}],15:[function(e,t,r){var a=e("./ParseError");var i=e("./Style");var s=e("./buildCommon");var n=e("./fontMetrics");var l=e("./symbols");var o=e("./utils");var u=s.makeSpan;var h=function(e,t){if(l.math[e]&&l.math[e].replace){return n.getCharacterMetrics(l.math[e].replace,t)}else{return n.getCharacterMetrics(e,t)}};var c=function(e,t,r,a){return s.makeSymbol(e,"Size"+t+"-Regular",r,a)};var p=function(e,t,r,a){a=a||[];var i=u(a.concat(["style-wrap",r.style.reset(),t.cls()]),[e],r);var s=t.sizeMultiplier/r.style.sizeMultiplier;i.height*=s;i.depth*=s;i.maxFontSize=t.sizeMultiplier;return i};var m=function(e,t,r,a,i,n){var l=s.makeSymbol(e,"Main-Regular",i,a);var o=p(l,t,a,n);if(r){var u=(1-a.style.sizeMultiplier/t.sizeMultiplier)*a.style.metrics.axisHeight;o.style.top=u+"em";o.height-=u;o.depth+=u}return o};var f=function(e,t,r,a,s,n){var l=c(e,t,s,a);var o=p(u(["delimsizing","size"+t],[l],a),i.TEXT,a,n);if(r){var h=(1-a.style.sizeMultiplier)*a.style.metrics.axisHeight;o.style.top=h+"em";o.height-=h;o.depth+=h}return o};var v=function(e,t,r){var a;if(t==="Size1-Regular"){a="delim-size1"}else if(t==="Size4-Regular"){a="delim-size4"}var i=u(["delimsizinginner",a],[u([],[s.makeSymbol(e,t,r)])]);return{type:"elem",elem:i}};var d=function(e,t,r,a,n,l){var o;var c;var m;var f;o=m=f=e;c=null;var d="Size1-Regular";if(e==="\\uparrow"){m=f="\u23d0"}else if(e==="\\Uparrow"){m=f="\u2016"}else if(e==="\\downarrow"){o=m="\u23d0"}else if(e==="\\Downarrow"){o=m="\u2016"}else if(e==="\\updownarrow"){o="\\uparrow";m="\u23d0";f="\\downarrow"}else if(e==="\\Updownarrow"){o="\\Uparrow";m="\u2016";f="\\Downarrow"}else if(e==="["||e==="\\lbrack"){o="\u23a1";m="\u23a2";f="\u23a3";d="Size4-Regular"}else if(e==="]"||e==="\\rbrack"){o="\u23a4";m="\u23a5";f="\u23a6";d="Size4-Regular"}else if(e==="\\lfloor"){m=o="\u23a2";f="\u23a3";d="Size4-Regular"}else if(e==="\\lceil"){o="\u23a1";m=f="\u23a2";d="Size4-Regular"}else if(e==="\\rfloor"){m=o="\u23a5";f="\u23a6";d="Size4-Regular"}else if(e==="\\rceil"){o="\u23a4";m=f="\u23a5";d="Size4-Regular"}else if(e==="("){o="\u239b";m="\u239c";f="\u239d";d="Size4-Regular"}else if(e===")"){o="\u239e";m="\u239f";f="\u23a0";d="Size4-Regular"}else if(e==="\\{"||e==="\\lbrace"){o="\u23a7";c="\u23a8";f="\u23a9";m="\u23aa";d="Size4-Regular"}else if(e==="\\}"||e==="\\rbrace"){o="\u23ab";c="\u23ac";f="\u23ad";m="\u23aa";d="Size4-Regular"}else if(e==="\\lgroup"){o="\u23a7";f="\u23a9";m="\u23aa";d="Size4-Regular"}else if(e==="\\rgroup"){o="\u23ab";f="\u23ad";m="\u23aa";d="Size4-Regular"}else if(e==="\\lmoustache"){o="\u23a7";f="\u23ad";m="\u23aa";d="Size4-Regular"}else if(e==="\\rmoustache"){o="\u23ab";f="\u23a9";m="\u23aa";d="Size4-Regular"}else if(e==="\\surd"){o="\ue001";f="\u23b7";m="\ue000";d="Size4-Regular"}var g=h(o,d);var y=g.height+g.depth;var b=h(m,d);var w=b.height+b.depth;var x=h(f,d);var k=x.height+x.depth;var z=0;var S=1;if(c!==null){var M=h(c,d);z=M.height+M.depth;S=2}var T=y+k+z;var A=Math.ceil((t-T)/(S*w));var N=T+A*S*w;var q=a.style.metrics.axisHeight;if(r){q*=a.style.sizeMultiplier}var C=N/2-q;var R=[];R.push(v(f,d,n));var E;if(c===null){for(E=0;E<A;E++){R.push(v(m,d,n))}}else{for(E=0;E<A;E++){R.push(v(m,d,n))}R.push(v(c,d,n));for(E=0;E<A;E++){R.push(v(m,d,n))}}R.push(v(o,d,n));var O=s.makeVList(R,"bottom",C,a);return p(u(["delimsizing","mult"],[O],a),i.TEXT,a,l)};var g=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","\\surd"];var y=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache"];var b=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"];var w=[0,1.2,1.8,2.4,3];var x=function(e,t,r,i,s){if(e==="<"||e==="\\lt"){e="\\langle"}else if(e===">"||e==="\\gt"){e="\\rangle"}if(o.contains(g,e)||o.contains(b,e)){return f(e,t,false,r,i,s)}else if(o.contains(y,e)){return d(e,w[t],false,r,i,s)}else{throw new a("Illegal delimiter: '"+e+"'")}};var k=[{type:"small",style:i.SCRIPTSCRIPT},{type:"small",style:i.SCRIPT},{type:"small",style:i.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}];var z=[{type:"small",style:i.SCRIPTSCRIPT},{type:"small",style:i.SCRIPT},{type:"small",style:i.TEXT},{type:"stack"}];var S=[{type:"small",style:i.SCRIPTSCRIPT},{type:"small",style:i.SCRIPT},{type:"small",style:i.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var M=function(e){if(e.type==="small"){return"Main-Regular"}else if(e.type==="large"){return"Size"+e.size+"-Regular"}else if(e.type==="stack"){return"Size4-Regular"}};var T=function(e,t,r,a){var i=Math.min(2,3-a.style.size);for(var s=i;s<r.length;s++){if(r[s].type==="stack"){break}var n=h(e,M(r[s]));var l=n.height+n.depth;if(r[s].type==="small"){l*=r[s].style.sizeMultiplier}if(l>t){return r[s]}}return r[r.length-1]};var A=function(e,t,r,a,i,s){if(e==="<"||e==="\\lt"){e="\\langle"}else if(e===">"||e==="\\gt"){e="\\rangle"}var n;if(o.contains(b,e)){n=k}else if(o.contains(g,e)){n=S}else{n=z}var l=T(e,t,n,a);if(l.type==="small"){return m(e,l.style,r,a,i,s)}else if(l.type==="large"){return f(e,l.size,r,a,i,s)}else if(l.type==="stack"){return d(e,t,r,a,i,s)}};var N=function(e,t,r,a,i,s){var l=a.style.metrics.axisHeight*a.style.sizeMultiplier;var o=901;var u=5/n.metrics.ptPerEm;var h=Math.max(t-l,r+l);var c=Math.max(h/500*o,2*h-u);return A(e,c,true,a,i,s)};t.exports={sizedDelim:x,customSizedDelim:A,leftRightDelim:N}},{"./ParseError":6,"./Style":9,"./buildCommon":10,"./fontMetrics":18,"./symbols":24,"./utils":26}],16:[function(e,t,r){var a=e("./unicodeRegexes");var i=e("./utils");var s=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(" ")};function n(e,t,r){this.classes=e||[];this.children=t||[];this.height=0;this.depth=0;this.maxFontSize=0;this.style={};this.attributes={};if(r){if(r.style.isTight()){this.classes.push("mtight")}if(r.getColor()){this.style.color=r.getColor()}}}n.prototype.setAttribute=function(e,t){this.attributes[e]=t};n.prototype.tryCombine=function(e){return false};n.prototype.toNode=function(){var e=document.createElement("span");e.className=s(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){e.setAttribute(r,this.attributes[r])}}for(var a=0;a<this.children.length;a++){e.appendChild(this.children[a].toNode())}return e};n.prototype.toMarkup=function(){var e="<span";if(this.classes.length){e+=' class="';e+=i.escape(s(this.classes));e+='"'}var t="";for(var r in this.style){if(this.style.hasOwnProperty(r)){t+=i.hyphenate(r)+":"+this.style[r]+";"}}if(t){e+=' style="'+i.escape(t)+'"'}for(var a in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,a)){e+=" "+a+'="';e+=i.escape(this.attributes[a]);e+='"'}}e+=">";for(var n=0;n<this.children.length;n++){e+=this.children[n].toMarkup()}e+="</span>";return e};function l(e){this.children=e||[];this.height=0;this.depth=0;this.maxFontSize=0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t<this.children.length;t++){e.appendChild(this.children[t].toNode())}return e};l.prototype.toMarkup=function(){var e="";for(var t=0;t<this.children.length;t++){e+=this.children[t].toMarkup()}return e};var o={"\xee":"\u0131\u0302","\xef":"\u0131\u0308","\xed":"\u0131\u0301","\xec":"\u0131\u0300"};function u(e,t,r,i,s,n,l){this.value=e||"";this.height=t||0;this.depth=r||0;this.italic=i||0;this.skew=s||0;this.classes=n||[];this.style=l||{};this.maxFontSize=0;if(a.cjkRegex.test(e)){if(a.hangulRegex.test(e)){this.classes.push("hangul_fallback")}else{this.classes.push("cjk_fallback")}}if(/[\xee\xef\xed\xec]/.test(this.value)){this.value=o[this.value]}}u.prototype.tryCombine=function(e){if(!e||!(e instanceof u)||this.italic>0||s(this.classes)!==s(e.classes)||this.skew!==e.skew||this.maxFontSize!==e.maxFontSize){return false;
+}for(var t in this.style){if(this.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}for(t in e.style){if(e.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}this.value+=e.value;this.height=Math.max(this.height,e.height);this.depth=Math.max(this.depth,e.depth);this.italic=e.italic;return true};u.prototype.toNode=function(){var e=document.createTextNode(this.value);var t=null;if(this.italic>0){t=document.createElement("span");t.style.marginRight=this.italic+"em"}if(this.classes.length>0){t=t||document.createElement("span");t.className=s(this.classes)}for(var r in this.style){if(this.style.hasOwnProperty(r)){t=t||document.createElement("span");t.style[r]=this.style[r]}}if(t){t.appendChild(e);return t}else{return e}};u.prototype.toMarkup=function(){var e=false;var t="<span";if(this.classes.length){e=true;t+=' class="';t+=i.escape(s(this.classes));t+='"'}var r="";if(this.italic>0){r+="margin-right:"+this.italic+"em;"}for(var a in this.style){if(this.style.hasOwnProperty(a)){r+=i.hyphenate(a)+":"+this.style[a]+";"}}if(r){e=true;t+=' style="'+i.escape(r)+'"'}var n=i.escape(this.value);if(e){t+=">";t+=n;t+="</span>";return t}else{return n}};t.exports={span:n,documentFragment:l,symbolNode:u}},{"./unicodeRegexes":25,"./utils":26}],17:[function(e,t,r){var a=e("./parseData");var i=e("./ParseError");var s=e("./Style");var n=a.ParseNode;function l(e,t){var r=[];var a=[r];var s=[];while(true){var l=e.parseExpression(false,null);r.push(new n("ordgroup",l,e.mode));var o=e.nextToken.text;if(o==="&"){e.consume()}else if(o==="\\end"){break}else if(o==="\\\\"||o==="\\cr"){var u=e.parseFunction();s.push(u.value.size);r=[];a.push(r)}else{throw new i("Expected & or \\\\ or \\end",e.nextToken)}}t.body=a;t.rowGaps=s;return new n(t.type,t,e.mode)}function o(e,r,a){if(typeof e==="string"){e=[e]}if(typeof r==="number"){r={numArgs:r}}var i={numArgs:r.numArgs||0,argTypes:r.argTypes,greediness:1,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,handler:a};for(var s=0;s<e.length;++s){t.exports[e[s]]=i}}o("array",{numArgs:1},function(e,t){var r=t[0];r=r.value.map?r.value:[r];var a=r.map(function(e){var t=e.value;if("lcr".indexOf(t)!==-1){return{type:"align",align:t}}else if(t==="|"){return{type:"separator",separator:"|"}}throw new i("Unknown column alignment: "+e.value,e)});var s={type:"array",cols:a,hskipBeforeAndAfter:true};s=l(e.parser,s);return s});o(["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],{},function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName];var r={type:"array",hskipBeforeAndAfter:false};r=l(e.parser,r);if(t){r=new n("leftright",{body:[r],left:t[0],right:t[1]},e.mode)}return r});o("cases",{},function(e){var t={type:"array",arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:s.TEXT.metrics.quad},{type:"align",align:"l",pregap:0,postgap:0}]};t=l(e.parser,t);t=new n("leftright",{body:[t],left:"\\{",right:"."},e.mode);return t});o("aligned",{},function(e){var t={type:"array",cols:[]};t=l(e.parser,t);var r=new n("ordgroup",[],e.mode);var a=0;t.value.body.forEach(function(e){var t;for(t=1;t<e.length;t+=2){e[t].value.unshift(r)}if(a<e.length){a=e.length}});for(var i=0;i<a;++i){var s="r";var o=0;if(i%2===1){s="l"}else if(i>0){o=2}t.value.cols[i]={type:"align",align:s,pregap:o,postgap:0}}return t})},{"./ParseError":6,"./Style":9,"./parseData":22}],18:[function(e,t,r){var a=e("./Style");var i=e("./unicodeRegexes").cjkRegex;var s={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25]};var n=0;var l=0;var o=0;var u=0;var h=.431;var c=1;var p=0;var m=.04;var f=.111;var v=.166;var d=.2;var g=.6;var y=.1;var b=10;var w=2/b;var x={defaultRuleThickness:m,bigOpSpacing1:f,bigOpSpacing2:v,bigOpSpacing3:d,bigOpSpacing4:g,bigOpSpacing5:y,ptPerEm:b,doubleRuleSep:w};var k=e("./fontMetricsData");var z={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xc6":"A","\xc7":"C","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xd0":"D","\xd1":"N","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xdd":"Y","\xde":"o","\xdf":"B","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xe6":"a","\xe7":"c","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xf0":"d","\xf1":"n","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xfd":"y","\xfe":"o","\xff":"y","\u0410":"A","\u0411":"B","\u0412":"B","\u0413":"F","\u0414":"A","\u0415":"E","\u0416":"K","\u0417":"3","\u0418":"N","\u0419":"N","\u041a":"K","\u041b":"N","\u041c":"M","\u041d":"H","\u041e":"O","\u041f":"N","\u0420":"P","\u0421":"C","\u0422":"T","\u0423":"y","\u0424":"O","\u0425":"X","\u0426":"U","\u0427":"h","\u0428":"W","\u0429":"W","\u042a":"B","\u042b":"X","\u042c":"B","\u042d":"3","\u042e":"X","\u042f":"R","\u0430":"a","\u0431":"b","\u0432":"a","\u0433":"r","\u0434":"y","\u0435":"e","\u0436":"m","\u0437":"e","\u0438":"n","\u0439":"n","\u043a":"n","\u043b":"n","\u043c":"m","\u043d":"n","\u043e":"o","\u043f":"n","\u0440":"p","\u0441":"c","\u0442":"o","\u0443":"y","\u0444":"b","\u0445":"x","\u0446":"n","\u0447":"n","\u0448":"w","\u0449":"w","\u044a":"a","\u044b":"m","\u044c":"a","\u044d":"e","\u044e":"m","\u044f":"r"};var S=function(e,t){var r=e.charCodeAt(0);if(e[0]in z){r=z[e[0]].charCodeAt(0)}else if(i.test(e[0])){r="M".charCodeAt(0)}var a=k[t][r];if(a){return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}};t.exports={metrics:x,sigmas:s,getCharacterMetrics:S}},{"./Style":9,"./fontMetricsData":19,"./unicodeRegexes":25}],19:[function(e,t,r){t.exports={"AMS-Regular":{65:[0,.68889,0,0],66:[0,.68889,0,0],67:[0,.68889,0,0],68:[0,.68889,0,0],69:[0,.68889,0,0],70:[0,.68889,0,0],71:[0,.68889,0,0],72:[0,.68889,0,0],73:[0,.68889,0,0],74:[.16667,.68889,0,0],75:[0,.68889,0,0],76:[0,.68889,0,0],77:[0,.68889,0,0],78:[0,.68889,0,0],79:[.16667,.68889,0,0],80:[0,.68889,0,0],81:[.16667,.68889,0,0],82:[0,.68889,0,0],83:[0,.68889,0,0],84:[0,.68889,0,0],85:[0,.68889,0,0],86:[0,.68889,0,0],87:[0,.68889,0,0],88:[0,.68889,0,0],89:[0,.68889,0,0],90:[0,.68889,0,0],107:[0,.68889,0,0],165:[0,.675,.025,0],174:[.15559,.69224,0,0],240:[0,.68889,0,0],295:[0,.68889,0,0],710:[0,.825,0,0],732:[0,.9,0,0],770:[0,.825,0,0],771:[0,.9,0,0],989:[.08167,.58167,0,0],1008:[0,.43056,.04028,0],8245:[0,.54986,0,0],8463:[0,.68889,0,0],8487:[0,.68889,0,0],8498:[0,.68889,0,0],8502:[0,.68889,0,0],8503:[0,.68889,0,0],8504:[0,.68889,0,0],8513:[0,.68889,0,0],8592:[-.03598,.46402,0,0],8594:[-.03598,.46402,0,0],8602:[-.13313,.36687,0,0],8603:[-.13313,.36687,0,0],8606:[.01354,.52239,0,0],8608:[.01354,.52239,0,0],8610:[.01354,.52239,0,0],8611:[.01354,.52239,0,0],8619:[0,.54986,0,0],8620:[0,.54986,0,0],8621:[-.13313,.37788,0,0],8622:[-.13313,.36687,0,0],8624:[0,.69224,0,0],8625:[0,.69224,0,0],8630:[0,.43056,0,0],8631:[0,.43056,0,0],8634:[.08198,.58198,0,0],8635:[.08198,.58198,0,0],8638:[.19444,.69224,0,0],8639:[.19444,.69224,0,0],8642:[.19444,.69224,0,0],8643:[.19444,.69224,0,0],8644:[.1808,.675,0,0],8646:[.1808,.675,0,0],8647:[.1808,.675,0,0],8648:[.19444,.69224,0,0],8649:[.1808,.675,0,0],8650:[.19444,.69224,0,0],8651:[.01354,.52239,0,0],8652:[.01354,.52239,0,0],8653:[-.13313,.36687,0,0],8654:[-.13313,.36687,0,0],8655:[-.13313,.36687,0,0],8666:[.13667,.63667,0,0],8667:[.13667,.63667,0,0],8669:[-.13313,.37788,0,0],8672:[-.064,.437,0,0],8674:[-.064,.437,0,0],8705:[0,.825,0,0],8708:[0,.68889,0,0],8709:[.08167,.58167,0,0],8717:[0,.43056,0,0],8722:[-.03598,.46402,0,0],8724:[.08198,.69224,0,0],8726:[.08167,.58167,0,0],8733:[0,.69224,0,0],8736:[0,.69224,0,0],8737:[0,.69224,0,0],8738:[.03517,.52239,0,0],8739:[.08167,.58167,0,0],8740:[.25142,.74111,0,0],8741:[.08167,.58167,0,0],8742:[.25142,.74111,0,0],8756:[0,.69224,0,0],8757:[0,.69224,0,0],8764:[-.13313,.36687,0,0],8765:[-.13313,.37788,0,0],8769:[-.13313,.36687,0,0],8770:[-.03625,.46375,0,0],8774:[.30274,.79383,0,0],8776:[-.01688,.48312,0,0],8778:[.08167,.58167,0,0],8782:[.06062,.54986,0,0],8783:[.06062,.54986,0,0],8785:[.08198,.58198,0,0],8786:[.08198,.58198,0,0],8787:[.08198,.58198,0,0],8790:[0,.69224,0,0],8791:[.22958,.72958,0,0],8796:[.08198,.91667,0,0],8806:[.25583,.75583,0,0],8807:[.25583,.75583,0,0],8808:[.25142,.75726,0,0],8809:[.25142,.75726,0,0],8812:[.25583,.75583,0,0],8814:[.20576,.70576,0,0],8815:[.20576,.70576,0,0],8816:[.30274,.79383,0,0],8817:[.30274,.79383,0,0],8818:[.22958,.72958,0,0],8819:[.22958,.72958,0,0],8822:[.1808,.675,0,0],8823:[.1808,.675,0,0],8828:[.13667,.63667,0,0],8829:[.13667,.63667,0,0],8830:[.22958,.72958,0,0],8831:[.22958,.72958,0,0],8832:[.20576,.70576,0,0],8833:[.20576,.70576,0,0],8840:[.30274,.79383,0,0],8841:[.30274,.79383,0,0],8842:[.13597,.63597,0,0],8843:[.13597,.63597,0,0],8847:[.03517,.54986,0,0],8848:[.03517,.54986,0,0],8858:[.08198,.58198,0,0],8859:[.08198,.58198,0,0],8861:[.08198,.58198,0,0],8862:[0,.675,0,0],8863:[0,.675,0,0],8864:[0,.675,0,0],8865:[0,.675,0,0],8872:[0,.69224,0,0],8873:[0,.69224,0,0],8874:[0,.69224,0,0],8876:[0,.68889,0,0],8877:[0,.68889,0,0],8878:[0,.68889,0,0],8879:[0,.68889,0,0],8882:[.03517,.54986,0,0],8883:[.03517,.54986,0,0],8884:[.13667,.63667,0,0],8885:[.13667,.63667,0,0],8888:[0,.54986,0,0],8890:[.19444,.43056,0,0],8891:[.19444,.69224,0,0],8892:[.19444,.69224,0,0],8901:[0,.54986,0,0],8903:[.08167,.58167,0,0],8905:[.08167,.58167,0,0],8906:[.08167,.58167,0,0],8907:[0,.69224,0,0],8908:[0,.69224,0,0],8909:[-.03598,.46402,0,0],8910:[0,.54986,0,0],8911:[0,.54986,0,0],8912:[.03517,.54986,0,0],8913:[.03517,.54986,0,0],8914:[0,.54986,0,0],8915:[0,.54986,0,0],8916:[0,.69224,0,0],8918:[.0391,.5391,0,0],8919:[.0391,.5391,0,0],8920:[.03517,.54986,0,0],8921:[.03517,.54986,0,0],8922:[.38569,.88569,0,0],8923:[.38569,.88569,0,0],8926:[.13667,.63667,0,0],8927:[.13667,.63667,0,0],8928:[.30274,.79383,0,0],8929:[.30274,.79383,0,0],8934:[.23222,.74111,0,0],8935:[.23222,.74111,0,0],8936:[.23222,.74111,0,0],8937:[.23222,.74111,0,0],8938:[.20576,.70576,0,0],8939:[.20576,.70576,0,0],8940:[.30274,.79383,0,0],8941:[.30274,.79383,0,0],8994:[.19444,.69224,0,0],8995:[.19444,.69224,0,0],9416:[.15559,.69224,0,0],9484:[0,.69224,0,0],9488:[0,.69224,0,0],9492:[0,.37788,0,0],9496:[0,.37788,0,0],9585:[.19444,.68889,0,0],9586:[.19444,.74111,0,0],9632:[0,.675,0,0],9633:[0,.675,0,0],9650:[0,.54986,0,0],9651:[0,.54986,0,0],9654:[.03517,.54986,0,0],9660:[0,.54986,0,0],9661:[0,.54986,0,0],9664:[.03517,.54986,0,0],9674:[.11111,.69224,0,0],9733:[.19444,.69224,0,0],10003:[0,.69224,0,0],10016:[0,.69224,0,0],10731:[.11111,.69224,0,0],10846:[.19444,.75583,0,0],10877:[.13667,.63667,0,0],10878:[.13667,.63667,0,0],10885:[.25583,.75583,0,0],10886:[.25583,.75583,0,0],10887:[.13597,.63597,0,0],10888:[.13597,.63597,0,0],10889:[.26167,.75726,0,0],10890:[.26167,.75726,0,0],10891:[.48256,.98256,0,0],10892:[.48256,.98256,0,0],10901:[.13667,.63667,0,0],10902:[.13667,.63667,0,0],10933:[.25142,.75726,0,0],10934:[.25142,.75726,0,0],10935:[.26167,.75726,0,0],10936:[.26167,.75726,0,0],10937:[.26167,.75726,0,0],10938:[.26167,.75726,0,0],10949:[.25583,.75583,0,0],10950:[.25583,.75583,0,0],10955:[.28481,.79383,0,0],10956:[.28481,.79383,0,0],57350:[.08167,.58167,0,0],57351:[.08167,.58167,0,0],57352:[.08167,.58167,0,0],57353:[0,.43056,.04028,0],57356:[.25142,.75726,0,0],57357:[.25142,.75726,0,0],57358:[.41951,.91951,0,0],57359:[.30274,.79383,0,0],57360:[.30274,.79383,0,0],57361:[.41951,.91951,0,0],57366:[.25142,.75726,0,0],57367:[.25142,.75726,0,0],57368:[.25142,.75726,0,0],57369:[.25142,.75726,0,0],57370:[.13597,.63597,0,0],57371:[.13597,.63597,0,0]},"Caligraphic-Regular":{48:[0,.43056,0,0],49:[0,.43056,0,0],50:[0,.43056,0,0],51:[.19444,.43056,0,0],52:[.19444,.43056,0,0],53:[.19444,.43056,0,0],54:[0,.64444,0,0],55:[.19444,.43056,0,0],56:[0,.64444,0,0],57:[.19444,.43056,0,0],65:[0,.68333,0,.19445],66:[0,.68333,.03041,.13889],67:[0,.68333,.05834,.13889],68:[0,.68333,.02778,.08334],69:[0,.68333,.08944,.11111],70:[0,.68333,.09931,.11111],71:[.09722,.68333,.0593,.11111],72:[0,.68333,.00965,.11111],73:[0,.68333,.07382,0],74:[.09722,.68333,.18472,.16667],75:[0,.68333,.01445,.05556],76:[0,.68333,0,.13889],77:[0,.68333,0,.13889],78:[0,.68333,.14736,.08334],79:[0,.68333,.02778,.11111],80:[0,.68333,.08222,.08334],81:[.09722,.68333,0,.11111],82:[0,.68333,0,.08334],83:[0,.68333,.075,.13889],84:[0,.68333,.25417,0],85:[0,.68333,.09931,.08334],86:[0,.68333,.08222,0],87:[0,.68333,.08222,.08334],88:[0,.68333,.14643,.13889],89:[.09722,.68333,.08222,.08334],90:[0,.68333,.07944,.13889]},"Fraktur-Regular":{33:[0,.69141,0,0],34:[0,.69141,0,0],38:[0,.69141,0,0],39:[0,.69141,0,0],40:[.24982,.74947,0,0],41:[.24982,.74947,0,0],42:[0,.62119,0,0],43:[.08319,.58283,0,0],44:[0,.10803,0,0],45:[.08319,.58283,0,0],46:[0,.10803,0,0],47:[.24982,.74947,0,0],48:[0,.47534,0,0],49:[0,.47534,0,0],50:[0,.47534,0,0],51:[.18906,.47534,0,0],52:[.18906,.47534,0,0],53:[.18906,.47534,0,0],54:[0,.69141,0,0],55:[.18906,.47534,0,0],56:[0,.69141,0,0],57:[.18906,.47534,0,0],58:[0,.47534,0,0],59:[.12604,.47534,0,0],61:[-.13099,.36866,0,0],63:[0,.69141,0,0],65:[0,.69141,0,0],66:[0,.69141,0,0],67:[0,.69141,0,0],68:[0,.69141,0,0],69:[0,.69141,0,0],70:[.12604,.69141,0,0],71:[0,.69141,0,0],72:[.06302,.69141,0,0],73:[0,.69141,0,0],74:[.12604,.69141,0,0],75:[0,.69141,0,0],76:[0,.69141,0,0],77:[0,.69141,0,0],78:[0,.69141,0,0],79:[0,.69141,0,0],80:[.18906,.69141,0,0],81:[.03781,.69141,0,0],82:[0,.69141,0,0],83:[0,.69141,0,0],84:[0,.69141,0,0],85:[0,.69141,0,0],86:[0,.69141,0,0],87:[0,.69141,0,0],88:[0,.69141,0,0],89:[.18906,.69141,0,0],90:[.12604,.69141,0,0],91:[.24982,.74947,0,0],93:[.24982,.74947,0,0],94:[0,.69141,0,0],97:[0,.47534,0,0],98:[0,.69141,0,0],99:[0,.47534,0,0],100:[0,.62119,0,0],101:[0,.47534,0,0],102:[.18906,.69141,0,0],103:[.18906,.47534,0,0],104:[.18906,.69141,0,0],105:[0,.69141,0,0],106:[0,.69141,0,0],107:[0,.69141,0,0],108:[0,.69141,0,0],109:[0,.47534,0,0],110:[0,.47534,0,0],111:[0,.47534,0,0],112:[.18906,.52396,0,0],113:[.18906,.47534,0,0],114:[0,.47534,0,0],115:[0,.47534,0,0],116:[0,.62119,0,0],117:[0,.47534,0,0],118:[0,.52396,0,0],119:[0,.52396,0,0],120:[.18906,.47534,0,0],121:[.18906,.47534,0,0],122:[.18906,.47534,0,0],8216:[0,.69141,0,0],8217:[0,.69141,0,0],58112:[0,.62119,0,0],58113:[0,.62119,0,0],58114:[.18906,.69141,0,0],58115:[.18906,.69141,0,0],58116:[.18906,.47534,0,0],58117:[0,.69141,0,0],58118:[0,.62119,0,0],58119:[0,.47534,0,0]},"Main-Bold":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.13333,.63333,0,0],44:[.19444,.15556,0,0],45:[0,.44444,0,0],46:[0,.15556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.44444,0,0],59:[.19444,.44444,0,0],60:[.08556,.58556,0,0],61:[-.10889,.39111,0,0],62:[.08556,.58556,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,0,0],67:[0,.68611,0,0],68:[0,.68611,0,0],69:[0,.68611,0,0],70:[0,.68611,0,0],71:[0,.68611,0,0],72:[0,.68611,0,0],73:[0,.68611,0,0],74:[0,.68611,0,0],75:[0,.68611,0,0],76:[0,.68611,0,0],77:[0,.68611,0,0],78:[0,.68611,0,0],79:[0,.68611,0,0],80:[0,.68611,0,0],81:[.19444,.68611,0,0],82:[0,.68611,0,0],83:[0,.68611,0,0],84:[0,.68611,0,0],85:[0,.68611,0,0],86:[0,.68611,.01597,0],87:[0,.68611,.01597,0],88:[0,.68611,0,0],89:[0,.68611,.02875,0],90:[0,.68611,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.13444,.03194,0],96:[0,.69444,0,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.10903,0],103:[.19444,.44444,.01597,0],104:[0,.69444,0,0],105:[0,.69444,0,0],106:[.19444,.69444,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,0,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.01597,0],119:[0,.44444,.01597,0],120:[0,.44444,0,0],121:[.19444,.44444,.01597,0],122:[0,.44444,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.34444,0,0],168:[0,.69444,0,0],172:[0,.44444,0,0],175:[0,.59611,0,0],176:[0,.69444,0,0],177:[.13333,.63333,0,0],180:[0,.69444,0,0],215:[.13333,.63333,0,0],247:[.13333,.63333,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],710:[0,.69444,0,0],711:[0,.63194,0,0],713:[0,.59611,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.69444,0,0],730:[0,.69444,0,0],732:[0,.69444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.69444,0,0],772:[0,.59611,0,0],774:[0,.69444,0,0],775:[0,.69444,0,0],776:[0,.69444,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],824:[.19444,.69444,0,0],915:[0,.68611,0,0],916:[0,.68611,0,0],920:[0,.68611,0,0],923:[0,.68611,0,0],926:[0,.68611,0,0],928:[0,.68611,0,0],931:[0,.68611,0,0],933:[0,.68611,0,0],934:[0,.68611,0,0],936:[0,.68611,0,0],937:[0,.68611,0,0],8211:[0,.44444,.03194,0],8212:[0,.44444,.03194,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8242:[0,.55556,0,0],8407:[0,.72444,.15486,0],8463:[0,.69444,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,0],8472:[.19444,.44444,0,0],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.10889,.39111,0,0],8593:[.19444,.69444,0,0],8594:[-.10889,.39111,0,0],8595:[.19444,.69444,0,0],8596:[-.10889,.39111,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8636:[-.10889,.39111,0,0],8637:[-.10889,.39111,0,0],8640:[-.10889,.39111,0,0],8641:[-.10889,.39111,0,0],8656:[-.10889,.39111,0,0],8657:[.19444,.69444,0,0],8658:[-.10889,.39111,0,0],8659:[.19444,.69444,0,0],8660:[-.10889,.39111,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.06389,0],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68611,0,0],8712:[.08556,.58556,0,0],8715:[.08556,.58556,0,0],8722:[.13333,.63333,0,0],8723:[.13333,.63333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.02778,.47222,0,0],8728:[-.02639,.47361,0,0],8729:[-.02639,.47361,0,0],8730:[.18,.82,0,0],8733:[0,.44444,0,0],8734:[0,.44444,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.12778,0],8764:[-.10889,.39111,0,0],8768:[.19444,.69444,0,0],8771:[.00222,.50222,0,0],8776:[.02444,.52444,0,0],8781:[.00222,.50222,0,0],8801:[.00222,.50222,0,0],8804:[.19667,.69667,0,0],8805:[.19667,.69667,0,0],8810:[.08556,.58556,0,0],8811:[.08556,.58556,0,0],8826:[.08556,.58556,0,0],8827:[.08556,.58556,0,0],8834:[.08556,.58556,0,0],8835:[.08556,.58556,0,0],8838:[.19667,.69667,0,0],8839:[.19667,.69667,0,0],8846:[0,.55556,0,0],8849:[.19667,.69667,0,0],8850:[.19667,.69667,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.13333,.63333,0,0],8854:[.13333,.63333,0,0],8855:[.13333,.63333,0,0],8856:[.13333,.63333,0,0],8857:[.13333,.63333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8900:[-.02639,.47361,0,0],8901:[-.02639,.47361,0,0],8902:[-.02778,.47222,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.13889,.36111,0,0],8995:[-.13889,.36111,0,0],9651:[.19444,.69444,0,0],9657:[-.02778,.47222,0,0],9661:[.19444,.69444,0,0],9667:[-.02778,.47222,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10815:[0,.68611,0,0],10927:[.19667,.69667,0,0],10928:[.19667,.69667,0,0]},"Main-Italic":{33:[0,.69444,.12417,0],34:[0,.69444,.06961,0],35:[.19444,.69444,.06616,0],37:[.05556,.75,.13639,0],38:[0,.69444,.09694,0],39:[0,.69444,.12417,0],40:[.25,.75,.16194,0],41:[.25,.75,.03694,0],42:[0,.75,.14917,0],43:[.05667,.56167,.03694,0],44:[.19444,.10556,0,0],45:[0,.43056,.02826,0],46:[0,.10556,0,0],47:[.25,.75,.16194,0],48:[0,.64444,.13556,0],49:[0,.64444,.13556,0],50:[0,.64444,.13556,0],51:[0,.64444,.13556,0],52:[.19444,.64444,.13556,0],53:[0,.64444,.13556,0],54:[0,.64444,.13556,0],55:[.19444,.64444,.13556,0],56:[0,.64444,.13556,0],57:[0,.64444,.13556,0],58:[0,.43056,.0582,0],59:[.19444,.43056,.0582,0],61:[-.13313,.36687,.06616,0],63:[0,.69444,.1225,0],64:[0,.69444,.09597,0],65:[0,.68333,0,0],66:[0,.68333,.10257,0],67:[0,.68333,.14528,0],68:[0,.68333,.09403,0],69:[0,.68333,.12028,0],70:[0,.68333,.13305,0],71:[0,.68333,.08722,0],72:[0,.68333,.16389,0],73:[0,.68333,.15806,0],74:[0,.68333,.14028,0],75:[0,.68333,.14528,0],76:[0,.68333,0,0],77:[0,.68333,.16389,0],78:[0,.68333,.16389,0],79:[0,.68333,.09403,0],80:[0,.68333,.10257,0],81:[.19444,.68333,.09403,0],82:[0,.68333,.03868,0],83:[0,.68333,.11972,0],84:[0,.68333,.13305,0],85:[0,.68333,.16389,0],86:[0,.68333,.18361,0],87:[0,.68333,.18361,0],88:[0,.68333,.15806,0],89:[0,.68333,.19383,0],90:[0,.68333,.14528,0],91:[.25,.75,.1875,0],93:[.25,.75,.10528,0],94:[0,.69444,.06646,0],95:[.31,.12056,.09208,0],97:[0,.43056,.07671,0],98:[0,.69444,.06312,0],99:[0,.43056,.05653,0],100:[0,.69444,.10333,0],101:[0,.43056,.07514,0],102:[.19444,.69444,.21194,0],103:[.19444,.43056,.08847,0],104:[0,.69444,.07671,0],105:[0,.65536,.1019,0],106:[.19444,.65536,.14467,0],107:[0,.69444,.10764,0],108:[0,.69444,.10333,0],109:[0,.43056,.07671,0],110:[0,.43056,.07671,0],111:[0,.43056,.06312,0],112:[.19444,.43056,.06312,0],113:[.19444,.43056,.08847,0],114:[0,.43056,.10764,0],115:[0,.43056,.08208,0],116:[0,.61508,.09486,0],117:[0,.43056,.07671,0],118:[0,.43056,.10764,0],119:[0,.43056,.10764,0],120:[0,.43056,.12042,0],121:[.19444,.43056,.08847,0],122:[0,.43056,.12292,0],126:[.35,.31786,.11585,0],163:[0,.69444,0,0],305:[0,.43056,0,.02778],567:[.19444,.43056,0,.08334],768:[0,.69444,0,0],769:[0,.69444,.09694,0],770:[0,.69444,.06646,0],771:[0,.66786,.11585,0],772:[0,.56167,.10333,0],774:[0,.69444,.10806,0],775:[0,.66786,.11752,0],776:[0,.66786,.10474,0],778:[0,.69444,0,0],779:[0,.69444,.1225,0],780:[0,.62847,.08295,0],915:[0,.68333,.13305,0],916:[0,.68333,0,0],920:[0,.68333,.09403,0],923:[0,.68333,0,0],926:[0,.68333,.15294,0],928:[0,.68333,.16389,0],931:[0,.68333,.12028,0],933:[0,.68333,.11111,0],934:[0,.68333,.05986,0],936:[0,.68333,.11111,0],937:[0,.68333,.10257,0],8211:[0,.43056,.09208,0],8212:[0,.43056,.09208,0],8216:[0,.69444,.12417,0],8217:[0,.69444,.12417,0],8220:[0,.69444,.1685,0],8221:[0,.69444,.06961,0],8463:[0,.68889,0,0]},"Main-Regular":{32:[0,0,0,0],33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.19444,.10556,0,0],45:[0,.43056,0,0],46:[0,.10556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.43056,0,0],59:[.19444,.43056,0,0],60:[.0391,.5391,0,0],61:[-.13313,.36687,0,0],62:[.0391,.5391,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68333,0,0],66:[0,.68333,0,0],67:[0,.68333,0,0],68:[0,.68333,0,0],69:[0,.68333,0,0],70:[0,.68333,0,0],71:[0,.68333,0,0],72:[0,.68333,0,0],73:[0,.68333,0,0],74:[0,.68333,0,0],75:[0,.68333,0,0],76:[0,.68333,0,0],77:[0,.68333,0,0],78:[0,.68333,0,0],79:[0,.68333,0,0],80:[0,.68333,0,0],81:[.19444,.68333,0,0],82:[0,.68333,0,0],83:[0,.68333,0,0],84:[0,.68333,0,0],85:[0,.68333,0,0],86:[0,.68333,.01389,0],87:[0,.68333,.01389,0],88:[0,.68333,0,0],89:[0,.68333,.025,0],90:[0,.68333,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.12056,.02778,0],96:[0,.69444,0,0],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,0],100:[0,.69444,0,0],101:[0,.43056,0,0],102:[0,.69444,.07778,0],103:[.19444,.43056,.01389,0],104:[0,.69444,0,0],105:[0,.66786,0,0],106:[.19444,.66786,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.19444,.43056,0,0],113:[.19444,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.61508,0,0],117:[0,.43056,0,0],118:[0,.43056,.01389,0],119:[0,.43056,.01389,0],120:[0,.43056,0,0],121:[.19444,.43056,.01389,0],122:[0,.43056,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.31786,0,0],160:[0,0,0,0],168:[0,.66786,0,0],172:[0,.43056,0,0],175:[0,.56778,0,0],176:[0,.69444,0,0],177:[.08333,.58333,0,0],180:[0,.69444,0,0],215:[.08333,.58333,0,0],247:[.08333,.58333,0,0],305:[0,.43056,0,0],567:[.19444,.43056,0,0],710:[0,.69444,0,0],711:[0,.62847,0,0],713:[0,.56778,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.66786,0,0],730:[0,.69444,0,0],732:[0,.66786,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.66786,0,0],772:[0,.56778,0,0],774:[0,.69444,0,0],775:[0,.66786,0,0],776:[0,.66786,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.62847,0,0],824:[.19444,.69444,0,0],915:[0,.68333,0,0],916:[0,.68333,0,0],920:[0,.68333,0,0],923:[0,.68333,0,0],926:[0,.68333,0,0],928:[0,.68333,0,0],931:[0,.68333,0,0],933:[0,.68333,0,0],934:[0,.68333,0,0],936:[0,.68333,0,0],937:[0,.68333,0,0],8211:[0,.43056,.02778,0],8212:[0,.43056,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8230:[0,.12,0,0],8242:[0,.55556,0,0],8407:[0,.71444,.15382,0],8463:[0,.68889,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,.11111],8472:[.19444,.43056,0,.11111],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.13313,.36687,0,0],8593:[.19444,.69444,0,0],8594:[-.13313,.36687,0,0],8595:[.19444,.69444,0,0],8596:[-.13313,.36687,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8614:[.011,.511,0,0],8617:[.011,.511,0,0],8618:[.011,.511,0,0],8636:[-.13313,.36687,0,0],8637:[-.13313,.36687,0,0],8640:[-.13313,.36687,0,0],8641:[-.13313,.36687,0,0],8652:[.011,.671,0,0],8656:[-.13313,.36687,0,0],8657:[.19444,.69444,0,0],8658:[-.13313,.36687,0,0],8659:[.19444,.69444,0,0],8660:[-.13313,.36687,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.05556,.08334],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68333,0,0],8712:[.0391,.5391,0,0],8715:[.0391,.5391,0,0],8722:[.08333,.58333,0,0],8723:[.08333,.58333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.03472,.46528,0,0],8728:[-.05555,.44445,0,0],8729:[-.05555,.44445,0,0],8730:[.2,.8,0,0],8733:[0,.43056,0,0],8734:[0,.43056,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.11111,0],8764:[-.13313,.36687,0,0],8768:[.19444,.69444,0,0],8771:[-.03625,.46375,0,0],8773:[-.022,.589,0,0],8776:[-.01688,.48312,0,0],8781:[-.03625,.46375,0,0],8784:[-.133,.67,0,0],8800:[.215,.716,0,0],8801:[-.03625,.46375,0,0],8804:[.13597,.63597,0,0],8805:[.13597,.63597,0,0],8810:[.0391,.5391,0,0],8811:[.0391,.5391,0,0],8826:[.0391,.5391,0,0],8827:[.0391,.5391,0,0],8834:[.0391,.5391,0,0],8835:[.0391,.5391,0,0],8838:[.13597,.63597,0,0],8839:[.13597,.63597,0,0],8846:[0,.55556,0,0],8849:[.13597,.63597,0,0],8850:[.13597,.63597,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.08333,.58333,0,0],8854:[.08333,.58333,0,0],8855:[.08333,.58333,0,0],8856:[.08333,.58333,0,0],8857:[.08333,.58333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8872:[.249,.75,0,0],8900:[-.05555,.44445,0,0],8901:[-.05555,.44445,0,0],8902:[-.03472,.46528,0,0],8904:[.005,.505,0,0],8942:[.03,.9,0,0],8943:[-.19,.31,0,0],8945:[-.1,.82,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.14236,.35764,0,0],8995:[-.14236,.35764,0,0],9136:[.244,.744,0,0],9137:[.244,.744,0,0],9651:[.19444,.69444,0,0],9657:[-.03472,.46528,0,0],9661:[.19444,.69444,0,0],9667:[-.03472,.46528,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10222:[.244,.744,0,0],10223:[.244,.744,0,0],10229:[.011,.511,0,0],10230:[.011,.511,0,0],10231:[.011,.511,0,0],10232:[.024,.525,0,0],10233:[.024,.525,0,0],10234:[.024,.525,0,0],10236:[.011,.511,0,0],10815:[0,.68333,0,0],10927:[.13597,.63597,0,0],10928:[.13597,.63597,0,0]},"Math-BoldItalic":{47:[.19444,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,.04835,0],67:[0,.68611,.06979,0],68:[0,.68611,.03194,0],69:[0,.68611,.05451,0],70:[0,.68611,.15972,0],71:[0,.68611,0,0],72:[0,.68611,.08229,0],73:[0,.68611,.07778,0],74:[0,.68611,.10069,0],75:[0,.68611,.06979,0],76:[0,.68611,0,0],77:[0,.68611,.11424,0],78:[0,.68611,.11424,0],79:[0,.68611,.03194,0],80:[0,.68611,.15972,0],81:[.19444,.68611,0,0],82:[0,.68611,.00421,0],83:[0,.68611,.05382,0],84:[0,.68611,.15972,0],85:[0,.68611,.11424,0],86:[0,.68611,.25555,0],87:[0,.68611,.15972,0],88:[0,.68611,.07778,0],89:[0,.68611,.25555,0],90:[0,.68611,.06979,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[.19444,.69444,.11042,0],103:[.19444,.44444,.03704,0],104:[0,.69444,0,0],105:[0,.69326,0,0],106:[.19444,.69326,.0622,0],107:[0,.69444,.01852,0],108:[0,.69444,.0088,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,.03704,0],114:[0,.44444,.03194,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.03704,0],119:[0,.44444,.02778,0],120:[0,.44444,0,0],121:[.19444,.44444,.03704,0],122:[0,.44444,.04213,0],915:[0,.68611,.15972,0],916:[0,.68611,0,0],920:[0,.68611,.03194,0],923:[0,.68611,0,0],926:[0,.68611,.07458,0],928:[0,.68611,.08229,0],931:[0,.68611,.05451,0],933:[0,.68611,.15972,0],934:[0,.68611,0,0],936:[0,.68611,.11653,0],937:[0,.68611,.04835,0],945:[0,.44444,0,0],946:[.19444,.69444,.03403,0],947:[.19444,.44444,.06389,0],948:[0,.69444,.03819,0],949:[0,.44444,0,0],950:[.19444,.69444,.06215,0],951:[.19444,.44444,.03704,0],952:[0,.69444,.03194,0],953:[0,.44444,0,0],954:[0,.44444,0,0],955:[0,.69444,0,0],956:[.19444,.44444,0,0],957:[0,.44444,.06898,0],958:[.19444,.69444,.03021,0],959:[0,.44444,0,0],960:[0,.44444,.03704,0],961:[.19444,.44444,0,0],962:[.09722,.44444,.07917,0],963:[0,.44444,.03704,0],964:[0,.44444,.13472,0],965:[0,.44444,.03704,0],966:[.19444,.44444,0,0],967:[.19444,.44444,0,0],968:[.19444,.69444,.03704,0],969:[0,.44444,.03704,0],977:[0,.69444,0,0],981:[.19444,.69444,0,0],982:[0,.44444,.03194,0],1009:[.19444,.44444,0,0],1013:[0,.44444,0,0]},"Math-Italic":{47:[.19444,.69444,0,0],65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],
+102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},"Math-Regular":{65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},"SansSerif-Regular":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.125,.08333,0,0],45:[0,.44444,0,0],46:[0,.08333,0,0],47:[.25,.75,0,0],48:[0,.65556,0,0],49:[0,.65556,0,0],50:[0,.65556,0,0],51:[0,.65556,0,0],52:[0,.65556,0,0],53:[0,.65556,0,0],54:[0,.65556,0,0],55:[0,.65556,0,0],56:[0,.65556,0,0],57:[0,.65556,0,0],58:[0,.44444,0,0],59:[.125,.44444,0,0],61:[-.13,.37,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.69444,0,0],66:[0,.69444,0,0],67:[0,.69444,0,0],68:[0,.69444,0,0],69:[0,.69444,0,0],70:[0,.69444,0,0],71:[0,.69444,0,0],72:[0,.69444,0,0],73:[0,.69444,0,0],74:[0,.69444,0,0],75:[0,.69444,0,0],76:[0,.69444,0,0],77:[0,.69444,0,0],78:[0,.69444,0,0],79:[0,.69444,0,0],80:[0,.69444,0,0],81:[.125,.69444,0,0],82:[0,.69444,0,0],83:[0,.69444,0,0],84:[0,.69444,0,0],85:[0,.69444,0,0],86:[0,.69444,.01389,0],87:[0,.69444,.01389,0],88:[0,.69444,0,0],89:[0,.69444,.025,0],90:[0,.69444,0,0],91:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.35,.09444,.02778,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.06944,0],103:[.19444,.44444,.01389,0],104:[0,.69444,0,0],105:[0,.67937,0,0],106:[.19444,.67937,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,.01389,0],115:[0,.44444,0,0],116:[0,.57143,0,0],117:[0,.44444,0,0],118:[0,.44444,.01389,0],119:[0,.44444,.01389,0],120:[0,.44444,0,0],121:[.19444,.44444,.01389,0],122:[0,.44444,0,0],126:[.35,.32659,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.67659,0,0],772:[0,.60889,0,0],774:[0,.69444,0,0],775:[0,.67937,0,0],776:[0,.67937,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],915:[0,.69444,0,0],916:[0,.69444,0,0],920:[0,.69444,0,0],923:[0,.69444,0,0],926:[0,.69444,0,0],928:[0,.69444,0,0],931:[0,.69444,0,0],933:[0,.69444,0,0],934:[0,.69444,0,0],936:[0,.69444,0,0],937:[0,.69444,0,0],8211:[0,.44444,.02778,0],8212:[0,.44444,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0]},"Script-Regular":{65:[0,.7,.22925,0],66:[0,.7,.04087,0],67:[0,.7,.1689,0],68:[0,.7,.09371,0],69:[0,.7,.18583,0],70:[0,.7,.13634,0],71:[0,.7,.17322,0],72:[0,.7,.29694,0],73:[0,.7,.19189,0],74:[.27778,.7,.19189,0],75:[0,.7,.31259,0],76:[0,.7,.19189,0],77:[0,.7,.15981,0],78:[0,.7,.3525,0],79:[0,.7,.08078,0],80:[0,.7,.08078,0],81:[0,.7,.03305,0],82:[0,.7,.06259,0],83:[0,.7,.19189,0],84:[0,.7,.29087,0],85:[0,.7,.25815,0],86:[0,.7,.27523,0],87:[0,.7,.27523,0],88:[0,.7,.26006,0],89:[0,.7,.2939,0],90:[0,.7,.24037,0]},"Size1-Regular":{40:[.35001,.85,0,0],41:[.35001,.85,0,0],47:[.35001,.85,0,0],91:[.35001,.85,0,0],92:[.35001,.85,0,0],93:[.35001,.85,0,0],123:[.35001,.85,0,0],125:[.35001,.85,0,0],710:[0,.72222,0,0],732:[0,.72222,0,0],770:[0,.72222,0,0],771:[0,.72222,0,0],8214:[-99e-5,.601,0,0],8593:[1e-5,.6,0,0],8595:[1e-5,.6,0,0],8657:[1e-5,.6,0,0],8659:[1e-5,.6,0,0],8719:[.25001,.75,0,0],8720:[.25001,.75,0,0],8721:[.25001,.75,0,0],8730:[.35001,.85,0,0],8739:[-.00599,.606,0,0],8741:[-.00599,.606,0,0],8747:[.30612,.805,.19445,0],8748:[.306,.805,.19445,0],8749:[.306,.805,.19445,0],8750:[.30612,.805,.19445,0],8896:[.25001,.75,0,0],8897:[.25001,.75,0,0],8898:[.25001,.75,0,0],8899:[.25001,.75,0,0],8968:[.35001,.85,0,0],8969:[.35001,.85,0,0],8970:[.35001,.85,0,0],8971:[.35001,.85,0,0],9168:[-99e-5,.601,0,0],10216:[.35001,.85,0,0],10217:[.35001,.85,0,0],10752:[.25001,.75,0,0],10753:[.25001,.75,0,0],10754:[.25001,.75,0,0],10756:[.25001,.75,0,0],10758:[.25001,.75,0,0]},"Size2-Regular":{40:[.65002,1.15,0,0],41:[.65002,1.15,0,0],47:[.65002,1.15,0,0],91:[.65002,1.15,0,0],92:[.65002,1.15,0,0],93:[.65002,1.15,0,0],123:[.65002,1.15,0,0],125:[.65002,1.15,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8719:[.55001,1.05,0,0],8720:[.55001,1.05,0,0],8721:[.55001,1.05,0,0],8730:[.65002,1.15,0,0],8747:[.86225,1.36,.44445,0],8748:[.862,1.36,.44445,0],8749:[.862,1.36,.44445,0],8750:[.86225,1.36,.44445,0],8896:[.55001,1.05,0,0],8897:[.55001,1.05,0,0],8898:[.55001,1.05,0,0],8899:[.55001,1.05,0,0],8968:[.65002,1.15,0,0],8969:[.65002,1.15,0,0],8970:[.65002,1.15,0,0],8971:[.65002,1.15,0,0],10216:[.65002,1.15,0,0],10217:[.65002,1.15,0,0],10752:[.55001,1.05,0,0],10753:[.55001,1.05,0,0],10754:[.55001,1.05,0,0],10756:[.55001,1.05,0,0],10758:[.55001,1.05,0,0]},"Size3-Regular":{40:[.95003,1.45,0,0],41:[.95003,1.45,0,0],47:[.95003,1.45,0,0],91:[.95003,1.45,0,0],92:[.95003,1.45,0,0],93:[.95003,1.45,0,0],123:[.95003,1.45,0,0],125:[.95003,1.45,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8730:[.95003,1.45,0,0],8968:[.95003,1.45,0,0],8969:[.95003,1.45,0,0],8970:[.95003,1.45,0,0],8971:[.95003,1.45,0,0],10216:[.95003,1.45,0,0],10217:[.95003,1.45,0,0]},"Size4-Regular":{40:[1.25003,1.75,0,0],41:[1.25003,1.75,0,0],47:[1.25003,1.75,0,0],91:[1.25003,1.75,0,0],92:[1.25003,1.75,0,0],93:[1.25003,1.75,0,0],123:[1.25003,1.75,0,0],125:[1.25003,1.75,0,0],710:[0,.825,0,0],732:[0,.825,0,0],770:[0,.825,0,0],771:[0,.825,0,0],8730:[1.25003,1.75,0,0],8968:[1.25003,1.75,0,0],8969:[1.25003,1.75,0,0],8970:[1.25003,1.75,0,0],8971:[1.25003,1.75,0,0],9115:[.64502,1.155,0,0],9116:[1e-5,.6,0,0],9117:[.64502,1.155,0,0],9118:[.64502,1.155,0,0],9119:[1e-5,.6,0,0],9120:[.64502,1.155,0,0],9121:[.64502,1.155,0,0],9122:[-99e-5,.601,0,0],9123:[.64502,1.155,0,0],9124:[.64502,1.155,0,0],9125:[-99e-5,.601,0,0],9126:[.64502,1.155,0,0],9127:[1e-5,.9,0,0],9128:[.65002,1.15,0,0],9129:[.90001,0,0,0],9130:[0,.3,0,0],9131:[1e-5,.9,0,0],9132:[.65002,1.15,0,0],9133:[.90001,0,0,0],9143:[.88502,.915,0,0],10216:[1.25003,1.75,0,0],10217:[1.25003,1.75,0,0],57344:[-.00499,.605,0,0],57345:[-.00499,.605,0,0],57680:[0,.12,0,0],57681:[0,.12,0,0],57682:[0,.12,0,0],57683:[0,.12,0,0]},"Typewriter-Regular":{33:[0,.61111,0,0],34:[0,.61111,0,0],35:[0,.61111,0,0],36:[.08333,.69444,0,0],37:[.08333,.69444,0,0],38:[0,.61111,0,0],39:[0,.61111,0,0],40:[.08333,.69444,0,0],41:[.08333,.69444,0,0],42:[0,.52083,0,0],43:[-.08056,.53055,0,0],44:[.13889,.125,0,0],45:[-.08056,.53055,0,0],46:[0,.125,0,0],47:[.08333,.69444,0,0],48:[0,.61111,0,0],49:[0,.61111,0,0],50:[0,.61111,0,0],51:[0,.61111,0,0],52:[0,.61111,0,0],53:[0,.61111,0,0],54:[0,.61111,0,0],55:[0,.61111,0,0],56:[0,.61111,0,0],57:[0,.61111,0,0],58:[0,.43056,0,0],59:[.13889,.43056,0,0],60:[-.05556,.55556,0,0],61:[-.19549,.41562,0,0],62:[-.05556,.55556,0,0],63:[0,.61111,0,0],64:[0,.61111,0,0],65:[0,.61111,0,0],66:[0,.61111,0,0],67:[0,.61111,0,0],68:[0,.61111,0,0],69:[0,.61111,0,0],70:[0,.61111,0,0],71:[0,.61111,0,0],72:[0,.61111,0,0],73:[0,.61111,0,0],74:[0,.61111,0,0],75:[0,.61111,0,0],76:[0,.61111,0,0],77:[0,.61111,0,0],78:[0,.61111,0,0],79:[0,.61111,0,0],80:[0,.61111,0,0],81:[.13889,.61111,0,0],82:[0,.61111,0,0],83:[0,.61111,0,0],84:[0,.61111,0,0],85:[0,.61111,0,0],86:[0,.61111,0,0],87:[0,.61111,0,0],88:[0,.61111,0,0],89:[0,.61111,0,0],90:[0,.61111,0,0],91:[.08333,.69444,0,0],92:[.08333,.69444,0,0],93:[.08333,.69444,0,0],94:[0,.61111,0,0],95:[.09514,0,0,0],96:[0,.61111,0,0],97:[0,.43056,0,0],98:[0,.61111,0,0],99:[0,.43056,0,0],100:[0,.61111,0,0],101:[0,.43056,0,0],102:[0,.61111,0,0],103:[.22222,.43056,0,0],104:[0,.61111,0,0],105:[0,.61111,0,0],106:[.22222,.61111,0,0],107:[0,.61111,0,0],108:[0,.61111,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.22222,.43056,0,0],113:[.22222,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.55358,0,0],117:[0,.43056,0,0],118:[0,.43056,0,0],119:[0,.43056,0,0],120:[0,.43056,0,0],121:[.22222,.43056,0,0],122:[0,.43056,0,0],123:[.08333,.69444,0,0],124:[.08333,.69444,0,0],125:[.08333,.69444,0,0],126:[0,.61111,0,0],127:[0,.61111,0,0],305:[0,.43056,0,0],567:[.22222,.43056,0,0],768:[0,.61111,0,0],769:[0,.61111,0,0],770:[0,.61111,0,0],771:[0,.61111,0,0],772:[0,.56555,0,0],774:[0,.61111,0,0],776:[0,.61111,0,0],778:[0,.61111,0,0],780:[0,.56597,0,0],915:[0,.61111,0,0],916:[0,.61111,0,0],920:[0,.61111,0,0],923:[0,.61111,0,0],926:[0,.61111,0,0],928:[0,.61111,0,0],931:[0,.61111,0,0],933:[0,.61111,0,0],934:[0,.61111,0,0],936:[0,.61111,0,0],937:[0,.61111,0,0],2018:[0,.61111,0,0],2019:[0,.61111,0,0],8242:[0,.61111,0,0]}}},{}],20:[function(e,t,r){var a=e("./utils");var i=e("./ParseError");var s=e("./parseData");var n=s.ParseNode;function l(e,r,a){if(typeof e==="string"){e=[e]}if(typeof r==="number"){r={numArgs:r}}var i={numArgs:r.numArgs,argTypes:r.argTypes,greediness:r.greediness===undefined?1:r.greediness,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,handler:a};for(var s=0;s<e.length;++s){t.exports[e[s]]=i}}var o=function(e){if(e.type==="ordgroup"){return e.value}else{return[e]}};l("\\sqrt",{numArgs:1,numOptionalArgs:1},function(e,t){var r=t[0];var a=t[1];return{type:"sqrt",body:a,index:r}});var u={"\\text":undefined,"\\textrm":"mathrm","\\textsf":"mathsf","\\texttt":"mathtt","\\textnormal":"mathrm","\\textbf":"mathbf","\\textit":"textit"};l(["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textit"],{numArgs:1,argTypes:["text"],greediness:2,allowedInText:true},function(e,t){var r=t[0];return{type:"text",body:o(r),style:u[e.funcName]}});l("\\color",{numArgs:2,allowedInText:true,greediness:3,argTypes:["color","original"]},function(e,t){var r=t[0];var a=t[1];return{type:"color",color:r.value,value:o(a)}});l("\\overline",{numArgs:1},function(e,t){var r=t[0];return{type:"overline",body:r}});l("\\underline",{numArgs:1},function(e,t){var r=t[0];return{type:"underline",body:r}});l("\\rule",{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},function(e,t){var r=t[0];var a=t[1];var i=t[2];return{type:"rule",shift:r&&r.value,width:a.value,height:i.value}});l(["\\kern","\\mkern"],{numArgs:1,argTypes:["size"]},function(e,t){return{type:"kern",dimension:t[0].value}});l("\\KaTeX",{numArgs:0},function(e){return{type:"katex"}});l("\\phantom",{numArgs:1},function(e,t){var r=t[0];return{type:"phantom",value:o(r)}});l(["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],{numArgs:1},function(e,t){var r=t[0];return{type:"mclass",mclass:"m"+e.funcName.substr(5),value:o(r)}});l("\\stackrel",{numArgs:2},function(e,t){var r=t[0];var a=t[1];var i=new n("op",{type:"op",limits:true,alwaysHandleSupSub:true,symbol:false,value:o(a)},a.mode);var s=new n("supsub",{base:i,sup:r,sub:null},r.mode);return{type:"mclass",mclass:"mrel",value:[s]}});l("\\bmod",{numArgs:0},function(e,t){return{type:"mod",modType:"bmod",value:null}});l(["\\pod","\\pmod","\\mod"],{numArgs:1},function(e,t){var r=t[0];return{type:"mod",modType:e.funcName.substr(1),value:o(r)}});var h={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}};var c=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","<",">","\\langle","\\rangle","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];var p={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak"};l(["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],{numArgs:1,allowedInText:true,greediness:3},function(e,t){var r=t[0];return{type:"color",color:"katex-"+e.funcName.slice(1),value:o(r)}});l(["\\arcsin","\\arccos","\\arctan","\\arg","\\cos","\\cosh","\\cot","\\coth","\\csc","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\tan","\\tanh"],{numArgs:0},function(e){return{type:"op",limits:false,symbol:false,body:e.funcName}});l(["\\det","\\gcd","\\inf","\\lim","\\liminf","\\limsup","\\max","\\min","\\Pr","\\sup"],{numArgs:0},function(e){return{type:"op",limits:true,symbol:false,body:e.funcName}});l(["\\int","\\iint","\\iiint","\\oint"],{numArgs:0},function(e){return{type:"op",limits:false,symbol:true,body:e.funcName}});l(["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint"],{numArgs:0},function(e){return{type:"op",limits:true,symbol:true,body:e.funcName}});l("\\mathop",{numArgs:1},function(e,t){var r=t[0];return{type:"op",limits:false,symbol:false,value:o(r)}});l(["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac"],{numArgs:2,greediness:2},function(e,t){var r=t[0];var a=t[1];var i;var s=null;var n=null;var l="auto";switch(e.funcName){case"\\dfrac":case"\\frac":case"\\tfrac":i=true;break;case"\\\\atopfrac":i=false;break;case"\\dbinom":case"\\binom":case"\\tbinom":i=false;s="(";n=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e.funcName){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text";break}return{type:"genfrac",numer:r,denom:a,hasBarLine:i,leftDelim:s,rightDelim:n,size:l}});l(["\\llap","\\rlap"],{numArgs:1,allowedInText:true},function(e,t){var r=t[0];return{type:e.funcName.slice(1),body:r}});var m=function(e,t){if(a.contains(c,e.value)){return e}else{throw new i("Invalid delimiter: '"+e.value+"' after '"+t.funcName+"'",e)}};l(["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:"delimsizing",size:h[e.funcName].size,mclass:h[e.funcName].mclass,value:r.value}});l(["\\left","\\right"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:"leftright",value:r.value}});l("\\middle",{numArgs:1},function(e,t){var r=m(t[0],e);if(!e.parser.leftrightDepth){throw new i("\\middle without preceding \\left",r)}return{type:"middle",value:r.value}});l(["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],0,null);l(["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],0,null);l(["\\mathrm","\\mathit","\\mathbf","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],{numArgs:1,greediness:2},function(e,t){var r=t[0];var a=e.funcName;if(a in p){a=p[a]}return{type:"font",font:a.slice(1),body:r}});l(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot"],{numArgs:1},function(e,t){var r=t[0];return{type:"accent",accent:e.funcName,base:r}});l(["\\over","\\choose","\\atop"],{numArgs:0,infix:true},function(e){var t;switch(e.funcName){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t,token:e.token}});l(["\\\\","\\cr"],{numArgs:0,numOptionalArgs:1,argTypes:["size"]},function(e,t){var r=t[0];return{type:"cr",size:r}});l(["\\begin","\\end"],{numArgs:1,argTypes:["text"]},function(e,t){var r=t[0];if(r.type!=="ordgroup"){throw new i("Invalid environment name",r)}var a="";for(var s=0;s<r.value.length;++s){a+=r.value[s].value}return{type:"environment",name:a,nameGroup:r}})},{"./ParseError":6,"./parseData":22,"./utils":26}],21:[function(e,t,r){var a=e("./utils");function i(e,t){this.type=e;this.attributes={};this.children=t||[]}i.prototype.setAttribute=function(e,t){this.attributes[e]=t};i.prototype.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e.setAttribute(t,this.attributes[t])}}for(var r=0;r<this.children.length;r++){e.appendChild(this.children[r].toNode())}return e};i.prototype.toMarkup=function(){var e="<"+this.type;for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e+=" "+t+'="';e+=a.escape(this.attributes[t]);e+='"'}}e+=">";for(var r=0;r<this.children.length;r++){e+=this.children[r].toMarkup()}e+="</"+this.type+">";return e};function s(e){this.text=e}s.prototype.toNode=function(){return document.createTextNode(this.text)};s.prototype.toMarkup=function(){return a.escape(this.text)};t.exports={MathNode:i,TextNode:s}},{"./utils":26}],22:[function(e,t,r){function a(e,t,r,a,i){this.type=e;this.value=t;this.mode=r;if(a&&(!i||i.lexer===a.lexer)){this.lexer=a.lexer;this.start=a.start;this.end=(i||a).end}}t.exports={ParseNode:a}},{}],23:[function(e,t,r){var a=e("./Parser");var i=function(e,t){if(!(typeof e==="string"||e instanceof String)){throw new TypeError("KaTeX can only parse string typed expression")}var r=new a(e,t);return r.parse()};t.exports=i},{"./Parser":7}],24:[function(e,t,r){t.exports={math:{},text:{}};function a(e,r,a,i,s){t.exports[e][s]={font:r,group:a,replace:i}}var i="math";var s="text";var n="main";var l="ams";var o="accent";var u="bin";var h="close";var c="inner";var p="mathord";var m="op";var f="open";var v="punct";var d="rel";var g="spacing";var y="textord";a(i,n,d,"\u2261","\\equiv");a(i,n,d,"\u227a","\\prec");a(i,n,d,"\u227b","\\succ");a(i,n,d,"\u223c","\\sim");a(i,n,d,"\u22a5","\\perp");a(i,n,d,"\u2aaf","\\preceq");a(i,n,d,"\u2ab0","\\succeq");a(i,n,d,"\u2243","\\simeq");a(i,n,d,"\u2223","\\mid");a(i,n,d,"\u226a","\\ll");a(i,n,d,"\u226b","\\gg");a(i,n,d,"\u224d","\\asymp");a(i,n,d,"\u2225","\\parallel");a(i,n,d,"\u22c8","\\bowtie");a(i,n,d,"\u2323","\\smile");a(i,n,d,"\u2291","\\sqsubseteq");a(i,n,d,"\u2292","\\sqsupseteq");a(i,n,d,"\u2250","\\doteq");a(i,n,d,"\u2322","\\frown");a(i,n,d,"\u220b","\\ni");a(i,n,d,"\u221d","\\propto");a(i,n,d,"\u22a2","\\vdash");a(i,n,d,"\u22a3","\\dashv");a(i,n,d,"\u220b","\\owns");a(i,n,v,".","\\ldotp");a(i,n,v,"\u22c5","\\cdotp");a(i,n,y,"#","\\#");a(s,n,y,"#","\\#");a(i,n,y,"&","\\&");a(s,n,y,"&","\\&");a(i,n,y,"\u2135","\\aleph");a(i,n,y,"\u2200","\\forall");a(i,n,y,"\u210f","\\hbar");a(i,n,y,"\u2203","\\exists");a(i,n,y,"\u2207","\\nabla");a(i,n,y,"\u266d","\\flat");a(i,n,y,"\u2113","\\ell");a(i,n,y,"\u266e","\\natural");a(i,n,y,"\u2663","\\clubsuit");a(i,n,y,"\u2118","\\wp");a(i,n,y,"\u266f","\\sharp");a(i,n,y,"\u2662","\\diamondsuit");a(i,n,y,"\u211c","\\Re");a(i,n,y,"\u2661","\\heartsuit");a(i,n,y,"\u2111","\\Im");a(i,n,y,"\u2660","\\spadesuit");a(i,n,y,"\u2020","\\dag");a(i,n,y,"\u2021","\\ddag");a(i,n,h,"\u23b1","\\rmoustache");a(i,n,f,"\u23b0","\\lmoustache");a(i,n,h,"\u27ef","\\rgroup");a(i,n,f,"\u27ee","\\lgroup");a(i,n,u,"\u2213","\\mp");a(i,n,u,"\u2296","\\ominus");a(i,n,u,"\u228e","\\uplus");a(i,n,u,"\u2293","\\sqcap");a(i,n,u,"\u2217","\\ast");a(i,n,u,"\u2294","\\sqcup");a(i,n,u,"\u25ef","\\bigcirc");a(i,n,u,"\u2219","\\bullet");a(i,n,u,"\u2021","\\ddagger");a(i,n,u,"\u2240","\\wr");a(i,n,u,"\u2a3f","\\amalg");a(i,n,d,"\u27f5","\\longleftarrow");a(i,n,d,"\u21d0","\\Leftarrow");a(i,n,d,"\u27f8","\\Longleftarrow");a(i,n,d,"\u27f6","\\longrightarrow");a(i,n,d,"\u21d2","\\Rightarrow");a(i,n,d,"\u27f9","\\Longrightarrow");a(i,n,d,"\u2194","\\leftrightarrow");a(i,n,d,"\u27f7","\\longleftrightarrow");a(i,n,d,"\u21d4","\\Leftrightarrow");a(i,n,d,"\u27fa","\\Longleftrightarrow");a(i,n,d,"\u21a6","\\mapsto");a(i,n,d,"\u27fc","\\longmapsto");a(i,n,d,"\u2197","\\nearrow");a(i,n,d,"\u21a9","\\hookleftarrow");a(i,n,d,"\u21aa","\\hookrightarrow");a(i,n,d,"\u2198","\\searrow");a(i,n,d,"\u21bc","\\leftharpoonup");a(i,n,d,"\u21c0","\\rightharpoonup");a(i,n,d,"\u2199","\\swarrow");a(i,n,d,"\u21bd","\\leftharpoondown");a(i,n,d,"\u21c1","\\rightharpoondown");a(i,n,d,"\u2196","\\nwarrow");a(i,n,d,"\u21cc","\\rightleftharpoons");a(i,l,d,"\u226e","\\nless");a(i,l,d,"\ue010","\\nleqslant");a(i,l,d,"\ue011","\\nleqq");a(i,l,d,"\u2a87","\\lneq");a(i,l,d,"\u2268","\\lneqq");a(i,l,d,"\ue00c","\\lvertneqq");a(i,l,d,"\u22e6","\\lnsim");a(i,l,d,"\u2a89","\\lnapprox");a(i,l,d,"\u2280","\\nprec");a(i,l,d,"\u22e0","\\npreceq");a(i,l,d,"\u22e8","\\precnsim");a(i,l,d,"\u2ab9","\\precnapprox");a(i,l,d,"\u2241","\\nsim");a(i,l,d,"\ue006","\\nshortmid");a(i,l,d,"\u2224","\\nmid");a(i,l,d,"\u22ac","\\nvdash");a(i,l,d,"\u22ad","\\nvDash");a(i,l,d,"\u22ea","\\ntriangleleft");a(i,l,d,"\u22ec","\\ntrianglelefteq");a(i,l,d,"\u228a","\\subsetneq");a(i,l,d,"\ue01a","\\varsubsetneq");a(i,l,d,"\u2acb","\\subsetneqq");a(i,l,d,"\ue017","\\varsubsetneqq");a(i,l,d,"\u226f","\\ngtr");a(i,l,d,"\ue00f","\\ngeqslant");a(i,l,d,"\ue00e","\\ngeqq");a(i,l,d,"\u2a88","\\gneq");a(i,l,d,"\u2269","\\gneqq");a(i,l,d,"\ue00d","\\gvertneqq");a(i,l,d,"\u22e7","\\gnsim");a(i,l,d,"\u2a8a","\\gnapprox");a(i,l,d,"\u2281","\\nsucc");a(i,l,d,"\u22e1","\\nsucceq");a(i,l,d,"\u22e9","\\succnsim");a(i,l,d,"\u2aba","\\succnapprox");a(i,l,d,"\u2246","\\ncong");a(i,l,d,"\ue007","\\nshortparallel");a(i,l,d,"\u2226","\\nparallel");a(i,l,d,"\u22af","\\nVDash");a(i,l,d,"\u22eb","\\ntriangleright");a(i,l,d,"\u22ed","\\ntrianglerighteq");a(i,l,d,"\ue018","\\nsupseteqq");a(i,l,d,"\u228b","\\supsetneq");a(i,l,d,"\ue01b","\\varsupsetneq");a(i,l,d,"\u2acc","\\supsetneqq");a(i,l,d,"\ue019","\\varsupsetneqq");a(i,l,d,"\u22ae","\\nVdash");a(i,l,d,"\u2ab5","\\precneqq");a(i,l,d,"\u2ab6","\\succneqq");a(i,l,d,"\ue016","\\nsubseteqq");a(i,l,u,"\u22b4","\\unlhd");a(i,l,u,"\u22b5","\\unrhd");a(i,l,d,"\u219a","\\nleftarrow");a(i,l,d,"\u219b","\\nrightarrow");a(i,l,d,"\u21cd","\\nLeftarrow");a(i,l,d,"\u21cf","\\nRightarrow");a(i,l,d,"\u21ae","\\nleftrightarrow");a(i,l,d,"\u21ce","\\nLeftrightarrow");a(i,l,d,"\u25b3","\\vartriangle");a(i,l,y,"\u210f","\\hslash");a(i,l,y,"\u25bd","\\triangledown");a(i,l,y,"\u25ca","\\lozenge");a(i,l,y,"\u24c8","\\circledS");a(i,l,y,"\xae","\\circledR");a(i,l,y,"\u2221","\\measuredangle");a(i,l,y,"\u2204","\\nexists");a(i,l,y,"\u2127","\\mho");a(i,l,y,"\u2132","\\Finv");a(i,l,y,"\u2141","\\Game");a(i,l,y,"k","\\Bbbk");a(i,l,y,"\u2035","\\backprime");a(i,l,y,"\u25b2","\\blacktriangle");a(i,l,y,"\u25bc","\\blacktriangledown");a(i,l,y,"\u25a0","\\blacksquare");a(i,l,y,"\u29eb","\\blacklozenge");a(i,l,y,"\u2605","\\bigstar");a(i,l,y,"\u2222","\\sphericalangle");a(i,l,y,"\u2201","\\complement");a(i,l,y,"\xf0","\\eth");a(i,l,y,"\u2571","\\diagup");a(i,l,y,"\u2572","\\diagdown");a(i,l,y,"\u25a1","\\square");a(i,l,y,"\u25a1","\\Box");a(i,l,y,"\u25ca","\\Diamond");a(i,l,y,"\xa5","\\yen");a(i,l,y,"\u2713","\\checkmark");a(i,l,y,"\u2136","\\beth");a(i,l,y,"\u2138","\\daleth");a(i,l,y,"\u2137","\\gimel");a(i,l,y,"\u03dd","\\digamma");a(i,l,y,"\u03f0","\\varkappa");a(i,l,f,"\u250c","\\ulcorner");a(i,l,h,"\u2510","\\urcorner");a(i,l,f,"\u2514","\\llcorner");a(i,l,h,"\u2518","\\lrcorner");a(i,l,d,"\u2266","\\leqq");a(i,l,d,"\u2a7d","\\leqslant");a(i,l,d,"\u2a95","\\eqslantless");a(i,l,d,"\u2272","\\lesssim");a(i,l,d,"\u2a85","\\lessapprox");a(i,l,d,"\u224a","\\approxeq");a(i,l,u,"\u22d6","\\lessdot");a(i,l,d,"\u22d8","\\lll");a(i,l,d,"\u2276","\\lessgtr");a(i,l,d,"\u22da","\\lesseqgtr");a(i,l,d,"\u2a8b","\\lesseqqgtr");a(i,l,d,"\u2251","\\doteqdot");a(i,l,d,"\u2253","\\risingdotseq");a(i,l,d,"\u2252","\\fallingdotseq");a(i,l,d,"\u223d","\\backsim");a(i,l,d,"\u22cd","\\backsimeq");a(i,l,d,"\u2ac5","\\subseteqq");a(i,l,d,"\u22d0","\\Subset");a(i,l,d,"\u228f","\\sqsubset");a(i,l,d,"\u227c","\\preccurlyeq");a(i,l,d,"\u22de","\\curlyeqprec");a(i,l,d,"\u227e","\\precsim");a(i,l,d,"\u2ab7","\\precapprox");a(i,l,d,"\u22b2","\\vartriangleleft");a(i,l,d,"\u22b4","\\trianglelefteq");a(i,l,d,"\u22a8","\\vDash");a(i,l,d,"\u22aa","\\Vvdash");a(i,l,d,"\u2323","\\smallsmile");a(i,l,d,"\u2322","\\smallfrown");a(i,l,d,"\u224f","\\bumpeq");a(i,l,d,"\u224e","\\Bumpeq");a(i,l,d,"\u2267","\\geqq");a(i,l,d,"\u2a7e","\\geqslant");a(i,l,d,"\u2a96","\\eqslantgtr");a(i,l,d,"\u2273","\\gtrsim");a(i,l,d,"\u2a86","\\gtrapprox");a(i,l,u,"\u22d7","\\gtrdot");a(i,l,d,"\u22d9","\\ggg");a(i,l,d,"\u2277","\\gtrless");a(i,l,d,"\u22db","\\gtreqless");a(i,l,d,"\u2a8c","\\gtreqqless");a(i,l,d,"\u2256","\\eqcirc");a(i,l,d,"\u2257","\\circeq");a(i,l,d,"\u225c","\\triangleq");a(i,l,d,"\u223c","\\thicksim");a(i,l,d,"\u2248","\\thickapprox");a(i,l,d,"\u2ac6","\\supseteqq");a(i,l,d,"\u22d1","\\Supset");a(i,l,d,"\u2290","\\sqsupset");a(i,l,d,"\u227d","\\succcurlyeq");a(i,l,d,"\u22df","\\curlyeqsucc");a(i,l,d,"\u227f","\\succsim");a(i,l,d,"\u2ab8","\\succapprox");a(i,l,d,"\u22b3","\\vartriangleright");a(i,l,d,"\u22b5","\\trianglerighteq");a(i,l,d,"\u22a9","\\Vdash");a(i,l,d,"\u2223","\\shortmid");a(i,l,d,"\u2225","\\shortparallel");a(i,l,d,"\u226c","\\between");a(i,l,d,"\u22d4","\\pitchfork");a(i,l,d,"\u221d","\\varpropto");a(i,l,d,"\u25c0","\\blacktriangleleft");a(i,l,d,"\u2234","\\therefore");a(i,l,d,"\u220d","\\backepsilon");a(i,l,d,"\u25b6","\\blacktriangleright");a(i,l,d,"\u2235","\\because");a(i,l,d,"\u22d8","\\llless");a(i,l,d,"\u22d9","\\gggtr");a(i,l,u,"\u22b2","\\lhd");a(i,l,u,"\u22b3","\\rhd");a(i,l,d,"\u2242","\\eqsim");a(i,n,d,"\u22c8","\\Join");a(i,l,d,"\u2251","\\Doteq");a(i,l,u,"\u2214","\\dotplus");a(i,l,u,"\u2216","\\smallsetminus");a(i,l,u,"\u22d2","\\Cap");a(i,l,u,"\u22d3","\\Cup");a(i,l,u,"\u2a5e","\\doublebarwedge");a(i,l,u,"\u229f","\\boxminus");a(i,l,u,"\u229e","\\boxplus");a(i,l,u,"\u22c7","\\divideontimes");a(i,l,u,"\u22c9","\\ltimes");a(i,l,u,"\u22ca","\\rtimes");a(i,l,u,"\u22cb","\\leftthreetimes");a(i,l,u,"\u22cc","\\rightthreetimes");a(i,l,u,"\u22cf","\\curlywedge");a(i,l,u,"\u22ce","\\curlyvee");a(i,l,u,"\u229d","\\circleddash");a(i,l,u,"\u229b","\\circledast");a(i,l,u,"\u22c5","\\centerdot");a(i,l,u,"\u22ba","\\intercal");a(i,l,u,"\u22d2","\\doublecap");a(i,l,u,"\u22d3","\\doublecup");a(i,l,u,"\u22a0","\\boxtimes");a(i,l,d,"\u21e2","\\dashrightarrow");a(i,l,d,"\u21e0","\\dashleftarrow");a(i,l,d,"\u21c7","\\leftleftarrows");a(i,l,d,"\u21c6","\\leftrightarrows");a(i,l,d,"\u21da","\\Lleftarrow");a(i,l,d,"\u219e","\\twoheadleftarrow");a(i,l,d,"\u21a2","\\leftarrowtail");a(i,l,d,"\u21ab","\\looparrowleft");a(i,l,d,"\u21cb","\\leftrightharpoons");a(i,l,d,"\u21b6","\\curvearrowleft");a(i,l,d,"\u21ba","\\circlearrowleft");a(i,l,d,"\u21b0","\\Lsh");a(i,l,d,"\u21c8","\\upuparrows");a(i,l,d,"\u21bf","\\upharpoonleft");a(i,l,d,"\u21c3","\\downharpoonleft");a(i,l,d,"\u22b8","\\multimap");a(i,l,d,"\u21ad","\\leftrightsquigarrow");a(i,l,d,"\u21c9","\\rightrightarrows");a(i,l,d,"\u21c4","\\rightleftarrows");a(i,l,d,"\u21a0","\\twoheadrightarrow");a(i,l,d,"\u21a3","\\rightarrowtail");a(i,l,d,"\u21ac","\\looparrowright");a(i,l,d,"\u21b7","\\curvearrowright");a(i,l,d,"\u21bb","\\circlearrowright");a(i,l,d,"\u21b1","\\Rsh");a(i,l,d,"\u21ca","\\downdownarrows");a(i,l,d,"\u21be","\\upharpoonright");a(i,l,d,"\u21c2","\\downharpoonright");a(i,l,d,"\u21dd","\\rightsquigarrow");a(i,l,d,"\u21dd","\\leadsto");a(i,l,d,"\u21db","\\Rrightarrow");a(i,l,d,"\u21be","\\restriction");a(i,n,y,"\u2018","`");a(i,n,y,"$","\\$");a(s,n,y,"$","\\$");a(i,n,y,"%","\\%");a(s,n,y,"%","\\%");a(i,n,y,"_","\\_");a(s,n,y,"_","\\_");
+a(i,n,y,"\u2220","\\angle");a(i,n,y,"\u221e","\\infty");a(i,n,y,"\u2032","\\prime");a(i,n,y,"\u25b3","\\triangle");a(i,n,y,"\u0393","\\Gamma");a(i,n,y,"\u0394","\\Delta");a(i,n,y,"\u0398","\\Theta");a(i,n,y,"\u039b","\\Lambda");a(i,n,y,"\u039e","\\Xi");a(i,n,y,"\u03a0","\\Pi");a(i,n,y,"\u03a3","\\Sigma");a(i,n,y,"\u03a5","\\Upsilon");a(i,n,y,"\u03a6","\\Phi");a(i,n,y,"\u03a8","\\Psi");a(i,n,y,"\u03a9","\\Omega");a(i,n,y,"\xac","\\neg");a(i,n,y,"\xac","\\lnot");a(i,n,y,"\u22a4","\\top");a(i,n,y,"\u22a5","\\bot");a(i,n,y,"\u2205","\\emptyset");a(i,l,y,"\u2205","\\varnothing");a(i,n,p,"\u03b1","\\alpha");a(i,n,p,"\u03b2","\\beta");a(i,n,p,"\u03b3","\\gamma");a(i,n,p,"\u03b4","\\delta");a(i,n,p,"\u03f5","\\epsilon");a(i,n,p,"\u03b6","\\zeta");a(i,n,p,"\u03b7","\\eta");a(i,n,p,"\u03b8","\\theta");a(i,n,p,"\u03b9","\\iota");a(i,n,p,"\u03ba","\\kappa");a(i,n,p,"\u03bb","\\lambda");a(i,n,p,"\u03bc","\\mu");a(i,n,p,"\u03bd","\\nu");a(i,n,p,"\u03be","\\xi");a(i,n,p,"o","\\omicron");a(i,n,p,"\u03c0","\\pi");a(i,n,p,"\u03c1","\\rho");a(i,n,p,"\u03c3","\\sigma");a(i,n,p,"\u03c4","\\tau");a(i,n,p,"\u03c5","\\upsilon");a(i,n,p,"\u03d5","\\phi");a(i,n,p,"\u03c7","\\chi");a(i,n,p,"\u03c8","\\psi");a(i,n,p,"\u03c9","\\omega");a(i,n,p,"\u03b5","\\varepsilon");a(i,n,p,"\u03d1","\\vartheta");a(i,n,p,"\u03d6","\\varpi");a(i,n,p,"\u03f1","\\varrho");a(i,n,p,"\u03c2","\\varsigma");a(i,n,p,"\u03c6","\\varphi");a(i,n,u,"\u2217","*");a(i,n,u,"+","+");a(i,n,u,"\u2212","-");a(i,n,u,"\u22c5","\\cdot");a(i,n,u,"\u2218","\\circ");a(i,n,u,"\xf7","\\div");a(i,n,u,"\xb1","\\pm");a(i,n,u,"\xd7","\\times");a(i,n,u,"\u2229","\\cap");a(i,n,u,"\u222a","\\cup");a(i,n,u,"\u2216","\\setminus");a(i,n,u,"\u2227","\\land");a(i,n,u,"\u2228","\\lor");a(i,n,u,"\u2227","\\wedge");a(i,n,u,"\u2228","\\vee");a(i,n,y,"\u221a","\\surd");a(i,n,f,"(","(");a(i,n,f,"[","[");a(i,n,f,"\u27e8","\\langle");a(i,n,f,"\u2223","\\lvert");a(i,n,f,"\u2225","\\lVert");a(i,n,h,")",")");a(i,n,h,"]","]");a(i,n,h,"?","?");a(i,n,h,"!","!");a(i,n,h,"\u27e9","\\rangle");a(i,n,h,"\u2223","\\rvert");a(i,n,h,"\u2225","\\rVert");a(i,n,d,"=","=");a(i,n,d,"<","<");a(i,n,d,">",">");a(i,n,d,":",":");a(i,n,d,"\u2248","\\approx");a(i,n,d,"\u2245","\\cong");a(i,n,d,"\u2265","\\ge");a(i,n,d,"\u2265","\\geq");a(i,n,d,"\u2190","\\gets");a(i,n,d,">","\\gt");a(i,n,d,"\u2208","\\in");a(i,n,d,"\u2209","\\notin");a(i,n,d,"\u2282","\\subset");a(i,n,d,"\u2283","\\supset");a(i,n,d,"\u2286","\\subseteq");a(i,n,d,"\u2287","\\supseteq");a(i,l,d,"\u2288","\\nsubseteq");a(i,l,d,"\u2289","\\nsupseteq");a(i,n,d,"\u22a8","\\models");a(i,n,d,"\u2190","\\leftarrow");a(i,n,d,"\u2264","\\le");a(i,n,d,"\u2264","\\leq");a(i,n,d,"<","\\lt");a(i,n,d,"\u2260","\\ne");a(i,n,d,"\u2260","\\neq");a(i,n,d,"\u2192","\\rightarrow");a(i,n,d,"\u2192","\\to");a(i,l,d,"\u2271","\\ngeq");a(i,l,d,"\u2270","\\nleq");a(i,n,g,null,"\\!");a(i,n,g,"\xa0","\\ ");a(i,n,g,"\xa0","~");a(i,n,g,null,"\\,");a(i,n,g,null,"\\:");a(i,n,g,null,"\\;");a(i,n,g,null,"\\enspace");a(i,n,g,null,"\\qquad");a(i,n,g,null,"\\quad");a(i,n,g,"\xa0","\\space");a(i,n,v,",",",");a(i,n,v,";",";");a(i,n,v,":","\\colon");a(i,l,u,"\u22bc","\\barwedge");a(i,l,u,"\u22bb","\\veebar");a(i,n,u,"\u2299","\\odot");a(i,n,u,"\u2295","\\oplus");a(i,n,u,"\u2297","\\otimes");a(i,n,y,"\u2202","\\partial");a(i,n,u,"\u2298","\\oslash");a(i,l,u,"\u229a","\\circledcirc");a(i,l,u,"\u22a1","\\boxdot");a(i,n,u,"\u25b3","\\bigtriangleup");a(i,n,u,"\u25bd","\\bigtriangledown");a(i,n,u,"\u2020","\\dagger");a(i,n,u,"\u22c4","\\diamond");a(i,n,u,"\u22c6","\\star");a(i,n,u,"\u25c3","\\triangleleft");a(i,n,u,"\u25b9","\\triangleright");a(i,n,f,"{","\\{");a(s,n,y,"{","\\{");a(i,n,h,"}","\\}");a(s,n,y,"}","\\}");a(i,n,f,"{","\\lbrace");a(i,n,h,"}","\\rbrace");a(i,n,f,"[","\\lbrack");a(i,n,h,"]","\\rbrack");a(i,n,f,"\u230a","\\lfloor");a(i,n,h,"\u230b","\\rfloor");a(i,n,f,"\u2308","\\lceil");a(i,n,h,"\u2309","\\rceil");a(i,n,y,"\\","\\backslash");a(i,n,y,"\u2223","|");a(i,n,y,"\u2223","\\vert");a(i,n,y,"\u2225","\\|");a(i,n,y,"\u2225","\\Vert");a(i,n,d,"\u2191","\\uparrow");a(i,n,d,"\u21d1","\\Uparrow");a(i,n,d,"\u2193","\\downarrow");a(i,n,d,"\u21d3","\\Downarrow");a(i,n,d,"\u2195","\\updownarrow");a(i,n,d,"\u21d5","\\Updownarrow");a(i,i,m,"\u2210","\\coprod");a(i,i,m,"\u22c1","\\bigvee");a(i,i,m,"\u22c0","\\bigwedge");a(i,i,m,"\u2a04","\\biguplus");a(i,i,m,"\u22c2","\\bigcap");a(i,i,m,"\u22c3","\\bigcup");a(i,i,m,"\u222b","\\int");a(i,i,m,"\u222b","\\intop");a(i,i,m,"\u222c","\\iint");a(i,i,m,"\u222d","\\iiint");a(i,i,m,"\u220f","\\prod");a(i,i,m,"\u2211","\\sum");a(i,i,m,"\u2a02","\\bigotimes");a(i,i,m,"\u2a01","\\bigoplus");a(i,i,m,"\u2a00","\\bigodot");a(i,i,m,"\u222e","\\oint");a(i,i,m,"\u2a06","\\bigsqcup");a(i,i,m,"\u222b","\\smallint");a(s,n,c,"\u2026","\\textellipsis");a(i,n,c,"\u2026","\\mathellipsis");a(s,n,c,"\u2026","\\ldots");a(i,n,c,"\u2026","\\ldots");a(i,n,c,"\u22ef","\\cdots");a(i,n,c,"\u22f1","\\ddots");a(i,n,y,"\u22ee","\\vdots");a(i,n,o,"\xb4","\\acute");a(i,n,o,"`","\\grave");a(i,n,o,"\xa8","\\ddot");a(i,n,o,"~","\\tilde");a(i,n,o,"\xaf","\\bar");a(i,n,o,"\u02d8","\\breve");a(i,n,o,"\u02c7","\\check");a(i,n,o,"^","\\hat");a(i,n,o,"\u20d7","\\vec");a(i,n,o,"\u02d9","\\dot");a(i,n,p,"\u0131","\\imath");a(i,n,p,"\u0237","\\jmath");a(s,n,y,"\u2013","--");a(s,n,y,"\u2014","---");a(s,n,y,"\u2018","`");a(s,n,y,"\u2019","'");a(s,n,y,"\u201c","``");a(s,n,y,"\u201d","''");a(i,n,y,"\xb0","\\degree");a(s,n,y,"\xb0","\\degree");a(i,n,p,"\xa3","\\pounds");a(i,l,y,"\u2720","\\maltese");a(s,l,y,"\u2720","\\maltese");a(s,n,g,"\xa0","\\ ");a(s,n,g,"\xa0"," ");a(s,n,g,"\xa0","~");var b;var w;var x='0123456789/@."';for(b=0;b<x.length;b++){w=x.charAt(b);a(i,n,y,w,w)}var k='0123456789!@*()-=+[]";:?/.,';for(b=0;b<k.length;b++){w=k.charAt(b);a(s,n,y,w,w)}var z="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(b=0;b<z.length;b++){w=z.charAt(b);a(i,n,p,w,w);a(s,n,y,w,w)}for(b=192;b<=214;b++){w=String.fromCharCode(b);a(s,n,y,w,w)}for(b=216;b<=246;b++){w=String.fromCharCode(b);a(s,n,y,w,w)}for(b=248;b<=255;b++){w=String.fromCharCode(b);a(s,n,y,w,w)}for(b=1040;b<=1103;b++){w=String.fromCharCode(b);a(s,n,y,w,w)}a(s,n,y,"\u2013","\u2013");a(s,n,y,"\u2014","\u2014");a(s,n,y,"\u2018","\u2018");a(s,n,y,"\u2019","\u2019");a(s,n,y,"\u201c","\u201c");a(s,n,y,"\u201d","\u201d")},{}],25:[function(e,t,r){var a=/[\uAC00-\uD7AF]/;var i=/[\u3040-\u309F]|[\u30A0-\u30FF]|[\u4E00-\u9FAF]|[\uAC00-\uD7AF]/;t.exports={cjkRegex:i,hangulRegex:a}},{}],26:[function(e,t,r){var a=Array.prototype.indexOf;var i=function(e,t){if(e==null){return-1}if(a&&e.indexOf===a){return e.indexOf(t)}var r=0;var i=e.length;for(;r<i;r++){if(e[r]===t){return r}}return-1};var s=function(e,t){return i(e,t)!==-1};var n=function(e,t){return e===undefined?t:e};var l=/([A-Z])/g;var o=function(e){return e.replace(l,"-$1").toLowerCase()};var u={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"};var h=/[&><"']/g;function c(e){return u[e]}function p(e){return(""+e).replace(h,c)}var m;if(typeof document!=="undefined"){var f=document.createElement("span");if("textContent"in f){m=function(e,t){e.textContent=t}}else{m=function(e,t){e.innerText=t}}}function v(e){m(e,"")}t.exports={contains:s,deflt:n,escape:p,hyphenate:o,indexOf:i,setTextContent:m,clearNode:v}},{}]},{},[1])(1)});
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt
deleted file mode 100644
index 72469da831a..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt
+++ /dev/null
@@ -1,6419 +0,0 @@
-// 17.08.26 Slider
-// 16.11.27
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),|Out_#_1-Tmp2_1|<Dif);//16.11.27
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3,//16.11.27
- Out_#=(Out_#+Tmp2)/2;
- );
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_1),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-
-Colorcode(src,dest,sL):=(
-//help:Colorcode("rgb","cmyk",[1,0.5,0]);
- regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
- regional(dl1,dl2,dl3);
- if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
- if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
- if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
- if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
- dL;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..length(head));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..length(body),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01upto
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31upto(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01upto
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
-// tmp=name+"=Enclosing(";//16.10.20from
-// tmp1="list(";
-// forall(plist,
-// tmp1=tmp1+#+",";
-// );
-// tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- tmp=apply(AnsL,LLcrd(#));
- tmp=name+"=Listplot("+textformat(tmp,5)+")";//16.10.20upto
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19upto
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Slider(ptstr,p1,p2):=( //17.04.11
-//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
- pA=substring(ptstr,0,tmp_1-1);
- pC=substring(ptstr,tmp_1,tmp_2-1);
- pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
-// create([sname],"Segment",[parse(pA),parse(pB)]);
-// tmp2=Listplot("",[p1,p2],["nodata"]);
- Putonseg(pC,parse("sg"+pA+pB));
-// create([pC],"PointOn",[parse(sname),0.5]);
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy
new file mode 100644
index 00000000000..87eb72d583d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js
new file mode 100644
index 00000000000..e1e978523c6
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2015 Small Batch, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+/* Web Font Loader v1.5.18 - (c) Adobe Systems, Google. License: Apache 2.0 */
+;(function(window,document,undefined){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function k(a,b,c){k=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return k.apply(null,arguments)}var n=Date.now||function(){return+new Date};function q(a,b){this.K=a;this.w=b||a;this.G=this.w.document}q.prototype.createElement=function(a,b,c){a=this.G.createElement(a);if(b)for(var d in b)b.hasOwnProperty(d)&&("style"==d?a.style.cssText=b[d]:a.setAttribute(d,b[d]));c&&a.appendChild(this.G.createTextNode(c));return a};function r(a,b,c){a=a.G.getElementsByTagName(b)[0];a||(a=document.documentElement);a&&a.lastChild&&a.insertBefore(c,a.lastChild)}function ca(a,b){function c(){a.G.body?b():setTimeout(c,0)}c()}
+function s(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function t(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
+function u(a){if("string"===typeof a.na)return a.na;var b=a.w.location.protocol;"about:"==b&&(b=a.K.location.protocol);return"https:"==b?"https:":"http:"}function v(a,b){var c=a.createElement("link",{rel:"stylesheet",href:b,media:"all"}),d=!1;c.onload=function(){d||(d=!0)};c.onerror=function(){d||(d=!0)};r(a,"head",c)}
+function w(a,b,c,d){var e=a.G.getElementsByTagName("head")[0];if(e){var f=a.createElement("script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);window.setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function x(a,b){this.Y=a;this.ga=b};function y(a,b,c,d){this.c=null!=a?a:null;this.g=null!=b?b:null;this.D=null!=c?c:null;this.e=null!=d?d:null}var da=/^([0-9]+)(?:[\._-]([0-9]+))?(?:[\._-]([0-9]+))?(?:[\._+-]?(.*))?$/;y.prototype.compare=function(a){return this.c>a.c||this.c===a.c&&this.g>a.g||this.c===a.c&&this.g===a.g&&this.D>a.D?1:this.c<a.c||this.c===a.c&&this.g<a.g||this.c===a.c&&this.g===a.g&&this.D<a.D?-1:0};y.prototype.toString=function(){return[this.c,this.g||"",this.D||"",this.e||""].join("")};
+function z(a){a=da.exec(a);var b=null,c=null,d=null,e=null;a&&(null!==a[1]&&a[1]&&(b=parseInt(a[1],10)),null!==a[2]&&a[2]&&(c=parseInt(a[2],10)),null!==a[3]&&a[3]&&(d=parseInt(a[3],10)),null!==a[4]&&a[4]&&(e=/^[0-9]+$/.test(a[4])?parseInt(a[4],10):a[4]));return new y(b,c,d,e)};function A(a,b,c,d,e,f,g,h){this.N=a;this.k=h}A.prototype.getName=function(){return this.N};function B(a){this.a=a}var ea=new A("Unknown",0,0,0,0,0,0,new x(!1,!1));
+B.prototype.parse=function(){var a;if(-1!=this.a.indexOf("MSIE")||-1!=this.a.indexOf("Trident/")){a=C(this);var b=z(D(this)),c=null,d=E(this.a,/Trident\/([\d\w\.]+)/,1),c=-1!=this.a.indexOf("MSIE")?z(E(this.a,/MSIE ([\d\w\.]+)/,1)):z(E(this.a,/rv:([\d\w\.]+)/,1));""!=d&&z(d);a=new A("MSIE",0,0,0,0,0,0,new x("Windows"==a&&6<=c.c||"Windows Phone"==a&&8<=b.c,!1))}else if(-1!=this.a.indexOf("Opera"))a:if(a=z(E(this.a,/Presto\/([\d\w\.]+)/,1)),z(D(this)),null!==a.c||z(E(this.a,/rv:([^\)]+)/,1)),-1!=this.a.indexOf("Opera Mini/"))a=
+z(E(this.a,/Opera Mini\/([\d\.]+)/,1)),a=new A("OperaMini",0,0,0,C(this),0,0,new x(!1,!1));else{if(-1!=this.a.indexOf("Version/")&&(a=z(E(this.a,/Version\/([\d\.]+)/,1)),null!==a.c)){a=new A("Opera",0,0,0,C(this),0,0,new x(10<=a.c,!1));break a}a=z(E(this.a,/Opera[\/ ]([\d\.]+)/,1));a=null!==a.c?new A("Opera",0,0,0,C(this),0,0,new x(10<=a.c,!1)):new A("Opera",0,0,0,C(this),0,0,new x(!1,!1))}else/OPR\/[\d.]+/.test(this.a)?a=F(this):/AppleWeb(K|k)it/.test(this.a)?a=F(this):-1!=this.a.indexOf("Gecko")?
+(a="Unknown",b=new y,z(D(this)),b=!1,-1!=this.a.indexOf("Firefox")?(a="Firefox",b=z(E(this.a,/Firefox\/([\d\w\.]+)/,1)),b=3<=b.c&&5<=b.g):-1!=this.a.indexOf("Mozilla")&&(a="Mozilla"),c=z(E(this.a,/rv:([^\)]+)/,1)),b||(b=1<c.c||1==c.c&&9<c.g||1==c.c&&9==c.g&&2<=c.D),a=new A(a,0,0,0,C(this),0,0,new x(b,!1))):a=ea;return a};
+function C(a){var b=E(a.a,/(iPod|iPad|iPhone|Android|Windows Phone|BB\d{2}|BlackBerry)/,1);if(""!=b)return/BB\d{2}/.test(b)&&(b="BlackBerry"),b;a=E(a.a,/(Linux|Mac_PowerPC|Macintosh|Windows|CrOS|PlayStation|CrKey)/,1);return""!=a?("Mac_PowerPC"==a?a="Macintosh":"PlayStation"==a&&(a="Linux"),a):"Unknown"}
+function D(a){var b=E(a.a,/(OS X|Windows NT|Android) ([^;)]+)/,2);if(b||(b=E(a.a,/Windows Phone( OS)? ([^;)]+)/,2))||(b=E(a.a,/(iPhone )?OS ([\d_]+)/,2)))return b;if(b=E(a.a,/(?:Linux|CrOS|CrKey) ([^;)]+)/,1))for(var b=b.split(/\s/),c=0;c<b.length;c+=1)if(/^[\d\._]+$/.test(b[c]))return b[c];return(a=E(a.a,/(BB\d{2}|BlackBerry).*?Version\/([^\s]*)/,2))?a:"Unknown"}
+function F(a){var b=C(a),c=z(D(a)),d=z(E(a.a,/AppleWeb(?:K|k)it\/([\d\.\+]+)/,1)),e="Unknown",f=new y,f="Unknown",g=!1;/OPR\/[\d.]+/.test(a.a)?e="Opera":-1!=a.a.indexOf("Chrome")||-1!=a.a.indexOf("CrMo")||-1!=a.a.indexOf("CriOS")?e="Chrome":/Silk\/\d/.test(a.a)?e="Silk":"BlackBerry"==b||"Android"==b?e="BuiltinBrowser":-1!=a.a.indexOf("PhantomJS")?e="PhantomJS":-1!=a.a.indexOf("Safari")?e="Safari":-1!=a.a.indexOf("AdobeAIR")?e="AdobeAIR":-1!=a.a.indexOf("PlayStation")&&(e="BuiltinBrowser");"BuiltinBrowser"==
+e?f="Unknown":"Silk"==e?f=E(a.a,/Silk\/([\d\._]+)/,1):"Chrome"==e?f=E(a.a,/(Chrome|CrMo|CriOS)\/([\d\.]+)/,2):-1!=a.a.indexOf("Version/")?f=E(a.a,/Version\/([\d\.\w]+)/,1):"AdobeAIR"==e?f=E(a.a,/AdobeAIR\/([\d\.]+)/,1):"Opera"==e?f=E(a.a,/OPR\/([\d.]+)/,1):"PhantomJS"==e&&(f=E(a.a,/PhantomJS\/([\d.]+)/,1));f=z(f);g="AdobeAIR"==e?2<f.c||2==f.c&&5<=f.g:"BlackBerry"==b?10<=c.c:"Android"==b?2<c.c||2==c.c&&1<c.g:526<=d.c||525<=d.c&&13<=d.g;return new A(e,0,0,0,0,0,0,new x(g,536>d.c||536==d.c&&11>d.g))}
+function E(a,b,c){return(a=a.match(b))&&a[c]?a[c]:""};function G(a){this.ma=a||"-"}G.prototype.e=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.ma)};function H(a,b){this.N=a;this.Z=4;this.O="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.O=c[1],this.Z=parseInt(c[2],10))}H.prototype.getName=function(){return this.N};function I(a){return a.O+a.Z}function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.d=a;this.q=a.w.document.documentElement;this.Q=b;this.j="wf";this.h=new G("-");this.ha=!1!==b.events;this.F=!1!==b.classes}function J(a){if(a.F){var b=t(a.q,a.h.e(a.j,"active")),c=[],d=[a.h.e(a.j,"loading")];b||c.push(a.h.e(a.j,"inactive"));s(a.q,c,d)}K(a,"inactive")}function K(a,b,c){if(a.ha&&a.Q[b])if(c)a.Q[b](c.getName(),I(c));else a.Q[b]()};function ia(){this.C={}};function L(a,b){this.d=a;this.I=b;this.o=this.d.createElement("span",{"aria-hidden":"true"},this.I)}
+function M(a,b){var c=a.o,d;d=[];for(var e=b.N.split(/,\s*/),f=0;f<e.length;f++){var g=e[f].replace(/['"]/g,"");-1==g.indexOf(" ")?d.push(g):d.push("'"+g+"'")}d=d.join(",");e="normal";"o"===b.O?e="oblique":"i"===b.O&&(e="italic");c.style.cssText="display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+d+";"+("font-style:"+e+";font-weight:"+(b.Z+"00")+";")}
+function N(a){r(a.d,"body",a.o)}L.prototype.remove=function(){var a=this.o;a.parentNode&&a.parentNode.removeChild(a)};function O(a,b,c,d,e,f,g,h){this.$=a;this.ka=b;this.d=c;this.m=d;this.k=e;this.I=h||"BESbswy";this.v={};this.X=f||3E3;this.ca=g||null;this.H=this.u=this.t=null;this.t=new L(this.d,this.I);this.u=new L(this.d,this.I);this.H=new L(this.d,this.I);M(this.t,new H("serif",I(this.m)));M(this.u,new H("sans-serif",I(this.m)));M(this.H,new H("monospace",I(this.m)));N(this.t);N(this.u);N(this.H);this.v.serif=this.t.o.offsetWidth;this.v["sans-serif"]=this.u.o.offsetWidth;this.v.monospace=this.H.o.offsetWidth}
+var P={sa:"serif",ra:"sans-serif",qa:"monospace"};O.prototype.start=function(){this.oa=n();M(this.t,new H(this.m.getName()+",serif",I(this.m)));M(this.u,new H(this.m.getName()+",sans-serif",I(this.m)));Q(this)};function R(a,b,c){for(var d in P)if(P.hasOwnProperty(d)&&b===a.v[P[d]]&&c===a.v[P[d]])return!0;return!1}
+function Q(a){var b=a.t.o.offsetWidth,c=a.u.o.offsetWidth;b===a.v.serif&&c===a.v["sans-serif"]||a.k.ga&&R(a,b,c)?n()-a.oa>=a.X?a.k.ga&&R(a,b,c)&&(null===a.ca||a.ca.hasOwnProperty(a.m.getName()))?S(a,a.$):S(a,a.ka):ja(a):S(a,a.$)}function ja(a){setTimeout(k(function(){Q(this)},a),50)}function S(a,b){a.t.remove();a.u.remove();a.H.remove();b(a.m)};function T(a,b,c,d){this.d=b;this.A=c;this.S=0;this.ea=this.ba=!1;this.X=d;this.k=a.k}function ka(a,b,c,d,e){c=c||{};if(0===b.length&&e)J(a.A);else for(a.S+=b.length,e&&(a.ba=e),e=0;e<b.length;e++){var f=b[e],g=c[f.getName()],h=a.A,m=f;h.F&&s(h.q,[h.h.e(h.j,m.getName(),I(m).toString(),"loading")]);K(h,"fontloading",m);h=null;h=new O(k(a.ia,a),k(a.ja,a),a.d,f,a.k,a.X,d,g);h.start()}}
+T.prototype.ia=function(a){var b=this.A;b.F&&s(b.q,[b.h.e(b.j,a.getName(),I(a).toString(),"active")],[b.h.e(b.j,a.getName(),I(a).toString(),"loading"),b.h.e(b.j,a.getName(),I(a).toString(),"inactive")]);K(b,"fontactive",a);this.ea=!0;la(this)};
+T.prototype.ja=function(a){var b=this.A;if(b.F){var c=t(b.q,b.h.e(b.j,a.getName(),I(a).toString(),"active")),d=[],e=[b.h.e(b.j,a.getName(),I(a).toString(),"loading")];c||d.push(b.h.e(b.j,a.getName(),I(a).toString(),"inactive"));s(b.q,d,e)}K(b,"fontinactive",a);la(this)};function la(a){0==--a.S&&a.ba&&(a.ea?(a=a.A,a.F&&s(a.q,[a.h.e(a.j,"active")],[a.h.e(a.j,"loading"),a.h.e(a.j,"inactive")]),K(a,"active")):J(a.A))};function U(a){this.K=a;this.B=new ia;this.pa=new B(a.navigator.userAgent);this.a=this.pa.parse();this.U=this.V=0;this.R=this.T=!0}
+U.prototype.load=function(a){this.d=new q(this.K,a.context||this.K);this.T=!1!==a.events;this.R=!1!==a.classes;var b=new ha(this.d,a),c=[],d=a.timeout;b.F&&s(b.q,[b.h.e(b.j,"loading")]);K(b,"loading");var c=this.B,e=this.d,f=[],g;for(g in a)if(a.hasOwnProperty(g)){var h=c.C[g];h&&f.push(h(a[g],e))}c=f;this.U=this.V=c.length;a=new T(this.a,this.d,b,d);d=0;for(g=c.length;d<g;d++)e=c[d],e.L(this.a,k(this.la,this,e,b,a))};
+U.prototype.la=function(a,b,c,d){var e=this;d?a.load(function(a,b,d){ma(e,c,a,b,d)}):(a=0==--this.V,this.U--,a&&0==this.U?J(b):(this.R||this.T)&&ka(c,[],{},null,a))};function ma(a,b,c,d,e){var f=0==--a.V;(a.R||a.T)&&setTimeout(function(){ka(b,c,d||null,e||null,f)},0)};function na(a,b,c){this.P=a?a:b+oa;this.s=[];this.W=[];this.fa=c||""}var oa="//fonts.googleapis.com/css";na.prototype.e=function(){if(0==this.s.length)throw Error("No fonts to load!");if(-1!=this.P.indexOf("kit="))return this.P;for(var a=this.s.length,b=[],c=0;c<a;c++)b.push(this.s[c].replace(/ /g,"+"));a=this.P+"?family="+b.join("%7C");0<this.W.length&&(a+="&subset="+this.W.join(","));0<this.fa.length&&(a+="&text="+encodeURIComponent(this.fa));return a};function pa(a){this.s=a;this.da=[];this.M={}}
+var qa={latin:"BESbswy",cyrillic:"&#1081;&#1103;&#1046;",greek:"&#945;&#946;&#931;",khmer:"&#x1780;&#x1781;&#x1782;",Hanuman:"&#x1780;&#x1781;&#x1782;"},ra={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},sa={i:"i",italic:"i",n:"n",normal:"n"},ta=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
+pa.prototype.parse=function(){for(var a=this.s.length,b=0;b<a;b++){var c=this.s[b].split(":"),d=c[0].replace(/\+/g," "),e=["n4"];if(2<=c.length){var f;var g=c[1];f=[];if(g)for(var g=g.split(","),h=g.length,m=0;m<h;m++){var l;l=g[m];if(l.match(/^[\w-]+$/)){l=ta.exec(l.toLowerCase());var p=void 0;if(null==l)p="";else{p=void 0;p=l[1];if(null==p||""==p)p="4";else var fa=ra[p],p=fa?fa:isNaN(p)?"4":p.substr(0,1);l=l[2];p=[null==l||""==l?"n":sa[l],p].join("")}l=p}else l="";l&&f.push(l)}0<f.length&&(e=f);
+3==c.length&&(c=c[2],f=[],c=c?c.split(","):f,0<c.length&&(c=qa[c[0]])&&(this.M[d]=c))}this.M[d]||(c=qa[d])&&(this.M[d]=c);for(c=0;c<e.length;c+=1)this.da.push(new H(d,e[c]))}};function V(a,b){this.a=(new B(navigator.userAgent)).parse();this.d=a;this.f=b}var ua={Arimo:!0,Cousine:!0,Tinos:!0};V.prototype.L=function(a,b){b(a.k.Y)};V.prototype.load=function(a){var b=this.d;"MSIE"==this.a.getName()&&1!=this.f.blocking?ca(b,k(this.aa,this,a)):this.aa(a)};
+V.prototype.aa=function(a){for(var b=this.d,c=new na(this.f.api,u(b),this.f.text),d=this.f.families,e=d.length,f=0;f<e;f++){var g=d[f].split(":");3==g.length&&c.W.push(g.pop());var h="";2==g.length&&""!=g[1]&&(h=":");c.s.push(g.join(h))}d=new pa(d);d.parse();v(b,c.e());a(d.da,d.M,ua)};function W(a,b){this.d=a;this.f=b;this.p=[]}W.prototype.J=function(a){var b=this.d;return u(this.d)+(this.f.api||"//f.fontdeck.com/s/css/js/")+(b.w.location.hostname||b.K.location.hostname)+"/"+a+".js"};
+W.prototype.L=function(a,b){var c=this.f.id,d=this.d.w,e=this;c?(d.__webfontfontdeckmodule__||(d.__webfontfontdeckmodule__={}),d.__webfontfontdeckmodule__[c]=function(a,c){for(var d=0,m=c.fonts.length;d<m;++d){var l=c.fonts[d];e.p.push(new H(l.name,ga("font-weight:"+l.weight+";font-style:"+l.style)))}b(a)},w(this.d,this.J(c),function(a){a&&b(!1)})):b(!1)};W.prototype.load=function(a){a(this.p)};function X(a,b){this.d=a;this.f=b;this.p=[]}X.prototype.J=function(a){var b=u(this.d);return(this.f.api||b+"//use.typekit.net")+"/"+a+".js"};X.prototype.L=function(a,b){var c=this.f.id,d=this.d.w,e=this;c?w(this.d,this.J(c),function(a){if(a)b(!1);else{if(d.Typekit&&d.Typekit.config&&d.Typekit.config.fn){a=d.Typekit.config.fn;for(var c=0;c<a.length;c+=2)for(var h=a[c],m=a[c+1],l=0;l<m.length;l++)e.p.push(new H(h,m[l]));try{d.Typekit.load({events:!1,classes:!1})}catch(p){}}b(!0)}},2E3):b(!1)};
+X.prototype.load=function(a){a(this.p)};function Y(a,b){this.d=a;this.f=b;this.p=[]}Y.prototype.L=function(a,b){var c=this,d=c.f.projectId,e=c.f.version;if(d){var f=c.d.w;w(this.d,c.J(d,e),function(e){if(e)b(!1);else{if(f["__mti_fntLst"+d]&&(e=f["__mti_fntLst"+d]()))for(var h=0;h<e.length;h++)c.p.push(new H(e[h].fontfamily));b(a.k.Y)}}).id="__MonotypeAPIScript__"+d}else b(!1)};Y.prototype.J=function(a,b){var c=u(this.d),d=(this.f.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+d+"/"+a+".js"+(b?"?v="+b:"")};
+Y.prototype.load=function(a){a(this.p)};function Z(a,b){this.d=a;this.f=b}Z.prototype.load=function(a){var b,c,d=this.f.urls||[],e=this.f.families||[],f=this.f.testStrings||{};b=0;for(c=d.length;b<c;b++)v(this.d,d[b]);d=[];b=0;for(c=e.length;b<c;b++){var g=e[b].split(":");if(g[1])for(var h=g[1].split(","),m=0;m<h.length;m+=1)d.push(new H(g[0],h[m]));else d.push(new H(g[0]))}a(d,f)};Z.prototype.L=function(a,b){return b(a.k.Y)};var $=new U(this);$.B.C.custom=function(a,b){return new Z(b,a)};$.B.C.fontdeck=function(a,b){return new W(b,a)};$.B.C.monotype=function(a,b){return new Y(b,a)};$.B.C.typekit=function(a,b){return new X(b,a)};$.B.C.google=function(a,b){return new V(b,a)};this.WebFont||(this.WebFont={},this.WebFont.load=k($.load,$),this.WebFontConfig&&$.load(this.WebFontConfig));})(this,document);
+
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
index 29e0817f06c..62da47c185b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
index 1f1b277950e..86bc90ad3ac 100644
--- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objE.txt
new file mode 100644
index 00000000000..45e4e21f255
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objE.txt
@@ -0,0 +1,9 @@
+1) Data folder of polyhedra "polyhedrons_obj" is downloadable from the next website:
+ http://mitani.cs.tsukuba.ac.jp/polyhedron/
+
+2) Store the folder into someplace, for example, "ketcindy" in the user home.
+
+3) Open a cindy file and write scripts like the followings in the editor.
+ Setdirectory(Dirhead+"polyhedrons_obj"); // Dirhead is "ketcindy" in the user home.
+ poly=Readobj("r02.obj",["size=-3.5"]);
+ Setdirectory(Dirwork);
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objJ.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objJ.txt
new file mode 100644
index 00000000000..7ae77d1046f
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objJ.txt
@@ -0,0 +1,10 @@
+1)整é¢å‡¸å¤šé¢ä½“ã®ãƒ‡ãƒ¼ã‚¿ãƒ•ã‚©ãƒ«ãƒ€ã€Œpolyhedrons_objã€ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã§ãã¾ã™ï¼Ž
+ http://mitani.cs.tsukuba.ac.jp/polyhedron/
+
+2)ダウンロードã—ãŸãƒ•ã‚©ãƒ«ãƒ€ã‚’é©å½“ãªå ´æ‰€ï¼Œä¾‹ãˆã°ãƒ¦ãƒ¼ã‚¶ãƒ•ã‚©ãƒ¼ãƒ ã®ketcindyã«ä¿å­˜ã—ã¦ä¸‹ã•ã„.
+
+3)Cindyファイルを開ã,次ã®ã‚ˆã†ãªã‚¹ã‚¯ãƒªãƒ—トを書ã„ã¦èª­ã¿è¾¼ã‚“ã§ä¸‹ã•ã„.
+
+ Setdirectory(Dirhead+"polyhedrons_obj"); // Dirheadã¯ãƒ¦ãƒ¼ã‚¶ãƒ•ã‚©ãƒ¼ãƒ ã®ketcindy
+ poly=Readobj("r02.obj",["size=-3.5"]);
+ Setdirectory(Dirwork);
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command
index e69de29bb2d..e69de29bb2d 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf
deleted file mode 100644
index 6819c709fb6..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex
deleted file mode 100644
index 60e5abb1e34..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex
+++ /dev/null
@@ -1,161 +0,0 @@
-%%% title s0704thinE
-\documentclass[landscape,10pt]{article}
-\special{papersize=\the\paperwidth,\the\paperheight}
-\usepackage{ketpic,ketlayer}
-\usepackage{ketslide}
-\usepackage{amsmath,amssymb}
-\usepackage{bm,enumerate}
-\usepackage[dvipdfmx]{graphicx}
-\usepackage{xcolor}
-\definecolor{slidecolora}{cmyk}{0.98,0.13,0,0.43}
-\definecolor{slidecolorb}{cmyk}{0,0.32,0.52,0}
-\definecolor{slidecolorc}{cmyk}{0,0.32,0.52,0}
-\definecolor{slidecolord}{cmyk}{0,0.32,0.52,0}
-\definecolor{slidecolore}{cmyk}{0,0,0,0.5}
-\definecolor{slidecolorf}{cmyk}{0,0,0,0.5}
-\definecolor{slidecolori}{cmyk}{0.98,0.13,0,0.43}
-\def\setthin#1{\def\thin{#1}}
-\setthin{0.1}
-\newcommand{\slidepage}[1][s]{%
-\setcounter{ketpicctra}{18}%
-\if#1m \setcounter{ketpicctra}{1}\fi
-\hypersetup{linkcolor=black}%
-
-\begin{layer}{118}{0}
-\putnotee{122}{-\theketpicctra.05}{\small\thepage/\pageref{pageend}}
-\end{layer}\hypersetup{linkcolor=blue}
-
-}
-\usepackage[dvipdfmx,colorlinks=true,linkcolor=blue,filecolor=blue]{hyperref}
-%wallpaper/%%%%%%%%%%%%%%%%
-
-\setmargin{20}{135}{15}{100}
-
-\ketslideinit
-
-\pagestyle{empty}
-
-\begin{document}
-
-\begin{layer}{120}{0}
-\putnotese{0}{0}{\input{fig/slide0.tex}}
-\end{layer}
-
-\def\mainslidetitley{22}
-\def\ketcletter{slidecolora}
-\def\ketcbox{slidecolorb}
-\def\ketdbox{slidecolorc}
-\def\ketcframe{slidecolord}
-\def\ketcshadow{slidecolore}
-\def\ketdshadow{slidecolorf}
-\def\slidetitlex{6}
-\def\slidetitlesize{1.3}
-\def\mketcletter{slidecolori}
-\def\mketcbox{yellow}
-\def\mketdbox{yellow}
-\def\mketcframe{yellow}
-\def\mslidetitlex{62}
-\def\mslidetitlesize{2}
-
-\color{black}
-\Large\bf\boldmath
-\addtocounter{page}{-1}
-
-
-%%%%%%%%%%%%%%%%%%%%
-
-\mainslide{Main slide}
-
-
-\slidepage[m]
-%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%
-
-\newslide{How to use enumerate}
-
-\vspace*{18mm}
-
-\hypertarget{para1pg1}{}
-
-\begin{layer}{120}{0}
-\putnotew{96}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut||\!\lhd$}}}}}
-\putnotew{101}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut|\!\lhd$}}}}}
-\putnotew{108}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}
-\putnotew{115}{73}{\hyperlink{para1pg2}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\rhd\!$}}}}}
-\putnotew{120}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}
-\putnotew{125}{73}{\hyperlink{para2pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}
-\putnotee{126}{73}{\scriptsize\color{blue} 1/3}
-\end{layer}
-
-\slidepage
-\begin{enumerate}[(1)]
-{\color[cmyk]{\thin,\thin,\thin,\thin}%
-\item
-Add :\hspace{0mm}:[(1)] to change the style of item.
-}%
-{\color[cmyk]{\thin,\thin,\thin,\thin}%
-\item
-Give a list of page numbers to be displayed.\\
-}%
-{\color[cmyk]{\thin,\thin,\thin,\thin}%
-\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc
-}%
-\end{enumerate}
-
-\sameslide
-
-\vspace*{18mm}
-
-\hypertarget{para1pg2}{}
-
-\begin{layer}{120}{0}
-\putnotew{96}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut||\!\lhd$}}}}}
-\putnotew{101}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut|\!\lhd$}}}}}
-\putnotew{108}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}
-\putnotew{115}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\rhd\!$}}}}}
-\putnotew{120}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}
-\putnotew{125}{73}{\hyperlink{para2pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}
-\putnotee{126}{73}{\scriptsize\color{blue} 2/3}
-\end{layer}
-
-\slidepage
-\begin{enumerate}[(1)]
-\item
-Add :\hspace{0mm}:[(1)] to change the style of item.
-{\color[cmyk]{\thin,\thin,\thin,\thin}%
-\item
-Give a list of page numbers to be displayed.\\
-}%
-{\color[cmyk]{\thin,\thin,\thin,\thin}%
-\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc
-}%
-\end{enumerate}
-
-\sameslide
-
-\vspace*{18mm}
-
-\hypertarget{para1pg3}{}
-
-\begin{layer}{120}{0}
-\putnotew{96}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut||\!\lhd$}}}}}
-\putnotew{101}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut|\!\lhd$}}}}}
-\putnotew{108}{73}{\hyperlink{para1pg2}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}
-\putnotew{115}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\rhd\!$}}}}}
-\putnotew{120}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}
-\putnotew{125}{73}{\hyperlink{para2pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}
-\putnotee{126}{73}{\scriptsize\color{blue} 3/3}
-\end{layer}
-
-\slidepage
-\begin{enumerate}[(1)]
-\item
-Add :\hspace{0mm}:[(1)] to change the style of item.
-\item
-Give a list of page numbers to be displayed.\\
-\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc
-\end{enumerate}
-\label{pageend}\mbox{}
-
-\end{document}
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s08R/s0808ttest.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s08R/s0808ttest.cdy
index 84134979f43..26e2be1a1a7 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s08R/s0808ttest.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s08R/s0808ttest.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy
index 0269e38f2ca..50b9e7db67e 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0902cone.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0902cone.cdy
index a8a5dbf7287..d0c99a48ac5 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0902cone.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0902cone.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0903saddle.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0903saddle.cdy
index e853214b83a..450371c4313 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0903saddle.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0903saddle.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0904mant.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0904mant.cdy
index df3f4bd807c..74e8e3b4fac 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0904mant.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0904mant.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0905sphere.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0905sphere.cdy
index 5ddf8911585..ffc1dc7bdb8 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0905sphere.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0905sphere.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0906curveonsurf.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0906curveonsurf.cdy
index 07208b6631e..b2739985135 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0906curveonsurf.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0906curveonsurf.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0907intersectcrvsf.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0907intersectcrvsf.cdy
index fd5b870bc37..60409f62718 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0907intersectcrvsf.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0907intersectcrvsf.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0908wiredata.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0908wiredata.cdy
index 4e79ddb1cb7..c552353d28b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0908wiredata.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0908wiredata.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0909conecut.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0909conecut.cdy
index 9a90afc9f7a..2bc9ed6dd2b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0909conecut.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0909conecut.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0910multisurfaces.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0910multisurfaces.cdy
index 31636c0149a..e406ef3d8eb 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0910multisurfaces.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0910multisurfaces.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0911saddleskeleton.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0911saddleskeleton.cdy
index 75b1f7366bb..cd325d05444 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0911saddleskeleton.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0911saddleskeleton.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0912animesaddle.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0912animesaddle.cdy
index 10488d67eb0..758c80fad3a 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0912animesaddle.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0912animesaddle.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0913animeparaboloid.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0913animeparaboloid.cdy
index 2a49c17e67e..bc830c45005 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0913animeparaboloid.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0913animeparaboloid.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0914animemobius.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0914animemobius.cdy
index a2423c5473a..df33c04a525 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0914animemobius.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0914animemobius.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0915discont.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0915discont.cdy
index f569f340ad9..44081acb767 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0915discont.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0915discont.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy
index 04f5af090ea..c4c554d1067 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy
index 5f706e9b863..46537f48c73 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy
index 7aced3612cc..302dd7735d3 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.html b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.html
deleted file mode 100644
index fcea620c29e..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
-
- <title>s1602diffeq2.cdy</title>
- <style type="text/css">
- * {
- margin: 0px;
- padding: 0px;
- }
-
- #CSConsole {
- background-color: #FAFAFA;
- border-top: 1px solid #333333;
- bottom: 0px;
- height: 200px;
- overflow-y: scroll;
- position: fixed;
- width: 100%;
- }
- </style>
- <link rel="stylesheet" href="https://cindyjs.org/dist/v0.8/CindyJS.css">
- <script type="text/javascript" src="https://cindyjs.org/dist/v0.8/Cindy.js"></script>
- <script type="text/javascript" src="https://cindyjs.org/dist/v0.8/KetCindyPlugin.js"></script>
-<script id="csinit" type="text/x-cindyscript">
-use("KetCindyPlugin");
-Dircdy=loaddirectory;
-setdirectory(plugindirectory);
-import("dirhead.txt");
-;
-</script>
-<script id="cskeytyped" type="text/x-cindyscript">
-if(key()=="?" % keydownlist()==[32],
- if(!isreal(NumTyped),NumTyped=0);
- if(NumTyped==0,
- DispStr=
- "Figure(1) Parent(2) Parapara(3) Movie(4) Surf(5)";
- );
- if(NumTyped==1,
- DispStr=
- "Shift+ Title(T) Para(P) Slide(S) Digest(D)";
- );
- if(NumTyped==2,
- DispStr="Shift+ Meshlab(M)";
- );
- if(NumTyped==3,
- DispStr=
- "Ch : disp(0) chg(9) N(+,-) add(<) rmv(>)";
- );
- drawtext(mouse().xy,DispStr,size->24);
- NumTyped=mod(NumTyped+1,4);
-,
- NumTyped=0;
-);
-if(key()=="1",//Mkfigure
- Viewtex();
- kc();
-);
-if(key()=="2",//Mkparent
- Viewparent();
-);
-if(key()=="3",//Flipbook(Parapara)
- Flipbook();
-);
-if(key()=="4",//Texmovie
- Texmovie();
- kc();
-);
-if(key()=="5",//Surface
- Cheader();
- Cmain();
- kcC();
- if(ChNum>0,
- Ch=[ChNum];
- ,
- Ch=[1];
- );
- ChNum=0;
-);
-if(key()=="T",//Title
- Maketitle();
-);
-if(key()=="P",//ParaF
- Parafolder();
-);
-if(key()=="S",//Slide
- Mkslides();
-);
-if(key()=="D",//Digest(Summary)
- Mkslidesummary();
-);
-if(key()=="M",//Meshlab
- Mkviewobj(OCNAME,OBJCMD,OCOPTION);
-);
-
-if(key()=="0",
- Dispchoice();
-);
-if(key()=="9",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=append(Ch,ChNum);
- ChNum=Ch_(length(Ch)-1);
- Ch=remove(Ch,[ChNum]);
- Ch=sort(Ch);
- );
- );
- Dispchoice();
-);
-if(key()=="+",
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="-",
- ChNum=ChNum-1;
- Dispchoice();
-);
-if(key()=="<",
- if(length(select(Ch,#==ChNum))==0,
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- ChNum=ChNum+1;
- );
- Dispchoice();
-);
-if(key()=="^",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="~",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=max(ChNum-1,1);
- Dispchoice();
-);
-if(key()==">",
- if(length(Ch)>0,
- ChNum=Ch_(length(Ch));
- Ch=Remove(Ch,[ChNum]);
- );
- Dispchoice();
-);
-;
-</script>
-<script id="csdraw" type="text/x-cindyscript">
-Ketinit();
-
-//Deqplot("1","y`=y","x",0,1);
-Deqplot("2","y``=-L.x*y`-G.x*y","t=[0,XMAX]",0,[C.y,0],["Num=200"]);
-//Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,A,["Num=200"]);
-
-Expr([M,"e","\displaystyle\frac{d^2 x}{dt^2}+"+L.x+"\frac{dx}{dt}+"+G.x+"x=0"]);
-
-Windispg();
-
-//Help("De");
-
-;
-</script>
- <script type="text/javascript">
-var cdy = CindyJS({
- scripts: "cs*",
- defaultAppearance: {
- dimDependent: 0.7,
- fontFamily: "sans-serif",
- lineSize: 1,
- pointSize: 5.0,
- textsize: 12.0
- },
- angleUnit: "°",
- geometry: [
- {name: "SW", type: "Free", pos: [-2.5744680851063833, -4.0, 0.8525536333742482], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "NE", type: "Free", pos: [4.0, 2.4285714285714284, 0.44032989855593035], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "A", type: "Free", pos: [0.0, -4.0, -0.8], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "B", type: "Free", pos: [-0.02366863905325444, -4.0, 0.9484028584281579], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "a", type: "Segment", color: [0.0, 0.0, 1.0], args: ["A", "B"], labeled: true},
- {name: "C", type: "PointOnSegment", pos: [0.011092747971205843, -4.0, -1.619421523013707], color: [1.0, 0.0, 0.0], args: ["a"], labeled: true},
- {name: "E", type: "Free", pos: [0.0, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "F", type: "Free", pos: [4.0, -2.1818181818181817, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "b", type: "Segment", color: [0.0, 0.0, 1.0], args: ["E", "F"], labeled: true},
- {name: "G", type: "PointOnSegment", pos: [3.5770716007636896, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], args: ["b"], labeled: true},
- {name: "H", type: "Free", pos: [0.0, -4.0, 0.5714285714285714], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "K", type: "Free", pos: [4.0, -2.5454545454545454, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "c", type: "Segment", color: [0.0, 0.0, 1.0], args: ["H", "K"], labeled: true},
- {name: "L", type: "PointOnSegment", pos: [0.5714285657142855, -4.0, 0.5714285714285713], color: [1.0, 0.0, 0.0], args: ["c"], labeled: true},
- {name: "M", type: "Free", pos: [-2.0, -4.0, -1.0], color: [1.0, 0.0, 0.0], size: 2.0},
- {name: "Text0", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [0.0, 1.0, 1.0], fillalpha: 0.27272728085517883, script: "Mkketcindyjs();", text: "KeTJS", textsize: 18.0, dock: {corner: "UL", offset: [143.0, -20.0]}},
- {name: "Text33", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 0.29, 0.29], fillalpha: 0.27272728085517883, script: "Viewtex();\nkc();", text: "Figure", textsize: 18.0, dock: {corner: "UL", offset: [10.0, -20.0]}},
- {name: "Text134", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 1.0, 0.0], fillalpha: 0.27272728085517883, script: "if(length(Shellparent)>0,\n Makeshell(),Makebat();\n);\nWritetoSci(2);\nkc();", text: "Parent", textsize: 18.0, dock: {corner: "UL", offset: [77.0, -20.0]}},
- {name: "Text05''", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [0.0, 1.0, 1.0], fillalpha: 0.27272728085517883, script: "Mkketcindyjs([\"Net=n\",\"TeX=n\"]);\n", text: "KeTJSoff", textsize: 18.0, dock: {corner: "UL", offset: [202.0, -20.0]}}
- ],
- ports: [{
- id: "CSCanvas",
- width: 1024,
- height: 545,
- transform: [{visibleRect: [-9.745440419289913, 6.700770173058494, 15.809824598259054, -6.900420681008095]}],
- axes: true,
- grid: 1.0,
- snap: true,
- background: "rgb(168,176,192)"
- }],
- csconsole: false,
- cinderella: {build: 1901, version: [2, 9, 1901]}
-});
- </script>
-</head>
-<body>
- <div id="CSCanvas"></div>
-</body>
-</html> \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html
deleted file mode 100644
index d60f372b9c9..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html
+++ /dev/null
@@ -1,6639 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
-
- <title>s1602diffeq2.cdy</title>
- <style type="text/css">
- * {
- margin: 0px;
- padding: 0px;
- }
-
- #CSConsole {
- background-color: #FAFAFA;
- border-top: 1px solid #333333;
- bottom: 0px;
- height: 200px;
- overflow-y: scroll;
- position: fixed;
- width: 100%;
- }
- </style>
- <link rel="stylesheet" href="file:////Applications/KeTTeX.app/texlive/texmf-dist/scripts/ketcindy/ketcindyjs/CindyJS.css">
- <script type="text/javascript" src="file:////Applications/KeTTeX.app/texlive/texmf-dist/scripts/ketcindy/ketcindyjs/Cindy.js"></script>
- <script type="text/javascript" src="https://cindyjs.org/dist/v0.8/KetCindyPlugin.js"></script>
-<script id="csdraw" type="text/x-cindyscript">
-Ketinit();
-
-//Deqplot("1","y`=y","x",0,1);
-Deqplot("2","y``=-L.x*y`-G.x*y","t=[0,XMAX]",0,[C.y,0],["Num=200"]);
-//Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,A,["Num=200"]);
-
-Expr([M,"e","\displaystyle\frac{d^2 x}{dt^2}+"+L.x+"\frac{dx}{dt}+"+G.x+"x=0"]);
-
-Windispg();
-
-//Help("De");
-
-;
-</script>
-<script id="cskeytyped" type="text/x-cindyscript">
-if(key()=="?" % keydownlist()==[32],
- if(!isreal(NumTyped),NumTyped=0);
- if(NumTyped==0,
- DispStr=
- "Figure(1) Parent(2) Parapara(3) Movie(4) Surf(5)";
- );
- if(NumTyped==1,
- DispStr=
- "Shift+ Title(T) Para(P) Slide(S) Digest(D)";
- );
- if(NumTyped==2,
- DispStr="Shift+ Meshlab(M)";
- );
- if(NumTyped==3,
- DispStr=
- "Ch : disp(0) chg(9) N(+,-) add(<) rmv(>)";
- );
- drawtext(mouse().xy,DispStr,size->24);
- NumTyped=mod(NumTyped+1,4);
-,
- NumTyped=0;
-);
-if(key()=="1",//Mkfigure
- Viewtex();
- kc();
-);
-if(key()=="2",//Mkparent
- Viewparent();
-);
-if(key()=="3",//Flipbook(Parapara)
- Flipbook();
-);
-if(key()=="4",//Texmovie
- Texmovie();
- kc();
-);
-if(key()=="5",//Surface
- Cheader();
- Cmain();
- kcC();
- if(ChNum>0,
- Ch=[ChNum];
- ,
- Ch=[1];
- );
- ChNum=0;
-);
-if(key()=="T",//Title
- Maketitle();
-);
-if(key()=="P",//ParaF
- Parafolder();
-);
-if(key()=="S",//Slide
- Mkslides();
-);
-if(key()=="D",//Digest(Summary)
- Mkslidesummary();
-);
-if(key()=="M",//Meshlab
- Mkviewobj(OCNAME,OBJCMD,OCOPTION);
-);
-
-if(key()=="0",
- Dispchoice();
-);
-if(key()=="9",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=append(Ch,ChNum);
- ChNum=Ch_(length(Ch)-1);
- Ch=remove(Ch,[ChNum]);
- Ch=sort(Ch);
- );
- );
- Dispchoice();
-);
-if(key()=="+",
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="-",
- ChNum=ChNum-1;
- Dispchoice();
-);
-if(key()=="<",
- if(length(select(Ch,#==ChNum))==0,
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- ChNum=ChNum+1;
- );
- Dispchoice();
-);
-if(key()=="^",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="~",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=max(ChNum-1,1);
- Dispchoice();
-);
-if(key()==">",
- if(length(Ch)>0,
- ChNum=Ch_(length(Ch));
- Ch=Remove(Ch,[ChNum]);
- );
- Dispchoice();
-);
-;
-</script>
-<script id="csinit" type="text/x-cindyscript">
-// 17.08.26 Slider
-// 16.11.27
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),|Out_#_1-Tmp2_1|<Dif);//16.11.27
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3,//16.11.27
- Out_#=(Out_#+Tmp2)/2;
- );
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_1),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-
-Colorcode(src,dest,sL):=(
-//help:Colorcode("rgb","cmyk",[1,0.5,0]);
- regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
- regional(dl1,dl2,dl3);
- if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
- if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
- if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
- if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
- dL;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..length(head));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..length(body),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01upto
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31upto(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01upto
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
-// tmp=name+"=Enclosing(";//16.10.20from
-// tmp1="list(";
-// forall(plist,
-// tmp1=tmp1+#+",";
-// );
-// tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- tmp=apply(AnsL,LLcrd(#));
- tmp=name+"=Listplot("+textformat(tmp,5)+")";//16.10.20upto
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19upto
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Slider(ptstr,p1,p2):=( //17.04.11
-//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
- pA=substring(ptstr,0,tmp_1-1);
- pC=substring(ptstr,tmp_1,tmp_2-1);
- pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
-// create([sname],"Segment",[parse(pA),parse(pB)]);
-// tmp2=Listplot("",[p1,p2],["nodata"]);
- Putonseg(pC,parse("sg"+pA+pB));
-// create([pC],"PointOn",[parse(sname),0.5]);
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
-</script>
- <script type="text/javascript">
-var cdy = CindyJS({
- scripts: "cs*",
- defaultAppearance: {
- dimDependent: 0.7,
- fontFamily: "sans-serif",
- lineSize: 1,
- pointSize: 5.0,
- textsize: 12.0
- },
- angleUnit: "°",
- geometry: [
- {name: "SW", type: "Free", pos: [-2.5744680851063833, -4.0, 0.8525536333742482], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "NE", type: "Free", pos: [4.0, 2.4285714285714284, 0.44032989855593035], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "A", type: "Free", pos: [0.0, -4.0, -0.8], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "B", type: "Free", pos: [-0.02366863905325444, -4.0, 0.9484028584281579], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "a", type: "Segment", color: [0.0, 0.0, 1.0], args: ["A", "B"], labeled: true},
- {name: "C", type: "PointOnSegment", pos: [0.011092747971205843, -4.0, -1.619421523013707], color: [1.0, 0.0, 0.0], args: ["a"], labeled: true},
- {name: "E", type: "Free", pos: [0.0, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "F", type: "Free", pos: [4.0, -2.1818181818181817, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "b", type: "Segment", color: [0.0, 0.0, 1.0], args: ["E", "F"], labeled: true},
- {name: "G", type: "PointOnSegment", pos: [3.5770716007636896, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], args: ["b"], labeled: true},
- {name: "H", type: "Free", pos: [0.0, -4.0, 0.5714285714285714], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "K", type: "Free", pos: [4.0, -2.5454545454545454, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "c", type: "Segment", color: [0.0, 0.0, 1.0], args: ["H", "K"], labeled: true},
- {name: "L", type: "PointOnSegment", pos: [0.5714285657142855, -4.0, 0.5714285714285713], color: [1.0, 0.0, 0.0], args: ["c"], labeled: true},
- {name: "M", type: "Free", pos: [-2.0, -4.0, -1.0], color: [1.0, 0.0, 0.0], size: 2.0},
- ],
- ports: [{
- id: "CSCanvas",
- width: 1024,
- height: 545,
- transform: [{visibleRect: [-9.745440419289913, 6.700770173058494, 15.809824598259054, -6.900420681008095]}],
- axes: true,
- grid: 1.0,
- snap: true,
- background: "rgb(168,176,192)"
- }],
- csconsole: false,
- cinderella: {build: 1901, version: [2, 9, 1901]}
-});
- </script>
-</head>
-<body>
- <div id="CSCanvas"></div>
-</body>
-</html>
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html
deleted file mode 100644
index cf5b564e040..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html
+++ /dev/null
@@ -1,6640 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
-
- <title>s1602diffeq2.cdy</title>
- <style type="text/css">
- * {
- margin: 0px;
- padding: 0px;
- }
-
- #CSConsole {
- background-color: #FAFAFA;
- border-top: 1px solid #333333;
- bottom: 0px;
- height: 200px;
- overflow-y: scroll;
- position: fixed;
- width: 100%;
- }
- </style>
- <link rel="stylesheet" href="https://cindyjs.org/dist/v0.8/CindyJS.css">
- <script type="text/javascript" src="https://cindyjs.org/dist/v0.8/Cindy.js"></script>
- <script type="text/javascript" src="https://cindyjs.org/dist/v0.8/KetCindyPlugin.js"></script>
-<script id="csdraw" type="text/x-cindyscript">
-Ketinit();
-
-//Deqplot("1","y`=y","x",0,1);
-Deqplot("2","y``=-L.x*y`-G.x*y","t=[0,XMAX]",0,[C.y,0],["Num=200"]);
-//Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,A,["Num=200"]);
-
-Expr([M,"e","\displaystyle\frac{d^2 x}{dt^2}+"+L.x+"\frac{dx}{dt}+"+G.x+"x=0"]);
-
-Windispg();
-
-//Help("De");
-
-;
-</script>
-<script id="cskeytyped" type="text/x-cindyscript">
-if(key()=="?" % keydownlist()==[32],
- if(!isreal(NumTyped),NumTyped=0);
- if(NumTyped==0,
- DispStr=
- "Figure(1) Parent(2) Parapara(3) Movie(4) Surf(5)";
- );
- if(NumTyped==1,
- DispStr=
- "Shift+ Title(T) Para(P) Slide(S) Digest(D)";
- );
- if(NumTyped==2,
- DispStr="Shift+ Meshlab(M)";
- );
- if(NumTyped==3,
- DispStr=
- "Ch : disp(0) chg(9) N(+,-) add(<) rmv(>)";
- );
- drawtext(mouse().xy,DispStr,size->24);
- NumTyped=mod(NumTyped+1,4);
-,
- NumTyped=0;
-);
-if(key()=="1",//Mkfigure
- Viewtex();
- kc();
-);
-if(key()=="2",//Mkparent
- Viewparent();
-);
-if(key()=="3",//Flipbook(Parapara)
- Flipbook();
-);
-if(key()=="4",//Texmovie
- Texmovie();
- kc();
-);
-if(key()=="5",//Surface
- Cheader();
- Cmain();
- kcC();
- if(ChNum>0,
- Ch=[ChNum];
- ,
- Ch=[1];
- );
- ChNum=0;
-);
-if(key()=="T",//Title
- Maketitle();
-);
-if(key()=="P",//ParaF
- Parafolder();
-);
-if(key()=="S",//Slide
- Mkslides();
-);
-if(key()=="D",//Digest(Summary)
- Mkslidesummary();
-);
-if(key()=="M",//Meshlab
- Mkviewobj(OCNAME,OBJCMD,OCOPTION);
-);
-
-if(key()=="0",
- Dispchoice();
-);
-if(key()=="9",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=append(Ch,ChNum);
- ChNum=Ch_(length(Ch)-1);
- Ch=remove(Ch,[ChNum]);
- Ch=sort(Ch);
- );
- );
- Dispchoice();
-);
-if(key()=="+",
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="-",
- ChNum=ChNum-1;
- Dispchoice();
-);
-if(key()=="<",
- if(length(select(Ch,#==ChNum))==0,
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- ChNum=ChNum+1;
- );
- Dispchoice();
-);
-if(key()=="^",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="~",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=max(ChNum-1,1);
- Dispchoice();
-);
-if(key()==">",
- if(length(Ch)>0,
- ChNum=Ch_(length(Ch));
- Ch=Remove(Ch,[ChNum]);
- );
- Dispchoice();
-);
-;
-</script>
-<script id="csinit" type="text/x-cindyscript">
-// 17.08.26 Slider
-// 16.11.27
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),|Out_#_1-Tmp2_1|<Dif);//16.11.27
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3,//16.11.27
- Out_#=(Out_#+Tmp2)/2;
- );
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_1),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-
-Colorcode(src,dest,sL):=(
-//help:Colorcode("rgb","cmyk",[1,0.5,0]);
- regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
- regional(dl1,dl2,dl3);
- if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
- if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
- if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
- if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
- dL;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..length(head));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..length(body),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01upto
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31upto(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01upto
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
-// tmp=name+"=Enclosing(";//16.10.20from
-// tmp1="list(";
-// forall(plist,
-// tmp1=tmp1+#+",";
-// );
-// tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- tmp=apply(AnsL,LLcrd(#));
- tmp=name+"=Listplot("+textformat(tmp,5)+")";//16.10.20upto
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19upto
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Slider(ptstr,p1,p2):=( //17.04.11
-//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
- pA=substring(ptstr,0,tmp_1-1);
- pC=substring(ptstr,tmp_1,tmp_2-1);
- pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
-// create([sname],"Segment",[parse(pA),parse(pB)]);
-// tmp2=Listplot("",[p1,p2],["nodata"]);
- Putonseg(pC,parse("sg"+pA+pB));
-// create([pC],"PointOn",[parse(sname),0.5]);
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
-</script>
- <script type="text/javascript">
-var cdy = CindyJS({
- scripts: "cs*",
- use: ["katex"],
- defaultAppearance: {
- dimDependent: 0.7,
- fontFamily: "sans-serif",
- lineSize: 1,
- pointSize: 5.0,
- textsize: 12.0
- },
- angleUnit: "°",
- geometry: [
- {name: "SW", type: "Free", pos: [-2.5744680851063833, -4.0, 0.8525536333742482], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "NE", type: "Free", pos: [4.0, 2.4285714285714284, 0.44032989855593035], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "A", type: "Free", pos: [0.0, -4.0, -0.8], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "B", type: "Free", pos: [-0.02366863905325444, -4.0, 0.9484028584281579], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "a", type: "Segment", color: [0.0, 0.0, 1.0], args: ["A", "B"], labeled: true},
- {name: "C", type: "PointOnSegment", pos: [0.011092747971205843, -4.0, -1.619421523013707], color: [1.0, 0.0, 0.0], args: ["a"], labeled: true},
- {name: "E", type: "Free", pos: [0.0, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "F", type: "Free", pos: [4.0, -2.1818181818181817, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "b", type: "Segment", color: [0.0, 0.0, 1.0], args: ["E", "F"], labeled: true},
- {name: "G", type: "PointOnSegment", pos: [3.5770716007636896, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], args: ["b"], labeled: true},
- {name: "H", type: "Free", pos: [0.0, -4.0, 0.5714285714285714], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "K", type: "Free", pos: [4.0, -2.5454545454545454, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "c", type: "Segment", color: [0.0, 0.0, 1.0], args: ["H", "K"], labeled: true},
- {name: "L", type: "PointOnSegment", pos: [0.5714285657142855, -4.0, 0.5714285714285713], color: [1.0, 0.0, 0.0], args: ["c"], labeled: true},
- {name: "M", type: "Free", pos: [-2.0, -4.0, -1.0], color: [1.0, 0.0, 0.0], size: 2.0},
- ],
- ports: [{
- id: "CSCanvas",
- width: 1024,
- height: 545,
- transform: [{visibleRect: [-9.745440419289913, 6.700770173058494, 15.809824598259054, -6.900420681008095]}],
- axes: true,
- grid: 1.0,
- snap: true,
- background: "rgb(168,176,192)"
- }],
- csconsole: false,
- cinderella: {build: 1901, version: [2, 9, 1901]}
-});
- </script>
-</head>
-<body>
- <div id="CSCanvas"></div>
-</body>
-</html>
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy
index 2c300fa3051..2915180a450 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt
new file mode 100644
index 00000000000..22ef302445e
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt
@@ -0,0 +1,6 @@
+How to use Spacekc 20190101 Akira Iritani
+
+Spacekc is a plugin to KeTCindy for 3D rendering/drawing.
+
+See the following website for examples :
+ https://sites.google.com/site/ketcindy/home/cindy3d2
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt
new file mode 100644
index 00000000000..3185f6e1f9a
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt
@@ -0,0 +1,6 @@
+Spacekcã®ä½¿ã„方    20190101 入谷昭
+
+Spacekc ã¯ã€KeTCindyã®3Dモードをベースã«ï¼Œé¢ã®è‰²å¡—ã‚Šãªã©ï¼ŒKeTCindyã«ã¯ãªã„コマンドを追加ã—ãŸã‚‚ã®ã§ã™ã€‚
+
+作æˆä¾‹ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã‚’見ã¦ä¸‹ã•ã„。
+ https://sites.google.com/site/ketcindy/home/cindy3d2
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
index 51e78c8040b..4854986e5cc 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf
new file mode 100644
index 00000000000..7631f266404
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf
new file mode 100644
index 00000000000..9fd170aaea8
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex
index 85a7d653ab2..9b74fd050df 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex
@@ -57,15 +57,13 @@ installing of KeTCindy
\item Install KeTCdindy
\begin{enumerate}[(1)]
\item Download ketcindy from CTAN(\url{https://ctan.org}).\\
- \hspace*{10mm}Search ketcindy > Pack­age ketcindy > download
+ \hspace*{10mm}Search ketcindy $>$ Pack­age ketcindy $>$ download
\begin{itemize}
- \item[Rem)]The latest version can be download from Repository:\\
- \hspace*{5mm}\url{https://github.com/ket­pic/ketcindy}\\
- \hspace*{10mm}Clone or download > Download ZIP
- \item[Rem)]Download ketcindy-master as follows\\
- \hspace*{10mm}Clone or download > Download ZIP
+ \item[Rem)]The latest version can be downloaded from Repository:\\
+ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\
+ \hspace*{10mm}Clone or download $>$ Download ZIP
\end{itemize}
- \item Install KeTCindy according to Readme in forMac/forWindow/forLinux.
+ \item Install KeTCindy according to Readme in forMac/forWindows/forLinux.
\end{enumerate}
\end{enumerate}
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex
index b077cd507cb..040eda3d567 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex
@@ -53,15 +53,15 @@ KETCindyã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«
\item KeTCindyã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«
\begin{enumerate}[(1)]
\item ketcindyã‚’CTAN(\url{https://ctan.org})ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã™ã‚‹ï¼Ž\\
- \hspace*{10mm}ketcindyã§æ¤œç´¢ > Pack­age ketcindy > download
+ \hspace*{10mm}ketcindyã§æ¤œç´¢ $>$ Package ketcindy $>$ download
\begin{itemize}
\item[注)]最新版ã¯ï¼ŒRepositoryã®ã‚µã‚¤ãƒˆ\\
- \hspace*{10mm}\url{https://github.com/ket­pic/ketcindy}\\
+ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\
ã‹ã‚‰ä»¥ä¸‹ã®ã‚ˆã†ã«ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã§ãる.\\
- \hspace*{10mm}Clone or download > Download ZIP
+ \hspace*{10mm}Clone or download $>$ Download ZIP
\item[注)]ã“ã®å ´åˆã¯ï¼Œketcindy-masterã«ãªã‚‹ï¼Ž
\end{itemize}
- \item forMac/forWindow/forLinuxã«ã‚ã‚‹Readmeã«å¾“ã£ã¦ï¼Œã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ï¼Ž
+ \item forMac/forWindows/forLinuxã«ã‚ã‚‹Readmeã«å¾“ã£ã¦ï¼Œã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ï¼Ž
\end{enumerate}
\end{enumerate}
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf
index 2e5d37e25d8..875cfc72245 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex
new file mode 100644
index 00000000000..83d47a9539e
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex
@@ -0,0 +1,71 @@
+%%% /Users/hannya/Desktop/fig/frustume.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(4.67,3.66)(-2.24,-1.05)%
+\special{pn 8}%
+%
+\special{pa 548 -13}\special{pa 544 -20}%
+\special{fp}%
+\special{pa 544 -20}\special{pa 542 -24}\special{pa 542 -24}%
+\special{fp}%
+\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}\special{pa 526 -56}%
+\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}\special{pa 504 -98}%
+\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}\special{pa 482 -141}%
+\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}\special{pa 460 -183}%
+\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}\special{pa 438 -226}%
+\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}\special{pa 416 -268}%
+\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}\special{pa 394 -311}%
+\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}\special{pa 373 -353}%
+\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}\special{pa 351 -396}%
+\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}\special{pa 329 -438}%
+\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}\special{pa 307 -481}%
+\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}\special{pa 285 -524}%
+\special{pa 279 -534}\special{pa 274 -545}%
+\special{fp}%
+\special{pa -548 -13}\special{pa -542 -24}\special{pa -542 -24}%
+\special{fp}%
+\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}\special{pa -526 -56}%
+\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}\special{pa -504 -98}%
+\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}\special{pa -482 -141}%
+\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}\special{pa -460 -183}%
+\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}\special{pa -438 -226}%
+\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}\special{pa -416 -268}%
+\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}\special{pa -394 -311}%
+\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}\special{pa -373 -353}%
+\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}\special{pa -351 -396}%
+\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}\special{pa -329 -438}%
+\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}\special{pa -307 -481}%
+\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}\special{pa -285 -524}%
+\special{pa -279 -534}\special{pa -274 -545}%
+\special{fp}%
+\special{pa -432 74}\special{pa -386 85}\special{pa -333 94}\special{pa -275 103}%
+\special{pa -213 109}\special{pa -148 114}\special{pa -80 117}\special{pa -11 118}%
+\special{pa 58 118}\special{pa 126 115}\special{pa 192 111}\special{pa 256 105}%
+\special{pa 315 97}\special{pa 369 88}\special{pa 417 77}\special{pa 459 65}%
+\special{pa 494 53}\special{pa 521 39}\special{pa 539 25}\special{pa 549 10}%
+\special{pa 551 -5}\special{pa 547 -13}%
+\special{fp}%
+\special{pa 547 -13}\special{pa 543 -20}\special{pa 541 -22}%
+\special{fp}%
+\special{pa -547 -13}\special{pa -549 -10}\special{pa -551 5}\special{pa -543 20}%
+\special{pa -528 34}\special{pa -503 48}\special{pa -471 61}\special{pa -432 74}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 544 -20}\special{pa 537 -25}\special{fp}\special{pa 513 -43}\special{pa 506 -47}\special{fp}%
+\special{pa 478 -59}\special{pa 470 -62}\special{fp}\special{pa 441 -71}\special{pa 433 -73}\special{fp}%
+\special{pa 403 -80}\special{pa 395 -82}\special{fp}\special{pa 365 -88}\special{pa 357 -90}\special{fp}%
+\special{pa 327 -95}\special{pa 319 -96}\special{fp}\special{pa 289 -101}\special{pa 281 -102}\special{fp}%
+\special{pa 250 -105}\special{pa 242 -106}\special{fp}\special{pa 211 -109}\special{pa 203 -110}\special{fp}%
+\special{pa 173 -112}\special{pa 165 -113}\special{fp}\special{pa 134 -115}\special{pa 126 -115}\special{fp}%
+\special{pa 95 -116}\special{pa 87 -117}\special{fp}\special{pa 56 -118}\special{pa 48 -118}\special{fp}%
+\special{pa 18 -118}\special{pa 10 -118}\special{fp}\special{pa -21 -118}\special{pa -29 -118}\special{fp}%
+\special{pa -60 -118}\special{pa -68 -117}\special{fp}\special{pa -99 -116}\special{pa -107 -116}\special{fp}%
+\special{pa -137 -114}\special{pa -145 -114}\special{fp}\special{pa -176 -112}\special{pa -184 -111}\special{fp}%
+\special{pa -215 -109}\special{pa -223 -108}\special{fp}\special{pa -254 -105}\special{pa -261 -104}\special{fp}%
+\special{pa -292 -100}\special{pa -300 -99}\special{fp}\special{pa -330 -94}\special{pa -338 -93}\special{fp}%
+\special{pa -369 -88}\special{pa -376 -86}\special{fp}\special{pa -407 -80}\special{pa -414 -78}\special{fp}%
+\special{pa -444 -70}\special{pa -452 -67}\special{fp}\special{pa -481 -58}\special{pa -488 -55}\special{fp}%
+\special{pa -516 -42}\special{pa -523 -37}\special{fp}\special{pa -544 -16}\special{pa -550 -10}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex
new file mode 100644
index 00000000000..d4fc2f96b1b
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex
@@ -0,0 +1,89 @@
+%%% /Users/hannya/Desktop/fig/frustumew.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(4.67,3.66)(-2.24,-1.05)%
+\special{pn 8}%
+%
+\special{pa 548 -13}\special{pa 544 -20}%
+\special{fp}%
+\special{pa 544 -20}\special{pa 542 -24}\special{pa 542 -24}%
+\special{fp}%
+\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}\special{pa 526 -56}%
+\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}\special{pa 504 -98}%
+\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}\special{pa 482 -141}%
+\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}\special{pa 460 -183}%
+\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}\special{pa 438 -226}%
+\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}\special{pa 416 -268}%
+\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}\special{pa 394 -311}%
+\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}\special{pa 373 -353}%
+\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}\special{pa 351 -396}%
+\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}\special{pa 329 -438}%
+\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}\special{pa 307 -481}%
+\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}\special{pa 285 -524}%
+\special{pa 279 -534}\special{pa 274 -545}%
+\special{fp}%
+\special{pa -548 -13}\special{pa -542 -24}\special{pa -542 -24}%
+\special{fp}%
+\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}\special{pa -526 -56}%
+\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}\special{pa -504 -98}%
+\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}\special{pa -482 -141}%
+\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}\special{pa -460 -183}%
+\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}\special{pa -438 -226}%
+\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}\special{pa -416 -268}%
+\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}\special{pa -394 -311}%
+\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}\special{pa -373 -353}%
+\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}\special{pa -351 -396}%
+\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}\special{pa -329 -438}%
+\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}\special{pa -307 -481}%
+\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}\special{pa -285 -524}%
+\special{pa -279 -534}\special{pa -274 -545}%
+\special{fp}%
+\special{pa -432 74}\special{pa -386 85}\special{pa -333 94}\special{pa -275 103}%
+\special{pa -213 109}\special{pa -148 114}\special{pa -80 117}\special{pa -11 118}%
+\special{pa 58 118}\special{pa 126 115}\special{pa 192 111}\special{pa 256 105}%
+\special{pa 315 97}\special{pa 369 88}\special{pa 417 77}\special{pa 459 65}%
+\special{pa 494 53}\special{pa 521 39}\special{pa 539 25}\special{pa 549 10}%
+\special{pa 551 -5}\special{pa 547 -13}%
+\special{fp}%
+\special{pa 547 -13}\special{pa 543 -20}\special{pa 541 -22}%
+\special{fp}%
+\special{pa -547 -13}\special{pa -549 -10}\special{pa -551 5}\special{pa -543 20}%
+\special{pa -528 34}\special{pa -503 48}\special{pa -471 61}\special{pa -432 74}%
+\special{fp}%
+\special{pa -216 -502}\special{pa -193 -496}\special{pa -167 -491}\special{pa -138 -487}%
+\special{pa -107 -484}\special{pa -74 -481}\special{pa -40 -480}\special{pa -6 -479}%
+\special{pa 29 -479}\special{pa 63 -481}\special{pa 96 -483}\special{pa 128 -486}%
+\special{pa 157 -490}\special{pa 184 -494}\special{pa 209 -500}\special{pa 230 -506}%
+\special{pa 247 -512}\special{pa 260 -519}\special{pa 270 -526}\special{pa 275 -533}%
+\special{pa 275 -541}\special{pa 274 -544}%
+\special{fp}%
+\special{pa 274 -544}\special{pa 272 -548}\special{pa 264 -555}\special{pa 252 -562}%
+\special{pa 236 -569}\special{pa 216 -575}\special{pa 193 -581}\special{pa 167 -585}%
+\special{pa 138 -590}\special{pa 107 -593}\special{pa 74 -595}\special{pa 40 -597}%
+\special{pa 6 -597}\special{pa -29 -597}\special{pa -63 -596}\special{pa -96 -594}%
+\special{pa -128 -591}\special{pa -157 -587}\special{pa -184 -582}\special{pa -209 -577}%
+\special{pa -230 -571}\special{pa -247 -565}\special{pa -260 -558}\special{pa -270 -551}%
+\special{pa -274 -545}%
+\special{fp}%
+\special{pa -274 -545}\special{pa -275 -543}\special{pa -275 -536}\special{pa -272 -528}%
+\special{pa -264 -521}\special{pa -252 -514}\special{pa -236 -508}\special{pa -216 -502}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 544 -20}\special{pa 537 -25}\special{fp}\special{pa 513 -43}\special{pa 506 -47}\special{fp}%
+\special{pa 478 -59}\special{pa 470 -62}\special{fp}\special{pa 441 -71}\special{pa 433 -73}\special{fp}%
+\special{pa 403 -80}\special{pa 395 -82}\special{fp}\special{pa 365 -88}\special{pa 357 -90}\special{fp}%
+\special{pa 327 -95}\special{pa 319 -96}\special{fp}\special{pa 289 -101}\special{pa 281 -102}\special{fp}%
+\special{pa 250 -105}\special{pa 242 -106}\special{fp}\special{pa 211 -109}\special{pa 203 -110}\special{fp}%
+\special{pa 173 -112}\special{pa 165 -113}\special{fp}\special{pa 134 -115}\special{pa 126 -115}\special{fp}%
+\special{pa 95 -116}\special{pa 87 -117}\special{fp}\special{pa 56 -118}\special{pa 48 -118}\special{fp}%
+\special{pa 18 -118}\special{pa 10 -118}\special{fp}\special{pa -21 -118}\special{pa -29 -118}\special{fp}%
+\special{pa -60 -118}\special{pa -68 -117}\special{fp}\special{pa -99 -116}\special{pa -107 -116}\special{fp}%
+\special{pa -137 -114}\special{pa -145 -114}\special{fp}\special{pa -176 -112}\special{pa -184 -111}\special{fp}%
+\special{pa -215 -109}\special{pa -223 -108}\special{fp}\special{pa -254 -105}\special{pa -261 -104}\special{fp}%
+\special{pa -292 -100}\special{pa -300 -99}\special{fp}\special{pa -330 -94}\special{pa -338 -93}\special{fp}%
+\special{pa -369 -88}\special{pa -376 -86}\special{fp}\special{pa -407 -80}\special{pa -414 -78}\special{fp}%
+\special{pa -444 -70}\special{pa -452 -67}\special{fp}\special{pa -481 -58}\special{pa -488 -55}\special{fp}%
+\special{pa -516 -42}\special{pa -523 -37}\special{fp}\special{pa -544 -16}\special{pa -550 -10}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex
new file mode 100644
index 00000000000..12ccd057bbb
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex
@@ -0,0 +1,105 @@
+%%% /Users/hannya/Desktop/fig/frustumewn.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(4.67,3.66)(-2.24,-1.05)%
+\special{pn 8}%
+%
+\special{pa 548 -13}\special{pa 544 -20}%
+\special{fp}%
+\special{pa 544 -20}\special{pa 542 -24}\special{pa 542 -24}%
+\special{fp}%
+\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}\special{pa 526 -56}%
+\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}\special{pa 504 -98}%
+\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}\special{pa 482 -141}%
+\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}\special{pa 460 -183}%
+\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}\special{pa 438 -226}%
+\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}\special{pa 416 -268}%
+\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}\special{pa 394 -311}%
+\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}\special{pa 373 -353}%
+\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}\special{pa 351 -396}%
+\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}\special{pa 329 -438}%
+\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}\special{pa 307 -481}%
+\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}\special{pa 285 -524}%
+\special{pa 279 -534}\special{pa 274 -545}%
+\special{fp}%
+\special{pa -548 -13}\special{pa -542 -24}\special{pa -542 -24}%
+\special{fp}%
+\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}\special{pa -526 -56}%
+\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}\special{pa -504 -98}%
+\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}\special{pa -482 -141}%
+\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}\special{pa -460 -183}%
+\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}\special{pa -438 -226}%
+\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}\special{pa -416 -268}%
+\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}\special{pa -394 -311}%
+\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}\special{pa -373 -353}%
+\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}\special{pa -351 -396}%
+\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}\special{pa -329 -438}%
+\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}\special{pa -307 -481}%
+\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}\special{pa -285 -524}%
+\special{pa -279 -534}\special{pa -274 -545}%
+\special{fp}%
+\special{pa -432 74}\special{pa -386 85}\special{pa -333 94}\special{pa -275 103}%
+\special{pa -213 109}\special{pa -148 114}\special{pa -80 117}\special{pa -11 118}%
+\special{pa 58 118}\special{pa 126 115}\special{pa 192 111}\special{pa 256 105}%
+\special{pa 315 97}\special{pa 369 88}\special{pa 417 77}\special{pa 459 65}%
+\special{pa 494 53}\special{pa 521 39}\special{pa 539 25}\special{pa 549 10}%
+\special{pa 551 -5}\special{pa 547 -13}%
+\special{fp}%
+\special{pa 547 -13}\special{pa 543 -20}\special{pa 541 -22}%
+\special{fp}%
+\special{pa -547 -13}\special{pa -549 -10}\special{pa -551 5}\special{pa -543 20}%
+\special{pa -528 34}\special{pa -503 48}\special{pa -471 61}\special{pa -432 74}%
+\special{fp}%
+\special{pa -216 -502}\special{pa -220 -490}\special{pa -225 -479}\special{pa -229 -467}%
+\special{pa -233 -456}\special{pa -238 -444}\special{pa -242 -433}\special{pa -246 -421}%
+\special{pa -250 -410}\special{pa -255 -398}\special{pa -259 -387}\special{pa -263 -375}%
+\special{pa -268 -364}\special{pa -272 -352}\special{pa -276 -341}\special{pa -281 -329}%
+\special{pa -285 -318}\special{pa -289 -306}\special{pa -294 -294}\special{pa -298 -283}%
+\special{pa -302 -271}\special{pa -307 -260}\special{pa -311 -248}\special{pa -315 -237}%
+\special{pa -320 -225}\special{pa -324 -214}\special{pa -328 -202}\special{pa -333 -191}%
+\special{pa -337 -179}\special{pa -341 -168}\special{pa -345 -156}\special{pa -350 -145}%
+\special{pa -354 -133}\special{pa -358 -122}\special{pa -363 -110}\special{pa -367 -99}%
+\special{pa -371 -87}%
+\special{fp}%
+\special{pa -371 -87}\special{pa -371 -87}\special{pa -376 -76}\special{pa -380 -64}%
+\special{pa -384 -53}\special{pa -389 -41}\special{pa -393 -30}\special{pa -397 -18}%
+\special{pa -402 -7}\special{pa -406 5}\special{pa -410 16}\special{pa -415 28}%
+\special{pa -419 39}\special{pa -423 51}\special{pa -428 62}\special{pa -432 74}%
+\special{fp}%
+\special{pa -216 -502}\special{pa -193 -496}\special{pa -167 -491}\special{pa -138 -487}%
+\special{pa -107 -484}\special{pa -74 -481}\special{pa -40 -480}\special{pa -6 -479}%
+\special{pa 29 -479}\special{pa 63 -481}\special{pa 96 -483}\special{pa 128 -486}%
+\special{pa 157 -490}\special{pa 184 -494}\special{pa 209 -500}\special{pa 230 -506}%
+\special{pa 247 -512}\special{pa 260 -519}\special{pa 270 -526}\special{pa 275 -533}%
+\special{pa 275 -541}\special{pa 274 -544}%
+\special{fp}%
+\special{pa 274 -544}\special{pa 272 -548}\special{pa 264 -555}\special{pa 252 -562}%
+\special{pa 236 -569}\special{pa 216 -575}\special{pa 193 -581}\special{pa 167 -585}%
+\special{pa 138 -590}\special{pa 107 -593}\special{pa 74 -595}\special{pa 40 -597}%
+\special{pa 6 -597}\special{pa -29 -597}\special{pa -63 -596}\special{pa -96 -594}%
+\special{pa -128 -591}\special{pa -157 -587}\special{pa -184 -582}\special{pa -209 -577}%
+\special{pa -230 -571}\special{pa -247 -565}\special{pa -260 -558}\special{pa -270 -551}%
+\special{pa -274 -545}%
+\special{fp}%
+\special{pa -274 -545}\special{pa -275 -543}\special{pa -275 -536}\special{pa -272 -528}%
+\special{pa -264 -521}\special{pa -252 -514}\special{pa -236 -508}\special{pa -216 -502}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 544 -20}\special{pa 537 -25}\special{fp}\special{pa 513 -43}\special{pa 506 -47}\special{fp}%
+\special{pa 478 -59}\special{pa 470 -62}\special{fp}\special{pa 441 -71}\special{pa 433 -73}\special{fp}%
+\special{pa 403 -80}\special{pa 395 -82}\special{fp}\special{pa 365 -88}\special{pa 357 -90}\special{fp}%
+\special{pa 327 -95}\special{pa 319 -96}\special{fp}\special{pa 289 -101}\special{pa 281 -102}\special{fp}%
+\special{pa 250 -105}\special{pa 242 -106}\special{fp}\special{pa 211 -109}\special{pa 203 -110}\special{fp}%
+\special{pa 173 -112}\special{pa 165 -113}\special{fp}\special{pa 134 -115}\special{pa 126 -115}\special{fp}%
+\special{pa 95 -116}\special{pa 87 -117}\special{fp}\special{pa 56 -118}\special{pa 48 -118}\special{fp}%
+\special{pa 18 -118}\special{pa 10 -118}\special{fp}\special{pa -21 -118}\special{pa -29 -118}\special{fp}%
+\special{pa -60 -118}\special{pa -68 -117}\special{fp}\special{pa -99 -116}\special{pa -107 -116}\special{fp}%
+\special{pa -137 -114}\special{pa -145 -114}\special{fp}\special{pa -176 -112}\special{pa -184 -111}\special{fp}%
+\special{pa -215 -109}\special{pa -223 -108}\special{fp}\special{pa -254 -105}\special{pa -261 -104}\special{fp}%
+\special{pa -292 -100}\special{pa -300 -99}\special{fp}\special{pa -330 -94}\special{pa -338 -93}\special{fp}%
+\special{pa -369 -88}\special{pa -376 -86}\special{fp}\special{pa -407 -80}\special{pa -414 -78}\special{fp}%
+\special{pa -444 -70}\special{pa -452 -67}\special{fp}\special{pa -481 -58}\special{pa -488 -55}\special{fp}%
+\special{pa -516 -42}\special{pa -523 -37}\special{fp}\special{pa -544 -16}\special{pa -550 -10}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex
new file mode 100644
index 00000000000..d481b7a48c1
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex
@@ -0,0 +1,55 @@
+%%% /Users/hannya/Desktop/fig/frustumw.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(4.67,3.66)(-2.24,-1.05)%
+\special{pn 8}%
+%
+\special{pa 548 -13}\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}%
+\special{pa 526 -56}\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}%
+\special{pa 504 -98}\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}%
+\special{pa 482 -141}\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}%
+\special{pa 460 -183}\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}%
+\special{pa 438 -226}\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}%
+\special{pa 416 -268}\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}%
+\special{pa 394 -311}\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}%
+\special{pa 373 -353}\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}%
+\special{pa 351 -396}\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}%
+\special{pa 329 -438}\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}%
+\special{pa 307 -481}\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}%
+\special{pa 285 -524}\special{pa 279 -534}\special{pa 274 -545}%
+\special{fp}%
+\special{pa -548 -13}\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}%
+\special{pa -526 -56}\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}%
+\special{pa -504 -98}\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}%
+\special{pa -482 -141}\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}%
+\special{pa -460 -183}\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}%
+\special{pa -438 -226}\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}%
+\special{pa -416 -268}\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}%
+\special{pa -394 -311}\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}%
+\special{pa -373 -353}\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}%
+\special{pa -351 -396}\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}%
+\special{pa -329 -438}\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}%
+\special{pa -307 -481}\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}%
+\special{pa -285 -524}\special{pa -279 -534}\special{pa -274 -545}%
+\special{fp}%
+\special{pa -216 -502}\special{pa -193 -496}\special{pa -167 -491}\special{pa -138 -487}%
+\special{pa -107 -484}\special{pa -74 -481}\special{pa -40 -480}\special{pa -6 -479}%
+\special{pa 29 -479}\special{pa 63 -481}\special{pa 96 -483}\special{pa 128 -486}%
+\special{pa 157 -490}\special{pa 184 -494}\special{pa 209 -500}\special{pa 230 -506}%
+\special{pa 247 -512}\special{pa 260 -519}\special{pa 270 -526}\special{pa 275 -533}%
+\special{pa 275 -541}\special{pa 274 -544}%
+\special{fp}%
+\special{pa 274 -544}\special{pa 272 -548}\special{pa 264 -555}\special{pa 252 -562}%
+\special{pa 236 -569}\special{pa 216 -575}\special{pa 193 -581}\special{pa 167 -585}%
+\special{pa 138 -590}\special{pa 107 -593}\special{pa 74 -595}\special{pa 40 -597}%
+\special{pa 6 -597}\special{pa -29 -597}\special{pa -63 -596}\special{pa -96 -594}%
+\special{pa -128 -591}\special{pa -157 -587}\special{pa -184 -582}\special{pa -209 -577}%
+\special{pa -230 -571}\special{pa -247 -565}\special{pa -260 -558}\special{pa -270 -551}%
+\special{pa -274 -545}%
+\special{fp}%
+\special{pa -274 -545}\special{pa -275 -543}\special{pa -275 -536}\special{pa -272 -528}%
+\special{pa -264 -521}\special{pa -252 -514}\special{pa -236 -508}\special{pa -216 -502}%
+\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex
new file mode 100644
index 00000000000..7158782845d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex
@@ -0,0 +1,70 @@
+%%% /Users/hannya/Desktop/fig/frustumewn.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(5.37,4.83)(-3.01,-1.14)%
+\special{pn 8}%
+%
+\special{pa 0 -879}\special{pa -618 -33}%
+\special{fp}%
+\special{pa -618 -33}\special{pa 176 131}%
+\special{fp}%
+\special{pa 0 -879}\special{pa 176 131}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -622 -33}\special{pa -614 -33}\special{fp}\special{pa -582 -35}\special{pa -574 -36}\special{fp}%
+\special{pa -543 -38}\special{pa -535 -38}\special{fp}\special{pa -504 -40}\special{pa -496 -41}\special{fp}%
+\special{pa -465 -42}\special{pa -457 -43}\special{fp}\special{pa -425 -45}\special{pa -417 -45}\special{fp}%
+\special{pa -386 -47}\special{pa -378 -48}\special{fp}\special{pa -347 -50}\special{pa -339 -50}\special{fp}%
+\special{pa -308 -52}\special{pa -300 -53}\special{fp}\special{pa -268 -55}\special{pa -260 -55}\special{fp}%
+\special{pa -229 -57}\special{pa -221 -57}\special{fp}\special{pa -190 -59}\special{pa -182 -60}\special{fp}%
+\special{pa -151 -62}\special{pa -143 -62}\special{fp}\special{pa -111 -64}\special{pa -103 -65}\special{fp}%
+\special{pa -72 -67}\special{pa -64 -67}\special{fp}\special{pa -33 -69}\special{pa -25 -70}\special{fp}%
+\special{pa 6 -71}\special{pa 14 -72}\special{fp}\special{pa 46 -74}\special{pa 54 -74}\special{fp}%
+\special{pa 85 -76}\special{pa 93 -77}\special{fp}\special{pa 124 -79}\special{pa 132 -79}\special{fp}%
+\special{pa 163 -81}\special{pa 171 -82}\special{fp}\special{pa 203 -84}\special{pa 211 -84}\special{fp}%
+\special{pa 242 -86}\special{pa 250 -87}\special{fp}\special{pa 281 -88}\special{pa 289 -89}\special{fp}%
+\special{pa 320 -91}\special{pa 328 -91}\special{fp}\special{pa 360 -93}\special{pa 367 -94}\special{fp}%
+\special{pa 399 -96}\special{pa 407 -96}\special{fp}\special{pa 438 -98}\special{pa 446 -99}\special{fp}%
+\special{pn 8}%
+\special{pa 0 -879}\special{pa 442 -98}%
+\special{fp}%
+\special{pa 176 131}\special{pa 442 -98}%
+\special{fp}%
+\special{pa -0 -879}\special{pa -221 49}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -225 50}\special{pa -217 48}\special{fp}\special{pa -186 42}\special{pa -178 40}\special{fp}%
+\special{pa -147 33}\special{pa -139 31}\special{fp}\special{pa -108 24}\special{pa -100 22}\special{fp}%
+\special{pa -69 16}\special{pa -61 14}\special{fp}\special{pa -30 7}\special{pa -22 5}\special{fp}%
+\special{pa 9 -2}\special{pa 17 -4}\special{fp}\special{pa 48 -11}\special{pa 56 -12}\special{fp}%
+\special{pa 87 -19}\special{pa 95 -21}\special{fp}\special{pa 126 -28}\special{pa 134 -30}\special{fp}%
+\special{pa 165 -37}\special{pa 173 -38}\special{fp}\special{pa 204 -45}\special{pa 212 -47}\special{fp}%
+\special{pa 243 -54}\special{pa 251 -56}\special{fp}\special{pa 282 -63}\special{pa 290 -64}\special{fp}%
+\special{pa 321 -71}\special{pa 329 -73}\special{fp}\special{pa 360 -80}\special{pa 368 -82}\special{fp}%
+\special{pa 399 -89}\special{pa 407 -90}\special{fp}\special{pa 438 -97}\special{pa 446 -99}\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
+\put(0.0714286,3.2614286){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.3114286,0.1200000){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
+\put(0.7114286,-0.5514286){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.6714286,0.3600000){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+{%
+\color[rgb]{0,0,1}%
+\settowidth{\Width}{M}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{M}\settodepth{\Depth}{M}\setlength{\Height}{-\Height}%
+\put(-0.8714286,-0.2514286){\hspace*{\Width}\raisebox{\Height}{M}}%
+%
+}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex
index 3ca36611758..14964c23bd7 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex
@@ -1,26 +1,24 @@
-%%% /Users/Hannya/Desktop/KeTCindy/リファレンス/fig/mkpttable.tex
+%%% /Users/hannya/Desktop/Ketcindy/リファレンス旧/fig/mkpttable.tex
%%% Generator=点作図関数比較.cdy
{\unitlength=10mm%
\begin{picture}%
-(11.25,20.1)(0,1.5)%
+(11.25,19.3)(0,1.5)%
\special{pn 8}%
%
\small%
-\special{pa 0 -8504}\special{pa 0 -591}%
+\special{pa 0 -8189}\special{pa 0 -591}%
\special{fp}%
-\special{pa 1280 -8504}\special{pa 1280 -591}%
+\special{pa 1280 -8189}\special{pa 1280 -591}%
\special{fp}%
-\special{pa 2067 -8504}\special{pa 2067 -591}%
+\special{pa 2067 -8189}\special{pa 2067 -591}%
\special{fp}%
-\special{pa 2854 -8504}\special{pa 2854 -591}%
+\special{pa 2854 -8189}\special{pa 2854 -591}%
\special{fp}%
-\special{pa 3642 -8504}\special{pa 3642 -591}%
+\special{pa 3642 -8189}\special{pa 3642 -591}%
\special{fp}%
-\special{pa 4429 -8504}\special{pa 4429 -591}%
+\special{pa 4429 -8189}\special{pa 4429 -591}%
\special{fp}%
-\special{pa 0 -8504}\special{pa 4429 -8504}%
-\special{fp}%
-\special{pa 0 -8268}\special{pa 4429 -8268}%
+\special{pa 0 -8189}\special{pa 4429 -8189}%
\special{fp}%
\special{pa 0 -7972}\special{pa 4429 -7972}%
\special{fp}%
@@ -76,43 +74,23 @@
\special{fp}%
\settowidth{\Width}{関数}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{関数}\settodepth{\Depth}{関数}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.6200000,21.3000000){\hspace*{\Width}\raisebox{\Height}{関数}}%
+\put(1.6200000,20.5200000){\hspace*{\Width}\raisebox{\Height}{関数}}%
%
\settowidth{\Width}{戻り値を使ã†}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{戻り値を使ã†}\settodepth{\Depth}{戻り値を使ã†}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{戻り値を使ã†}}%
+\put(4.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{戻り値を使ã†}}%
%
\settowidth{\Width}{æç”»ã™ã‚‹}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{æç”»ã™ã‚‹}\settodepth{\Depth}{æç”»ã™ã‚‹}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{æç”»ã™ã‚‹}}%
+\put(6.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{æç”»ã™ã‚‹}}%
%
\settowidth{\Width}{幾何点を作る}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{幾何点を作る}\settodepth{\Depth}{幾何点を作る}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{幾何点を作る}}%
+\put(8.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{幾何点を作る}}%
%
\settowidth{\Width}{TeXã«å‡ºåŠ›}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{TeXã«å‡ºåŠ›}\settodepth{\Depth}{TeXã«å‡ºåŠ›}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{TeXã«å‡ºåŠ›}}%
-%
-\settowidth{\Width}{Drawpoint}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Drawpoint}\settodepth{\Depth}{Drawpoint}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.6200000,20.6200000){\hspace*{\Width}\raisebox{\Height}{Drawpoint}}%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(4.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(6.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(8.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{-}}%
-%
-\settowidth{\Width}{$\bigcirc$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$\bigcirc$}\settodepth{\Depth}{$\bigcirc$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{$\bigcirc$}}%
+\put(10.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{TeXã«å‡ºåŠ›}}%
%
\settowidth{\Width}{Pointdata}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{Pointdata}\settodepth{\Depth}{Pointdata}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
@@ -314,9 +292,9 @@
\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
\put(10.2500000,13.1200000){\hspace*{\Width}\raisebox{\Height}{-}}%
%
-\settowidth{\Width}{Drawpoint3d}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{Drawpoint3d}\settodepth{\Depth}{Drawpoint3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(1.6200000,12.3800000){\hspace*{\Width}\raisebox{\Height}{Drawpoint3d}}%
+\settowidth{\Width}{Pointdata3d}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Pointdata3d}\settodepth{\Depth}{Pointdata3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.6200000,12.3800000){\hspace*{\Width}\raisebox{\Height}{Pointdata3d}}%
%
\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
@@ -330,9 +308,9 @@
\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
\put(8.2500000,12.3800000){\hspace*{\Width}\raisebox{\Height}{-}}%
%
-\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(10.2500000,12.3800000){\hspace*{\Width}\raisebox{\Height}{-}}%
+\settowidth{\Width}{$\bigcirc$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$\bigcirc$}\settodepth{\Depth}{$\bigcirc$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(10.2500000,12.3800000){\hspace*{\Width}\raisebox{\Height}{$\bigcirc$}}%
%
\settowidth{\Width}{Putpoint3d}\setlength{\Width}{-0.5\Width}%
\settoheight{\Height}{Putpoint3d}\settodepth{\Depth}{Putpoint3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex
new file mode 100644
index 00000000000..f3116896341
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex
@@ -0,0 +1,34 @@
+%%% /Users/hannya/Desktop/fig/template3D.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(8.08,7.82)(-4.08,-2.57)%
+\special{pn 8}%
+%
+\special{pa -598 -86}\special{pa 111 246}%
+\special{fp}%
+\special{pa 111 246}\special{pa 488 -161}%
+\special{fp}%
+\special{pa -598 -86}\special{pa 0 -878}%
+\special{fp}%
+\special{pa 0 -878}\special{pa 488 -161}%
+\special{fp}%
+\special{pa 111 246}\special{pa 0 -878}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 492 -161}\special{pa 484 -160}\special{fp}\special{pa 453 -158}\special{pa 445 -158}\special{fp}%
+\special{pa 414 -156}\special{pa 406 -155}\special{fp}\special{pa 375 -153}\special{pa 367 -152}\special{fp}%
+\special{pa 336 -150}\special{pa 328 -150}\special{fp}\special{pa 298 -148}\special{pa 290 -147}\special{fp}%
+\special{pa 259 -145}\special{pa 251 -144}\special{fp}\special{pa 220 -142}\special{pa 212 -142}\special{fp}%
+\special{pa 181 -140}\special{pa 173 -139}\special{fp}\special{pa 143 -137}\special{pa 135 -136}\special{fp}%
+\special{pa 104 -134}\special{pa 96 -134}\special{fp}\special{pa 65 -131}\special{pa 57 -131}\special{fp}%
+\special{pa 26 -129}\special{pa 18 -128}\special{fp}\special{pa -12 -126}\special{pa -20 -126}\special{fp}%
+\special{pa -51 -123}\special{pa -59 -123}\special{fp}\special{pa -90 -121}\special{pa -98 -120}\special{fp}%
+\special{pa -129 -118}\special{pa -137 -117}\special{fp}\special{pa -168 -115}\special{pa -176 -115}\special{fp}%
+\special{pa -206 -113}\special{pa -214 -112}\special{fp}\special{pa -245 -110}\special{pa -253 -109}\special{fp}%
+\special{pa -284 -107}\special{pa -292 -107}\special{fp}\special{pa -323 -105}\special{pa -331 -104}\special{fp}%
+\special{pa -361 -102}\special{pa -369 -101}\special{fp}\special{pa -400 -99}\special{pa -408 -99}\special{fp}%
+\special{pa -439 -97}\special{pa -447 -96}\special{fp}\special{pa -478 -94}\special{pa -486 -93}\special{fp}%
+\special{pa -517 -91}\special{pa -525 -91}\special{fp}\special{pa -555 -88}\special{pa -563 -88}\special{fp}%
+\special{pa -594 -86}\special{pa -602 -85}\special{fp}\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf
index a8f3ab73092..2effbefce72 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex
new file mode 100644
index 00000000000..1de3e3649c7
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex
@@ -0,0 +1,170 @@
+%%% /Users/hannya/Desktop/fig/sfbdpara05.tex
+%%% Generator=template3D.cdy
+{\unitlength=8mm%
+\begin{picture}%
+(10.34,6.13)(-3.36,-1.77)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.3600000,-0.8900000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.3300000,-1.3900000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000000,4.0100000){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+\special{pa 1234 -325}\special{pa -987 260}%
+\special{fp}%
+\special{pa -979 -410}\special{pa 979 410}%
+\special{fp}%
+\special{pa 0 557}\special{pa 0 -1188}%
+\special{fp}%
+\special{pa 620 -37}\special{pa 614 -48}\special{pa 613 -49}%
+\special{fp}%
+\special{pa 613 -49}\special{pa 608 -60}\special{pa 607 -60}%
+\special{fp}%
+\special{pa 607 -60}\special{pa 601 -71}\special{pa 595 -83}\special{pa 589 -94}%
+\special{pa 583 -106}\special{pa 577 -117}\special{pa 570 -129}\special{pa 564 -141}%
+\special{pa 558 -152}\special{pa 552 -164}\special{pa 546 -175}\special{pa 539 -187}%
+\special{pa 533 -198}\special{pa 527 -210}\special{pa 521 -221}\special{pa 515 -233}%
+\special{pa 508 -244}\special{pa 502 -256}\special{pa 496 -267}\special{pa 490 -279}%
+\special{pa 484 -290}\special{pa 477 -302}\special{pa 471 -313}\special{pa 465 -325}%
+\special{pa 459 -336}\special{pa 453 -348}\special{pa 446 -359}\special{pa 440 -371}%
+\special{pa 434 -382}\special{pa 428 -394}\special{pa 422 -405}\special{pa 415 -417}%
+\special{pa 409 -428}\special{pa 403 -440}\special{pa 397 -451}\special{pa 391 -463}%
+\special{pa 384 -474}\special{pa 378 -486}\special{pa 372 -497}\special{pa 366 -509}%
+\special{pa 360 -520}\special{pa 353 -532}\special{pa 347 -543}\special{pa 341 -555}%
+\special{pa 335 -567}\special{pa 329 -578}\special{pa 322 -590}\special{pa 316 -601}%
+\special{fp}%
+\special{pa 316 -601}\special{pa 316 -601}\special{pa 310 -612}%
+\special{fp}%
+\special{pa -620 -37}\special{pa -614 -48}\special{pa -614 -49}%
+\special{fp}%
+\special{pa -614 -49}\special{pa -608 -60}\special{pa -601 -71}\special{pa -595 -83}%
+\special{pa -589 -94}\special{pa -583 -106}\special{pa -577 -118}\special{pa -570 -129}%
+\special{pa -564 -141}\special{pa -558 -152}\special{pa -552 -164}\special{pa -546 -175}%
+\special{pa -539 -187}\special{pa -533 -198}\special{pa -527 -210}\special{pa -521 -221}%
+\special{pa -515 -233}\special{pa -508 -244}\special{pa -502 -256}\special{pa -496 -267}%
+\special{pa -490 -279}\special{pa -484 -290}\special{pa -477 -302}\special{pa -471 -313}%
+\special{pa -465 -325}\special{pa -459 -336}\special{pa -453 -348}\special{pa -446 -359}%
+\special{pa -440 -371}\special{pa -434 -382}\special{pa -428 -394}\special{pa -422 -405}%
+\special{pa -415 -417}\special{pa -409 -428}\special{pa -403 -440}\special{pa -397 -451}%
+\special{pa -391 -463}\special{pa -384 -474}\special{pa -378 -486}\special{pa -372 -497}%
+\special{pa -366 -509}\special{pa -360 -520}\special{pa -353 -532}\special{pa -347 -544}%
+\special{pa -341 -555}\special{pa -335 -567}\special{pa -329 -578}\special{pa -322 -590}%
+\special{pa -316 -601}%
+\special{fp}%
+\special{pa -316 -601}\special{pa -310 -612}%
+\special{fp}%
+\special{pa -494 130}\special{pa -441 150}\special{pa -381 167}\special{pa -315 181}%
+\special{pa -244 193}\special{pa -169 202}\special{pa -92 207}\special{pa -13 209}%
+\special{pa 66 208}\special{pa 144 204}\special{pa 220 196}\special{pa 292 185}%
+\special{pa 360 172}\special{pa 422 155}\special{pa 477 137}\special{pa 525 116}%
+\special{pa 564 93}\special{pa 595 69}\special{pa 616 43}\special{pa 628 17}%
+\special{pa 629 -9}\special{pa 621 -35}\special{pa 619 -37}%
+\special{fp}%
+\special{pa -619 -37}\special{pa -628 -17}\special{pa -629 9}\special{pa -621 35}%
+\special{pa -603 61}\special{pa -575 85}\special{pa -539 108}\special{pa -494 130}%
+\special{fp}%
+\special{pa -247 -529}\special{pa -220 -519}\special{pa -190 -511}\special{pa -157 -504}%
+\special{pa -122 -498}\special{pa -85 -493}\special{pa -46 -491}\special{pa -6 -490}%
+\special{pa 33 -490}\special{pa 72 -492}\special{pa 110 -496}\special{pa 146 -501}%
+\special{pa 180 -508}\special{pa 211 -516}\special{pa 238 -526}\special{pa 262 -536}%
+\special{pa 282 -548}\special{pa 297 -560}\special{pa 308 -572}\special{pa 314 -585}%
+\special{pa 315 -599}\special{pa 314 -600}%
+\special{fp}%
+\special{pa 314 -600}\special{pa 311 -612}\special{pa 310 -612}%
+\special{fp}%
+\special{pa 310 -612}\special{pa 301 -624}\special{pa 288 -637}\special{pa 269 -648}%
+\special{pa 247 -659}\special{pa 220 -669}\special{pa 190 -678}\special{pa 157 -685}%
+\special{pa 122 -691}\special{pa 85 -695}\special{pa 46 -698}\special{pa 6 -699}%
+\special{pa -33 -698}\special{pa -72 -696}\special{pa -110 -692}\special{pa -146 -687}%
+\special{pa -180 -680}\special{pa -211 -672}\special{pa -238 -662}\special{pa -262 -652}%
+\special{pa -282 -641}\special{pa -297 -629}\special{pa -308 -616}\special{pa -310 -612}%
+\special{fp}%
+\special{pa -310 -612}\special{pa -314 -603}\special{pa -314 -600}%
+\special{fp}%
+\special{pa -314 -600}\special{pa -315 -590}\special{pa -311 -577}\special{pa -301 -564}%
+\special{pa -288 -552}\special{pa -269 -540}\special{pa -247 -529}%
+\special{fp}%
+\special{pa 1948 14}\special{pa 1935 -9}\special{pa 1923 -32}\special{pa 1910 -55}%
+\special{pa 1898 -78}\special{pa 1886 -101}\special{pa 1873 -124}\special{pa 1861 -147}%
+\special{pa 1848 -170}\special{pa 1836 -193}\special{pa 1824 -216}\special{pa 1811 -239}%
+\special{pa 1799 -262}\special{pa 1786 -285}\special{pa 1774 -308}\special{pa 1762 -331}%
+\special{pa 1749 -354}\special{pa 1737 -377}\special{pa 1724 -401}\special{pa 1712 -424}%
+\special{pa 1699 -447}\special{pa 1687 -470}\special{pa 1675 -493}\special{pa 1662 -516}%
+\special{pa 1650 -539}\special{pa 1637 -562}\special{pa 1625 -585}\special{pa 1613 -608}%
+\special{pa 1600 -631}\special{pa 1588 -654}\special{pa 1575 -677}\special{pa 1563 -700}%
+\special{pa 1551 -723}\special{pa 1538 -746}\special{pa 1526 -769}\special{pa 1513 -792}%
+\special{pa 1501 -815}\special{pa 1489 -838}\special{pa 1476 -861}\special{pa 1464 -884}%
+\special{pa 1451 -907}\special{pa 1439 -930}\special{pa 1427 -953}\special{pa 1414 -976}%
+\special{pa 1402 -999}\special{pa 1389 -1022}\special{pa 1377 -1045}\special{pa 1365 -1068}%
+\special{pa 1352 -1091}\special{pa 1340 -1114}\special{pa 1327 -1137}%
+\special{fp}%
+\special{pa 707 14}\special{pa 720 -9}\special{pa 732 -32}\special{pa 745 -55}%
+\special{pa 757 -78}\special{pa 769 -101}\special{pa 782 -124}\special{pa 794 -147}%
+\special{pa 807 -170}\special{pa 819 -193}\special{pa 831 -216}\special{pa 844 -239}%
+\special{pa 856 -262}\special{pa 869 -285}\special{pa 881 -308}\special{pa 893 -331}%
+\special{pa 906 -354}\special{pa 918 -377}\special{pa 931 -401}\special{pa 943 -424}%
+\special{pa 955 -447}\special{pa 968 -470}\special{pa 980 -493}\special{pa 993 -516}%
+\special{pa 1005 -539}\special{pa 1017 -562}\special{pa 1030 -585}\special{pa 1042 -608}%
+\special{pa 1055 -631}\special{pa 1067 -654}\special{pa 1079 -677}\special{pa 1092 -700}%
+\special{pa 1104 -723}\special{pa 1117 -746}\special{pa 1129 -769}\special{pa 1141 -792}%
+\special{pa 1154 -815}\special{pa 1166 -838}\special{pa 1179 -861}\special{pa 1191 -884}%
+\special{pa 1203 -907}\special{pa 1216 -930}\special{pa 1228 -953}\special{pa 1241 -976}%
+\special{pa 1253 -999}\special{pa 1265 -1022}\special{pa 1278 -1045}\special{pa 1290 -1068}%
+\special{pa 1303 -1091}\special{pa 1315 -1114}\special{pa 1327 -1137}%
+\special{fp}%
+\special{pa 834 181}\special{pa 887 200}\special{pa 947 218}\special{pa 1013 232}%
+\special{pa 1084 244}\special{pa 1158 252}\special{pa 1236 258}\special{pa 1314 260}%
+\special{pa 1394 259}\special{pa 1472 255}\special{pa 1547 247}\special{pa 1619 236}%
+\special{pa 1687 223}\special{pa 1749 206}\special{pa 1804 188}\special{pa 1852 167}%
+\special{pa 1892 144}\special{pa 1922 120}\special{pa 1944 94}\special{pa 1955 68}%
+\special{pa 1957 42}\special{pa 1949 16}\special{pa 1946 12}%
+\special{fp}%
+\special{pa 708 14}\special{pa 700 33}\special{pa 698 60}\special{pa 706 86}%
+\special{pa 724 111}\special{pa 752 136}\special{pa 789 159}\special{pa 834 181}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 622 -34}\special{pa 617 -40}\special{fp}\special{pa 598 -65}\special{pa 592 -70}\special{fp}%
+\special{pa 568 -90}\special{pa 562 -94}\special{fp}\special{pa 535 -110}\special{pa 528 -114}\special{fp}%
+\special{pa 500 -127}\special{pa 493 -130}\special{fp}\special{pa 464 -141}\special{pa 456 -144}\special{fp}%
+\special{pa 427 -153}\special{pa 419 -156}\special{fp}\special{pa 389 -164}\special{pa 382 -166}\special{fp}%
+\special{pa 352 -173}\special{pa 344 -175}\special{fp}\special{pa 314 -181}\special{pa 306 -183}\special{fp}%
+\special{pa 275 -188}\special{pa 267 -189}\special{fp}\special{pa 237 -194}\special{pa 229 -195}\special{fp}%
+\special{pa 198 -198}\special{pa 190 -199}\special{fp}\special{pa 159 -202}\special{pa 151 -203}\special{fp}%
+\special{pa 120 -205}\special{pa 112 -206}\special{fp}\special{pa 82 -207}\special{pa 74 -208}\special{fp}%
+\special{pa 43 -208}\special{pa 35 -209}\special{fp}\special{pa 4 -209}\special{pa -4 -209}\special{fp}%
+\special{pa -35 -209}\special{pa -43 -208}\special{fp}\special{pa -74 -208}\special{pa -82 -207}\special{fp}%
+\special{pa -113 -206}\special{pa -121 -205}\special{fp}\special{pa -152 -203}\special{pa -160 -202}\special{fp}%
+\special{pa -191 -199}\special{pa -199 -198}\special{fp}\special{pa -229 -195}\special{pa -237 -194}\special{fp}%
+\special{pa -268 -189}\special{pa -276 -188}\special{fp}\special{pa -306 -183}\special{pa -314 -181}\special{fp}%
+\special{pa -344 -175}\special{pa -352 -173}\special{fp}\special{pa -382 -166}\special{pa -390 -164}\special{fp}%
+\special{pa -420 -156}\special{pa -428 -154}\special{fp}\special{pa -457 -144}\special{pa -464 -141}\special{fp}%
+\special{pa -493 -130}\special{pa -500 -126}\special{fp}\special{pa -528 -113}\special{pa -536 -110}\special{fp}%
+\special{pa -562 -94}\special{pa -569 -90}\special{fp}\special{pa -593 -70}\special{pa -599 -65}\special{fp}%
+\special{pa -617 -40}\special{pa -622 -33}\special{fp}\special{pn 8}%
+\special{pn 8}%
+\special{pa 1949 15}\special{pa 1943 9}\special{fp}\special{pa 1924 -15}\special{pa 1919 -20}\special{fp}%
+\special{pa 1894 -39}\special{pa 1888 -44}\special{fp}\special{pa 1861 -60}\special{pa 1854 -63}\special{fp}%
+\special{pa 1826 -77}\special{pa 1819 -80}\special{fp}\special{pa 1790 -91}\special{pa 1782 -93}\special{fp}%
+\special{pa 1753 -103}\special{pa 1746 -105}\special{fp}\special{pa 1716 -114}\special{pa 1708 -116}\special{fp}%
+\special{pa 1678 -123}\special{pa 1670 -124}\special{fp}\special{pa 1640 -131}\special{pa 1632 -132}\special{fp}%
+\special{pa 1602 -137}\special{pa 1594 -138}\special{fp}\special{pa 1563 -143}\special{pa 1555 -144}\special{fp}%
+\special{pa 1524 -148}\special{pa 1517 -148}\special{fp}\special{pa 1486 -151}\special{pa 1478 -152}\special{fp}%
+\special{pa 1447 -154}\special{pa 1439 -155}\special{fp}\special{pa 1408 -156}\special{pa 1400 -157}\special{fp}%
+\special{pa 1369 -158}\special{pa 1361 -158}\special{fp}\special{pa 1330 -158}\special{pa 1322 -158}\special{fp}%
+\special{pa 1292 -158}\special{pa 1284 -158}\special{fp}\special{pa 1253 -157}\special{pa 1245 -156}\special{fp}%
+\special{pa 1214 -155}\special{pa 1206 -154}\special{fp}\special{pa 1175 -152}\special{pa 1167 -151}\special{fp}%
+\special{pa 1136 -148}\special{pa 1128 -147}\special{fp}\special{pa 1098 -144}\special{pa 1090 -143}\special{fp}%
+\special{pa 1059 -138}\special{pa 1051 -137}\special{fp}\special{pa 1021 -132}\special{pa 1013 -130}\special{fp}%
+\special{pa 983 -124}\special{pa 975 -122}\special{fp}\special{pa 945 -115}\special{pa 937 -113}\special{fp}%
+\special{pa 907 -105}\special{pa 900 -103}\special{fp}\special{pa 870 -93}\special{pa 863 -90}\special{fp}%
+\special{pa 834 -79}\special{pa 827 -76}\special{fp}\special{pa 799 -63}\special{pa 792 -59}\special{fp}%
+\special{pa 765 -43}\special{pa 758 -39}\special{fp}\special{pa 734 -20}\special{pa 729 -14}\special{fp}%
+\special{pa 711 11}\special{pa 706 17}\special{fp}\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex
new file mode 100644
index 00000000000..f5ec71d0da1
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex
@@ -0,0 +1,85 @@
+%%% /Users/hannya/Desktop/fig/template3D.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(8.08,7.82)(-4.08,-2.57)%
+\special{pn 8}%
+%
+\special{pa -270 -327}\special{pa -255 -302}\special{pa -249 -293}\special{pa -230 -269}%
+\special{pa -222 -259}\special{pa -202 -238}\special{pa -190 -225}\special{pa -170 -207}%
+\special{pa -152 -192}\special{pa -133 -178}\special{pa -108 -160}\special{pa -92 -150}%
+\special{pa -61 -131}\special{pa -45 -123}\special{pa -9 -105}\special{pa 9 -98}%
+\special{pa 46 -84}\special{pa 74 -75}\special{pa 102 -68}\special{pa 158 -58}%
+\special{pa 158 -58}\special{pa 212 -55}\special{pa 262 -59}\special{pa 307 -70}%
+\special{pa 346 -88}\special{pa 376 -111}\special{pa 377 -111}\special{pa 399 -140}%
+\special{pa 406 -157}\special{pa 412 -173}\special{pa 416 -198}\special{pa 417 -209}%
+\special{pa 416 -236}\special{pa 414 -247}\special{pa 408 -272}\special{pa 403 -286}%
+\special{pa 394 -307}\special{pa 386 -324}\special{pa 376 -341}\special{pa 363 -361}%
+\special{pa 353 -374}\special{pa 336 -396}\special{pa 327 -406}\special{pa 304 -429}%
+\special{pa 296 -437}\special{pa 270 -459}\special{pa 261 -467}\special{pa 234 -487}%
+\special{pa 221 -495}\special{pa 196 -511}\special{pa 176 -523}\special{pa 158 -533}%
+\special{pa 125 -549}\special{pa 119 -551}\special{pa 81 -567}\special{pa 64 -572}%
+\special{pa 43 -579}\special{pa 6 -588}\special{pa -12 -592}\special{pa -30 -595}%
+\special{pa -64 -599}\special{pa -97 -600}\special{pa -128 -598}\special{pa -157 -594}%
+\special{pa -185 -587}\special{pa -209 -578}\special{pa -232 -567}\special{pa -252 -553}%
+\special{pa -269 -536}\special{pa -276 -527}\special{pa -283 -518}\special{pa -293 -496}%
+\special{pa -298 -483}\special{pa -300 -473}\special{pa -303 -448}\special{pa -303 -444}%
+\special{pa -302 -420}\special{pa -300 -406}\special{pa -296 -391}\special{pa -290 -370}%
+\special{pa -286 -360}\special{pa -274 -335}\special{pa -270 -327}%
+\special{fp}%
+\special{pa 544 -28}\special{pa 533 -48}\special{pa 522 -69}\special{pa 511 -89}%
+\special{pa 500 -109}\special{pa 489 -130}\special{pa 479 -150}\special{pa 468 -171}%
+\special{pa 457 -191}\special{pa 446 -211}\special{pa 435 -232}\special{pa 424 -252}%
+\special{pa 413 -273}\special{pa 402 -293}\special{pa 392 -313}\special{pa 381 -334}%
+\special{pa 370 -354}\special{pa 359 -375}\special{pa 348 -395}\special{pa 337 -416}%
+\special{pa 326 -436}\special{pa 315 -456}\special{pa 305 -477}\special{pa 294 -497}%
+\special{pa 283 -518}\special{pa 272 -538}\special{pa 261 -558}\special{pa 250 -579}%
+\special{pa 239 -599}\special{pa 228 -620}\special{pa 218 -640}\special{pa 207 -661}%
+\special{pa 196 -681}\special{pa 185 -701}\special{pa 174 -722}\special{pa 163 -742}%
+\special{pa 152 -763}\special{pa 141 -783}\special{pa 131 -803}\special{pa 120 -824}%
+\special{pa 109 -844}\special{pa 98 -865}\special{pa 87 -885}\special{pa 76 -905}%
+\special{pa 65 -926}\special{pa 54 -946}\special{pa 44 -967}\special{pa 33 -987}%
+\special{pa 22 -1008}\special{pa 11 -1028}\special{pa 0 -1048}%
+\special{fp}%
+\special{pa -544 -28}\special{pa -533 -48}\special{pa -522 -69}\special{pa -511 -89}%
+\special{pa -500 -109}\special{pa -489 -130}\special{pa -479 -150}\special{pa -468 -171}%
+\special{pa -457 -191}\special{pa -446 -211}\special{pa -435 -232}\special{pa -424 -252}%
+\special{pa -413 -273}\special{pa -402 -293}\special{pa -392 -314}\special{pa -381 -334}%
+\special{pa -370 -354}\special{pa -359 -375}\special{pa -348 -395}\special{pa -337 -416}%
+\special{pa -326 -436}\special{pa -315 -456}\special{pa -305 -477}\special{pa -294 -497}%
+\special{pa -283 -518}\special{pa -272 -538}\special{pa -261 -558}\special{pa -250 -579}%
+\special{pa -239 -599}\special{pa -228 -620}\special{pa -218 -640}\special{pa -207 -661}%
+\special{pa -196 -681}\special{pa -185 -701}\special{pa -174 -722}\special{pa -163 -742}%
+\special{pa -152 -763}\special{pa -141 -783}\special{pa -131 -803}\special{pa -120 -824}%
+\special{pa -109 -844}\special{pa -98 -865}\special{pa -87 -885}\special{pa -76 -905}%
+\special{pa -65 -926}\special{pa -54 -946}\special{pa -44 -967}\special{pa -33 -987}%
+\special{pa -22 -1008}\special{pa -11 -1028}\special{pa 0 -1048}%
+\special{fp}%
+\special{pa -432 106}\special{pa -386 122}\special{pa -333 136}\special{pa -275 148}%
+\special{pa -213 157}\special{pa -148 164}\special{pa -80 169}\special{pa -11 170}%
+\special{pa 58 169}\special{pa 126 166}\special{pa 192 160}\special{pa 256 151}%
+\special{pa 315 140}\special{pa 369 127}\special{pa 417 111}\special{pa 459 94}%
+\special{pa 494 76}\special{pa 521 56}\special{pa 539 35}\special{pa 549 14}%
+\special{pa 551 -7}\special{pa 544 -28}%
+\special{fp}%
+\special{pa -543 -28}\special{pa -549 -14}\special{pa -551 7}\special{pa -543 28}%
+\special{pa -528 49}\special{pa -503 69}\special{pa -471 88}\special{pa -432 106}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 546 -25}\special{pa 541 -31}\special{fp}\special{pa 521 -55}\special{pa 515 -60}\special{fp}%
+\special{pa 488 -78}\special{pa 481 -82}\special{fp}\special{pa 453 -96}\special{pa 446 -100}\special{fp}%
+\special{pa 416 -111}\special{pa 409 -114}\special{fp}\special{pa 378 -124}\special{pa 371 -126}\special{fp}%
+\special{pa 340 -134}\special{pa 332 -136}\special{fp}\special{pa 301 -142}\special{pa 293 -144}\special{fp}%
+\special{pa 262 -150}\special{pa 254 -151}\special{fp}\special{pa 222 -156}\special{pa 214 -157}\special{fp}%
+\special{pa 183 -160}\special{pa 175 -161}\special{fp}\special{pa 143 -164}\special{pa 135 -165}\special{fp}%
+\special{pa 104 -167}\special{pa 96 -168}\special{fp}\special{pa 64 -169}\special{pa 56 -169}\special{fp}%
+\special{pa 24 -170}\special{pa 16 -170}\special{fp}\special{pa -16 -170}\special{pa -24 -170}\special{fp}%
+\special{pa -56 -169}\special{pa -64 -169}\special{fp}\special{pa -95 -167}\special{pa -103 -167}\special{fp}%
+\special{pa -135 -165}\special{pa -143 -164}\special{fp}\special{pa -175 -161}\special{pa -183 -160}\special{fp}%
+\special{pa -214 -157}\special{pa -222 -156}\special{fp}\special{pa -254 -151}\special{pa -262 -150}\special{fp}%
+\special{pa -293 -144}\special{pa -301 -142}\special{fp}\special{pa -332 -136}\special{pa -340 -134}\special{fp}%
+\special{pa -371 -126}\special{pa -378 -124}\special{fp}\special{pa -409 -114}\special{pa -416 -112}\special{fp}%
+\special{pa -446 -100}\special{pa -453 -97}\special{fp}\special{pa -481 -82}\special{pa -488 -78}\special{fp}%
+\special{pa -515 -61}\special{pa -521 -55}\special{fp}\special{pa -540 -31}\special{pa -545 -25}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex
new file mode 100644
index 00000000000..63247a15295
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex
@@ -0,0 +1,2204 @@
+%%% /Users/hannya/Desktop/fig/template3D.tex
+%%% Generator=template3D.cdy
+{\unitlength=7mm%
+\begin{picture}%
+(10.5,5.74)(-2.52,-1.59)%
+\special{pn 8}%
+%
+\special{pa 2104 -65}\special{pa 2092 -102}\special{pa 2081 -139}\special{pa 2070 -176}%
+\special{pa 2059 -211}\special{pa 2048 -246}\special{pa 2037 -280}\special{pa 2025 -313}%
+\special{pa 2014 -346}\special{pa 2003 -377}\special{pa 1992 -408}\special{pa 1981 -438}%
+\special{pa 1974 -455}\special{pa 1969 -468}\special{pa 1958 -496}\special{pa 1947 -524}%
+\special{pa 1936 -551}\special{pa 1924 -578}\special{pa 1913 -603}\special{pa 1902 -628}%
+\special{pa 1890 -652}\special{pa 1879 -676}\special{pa 1868 -698}\special{pa 1856 -720}%
+\special{pa 1845 -741}\special{pa 1834 -761}\special{pa 1822 -781}\special{pa 1810 -799}%
+\special{pa 1803 -812}\special{pa 1799 -817}\special{pa 1787 -834}\special{pa 1776 -851}%
+\special{pa 1764 -867}\special{pa 1752 -881}\special{pa 1740 -896}\special{pa 1728 -909}%
+\special{pa 1716 -922}\special{pa 1703 -933}\special{pa 1690 -944}\special{pa 1683 -950}%
+\special{pa 1677 -955}\special{pa 1664 -964}\special{pa 1654 -970}\special{pa 1650 -973}%
+\special{pa 1634 -981}\special{pa 1617 -988}\special{pa 1602 -993}\special{pa 1596 -995}%
+\special{pa 1590 -996}\special{pa 1578 -998}\special{pa 1568 -999}\special{pa 1558 -999}%
+\special{pa 1548 -999}\special{pa 1538 -998}\special{pa 1527 -996}\special{pa 1520 -995}%
+\special{pa 1515 -993}\special{pa 1500 -989}\special{pa 1483 -982}\special{pa 1467 -973}%
+\special{pa 1462 -970}\special{pa 1453 -964}\special{pa 1439 -955}\special{pa 1433 -950}%
+\special{pa 1426 -944}\special{pa 1413 -933}\special{pa 1401 -922}\special{pa 1389 -909}%
+\special{pa 1376 -896}\special{pa 1364 -881}\special{pa 1353 -867}\special{pa 1341 -851}%
+\special{pa 1329 -834}\special{pa 1317 -817}\special{pa 1313 -811}\special{pa 1306 -799}%
+\special{pa 1294 -781}\special{pa 1283 -761}\special{pa 1271 -741}\special{pa 1260 -720}%
+\special{pa 1249 -698}\special{pa 1237 -676}\special{pa 1226 -652}\special{pa 1215 -628}%
+\special{pa 1203 -603}\special{pa 1192 -578}\special{pa 1181 -551}\special{pa 1169 -524}%
+\special{pa 1158 -496}\special{pa 1147 -468}\special{pa 1140 -451}\special{pa 1136 -438}%
+\special{pa 1124 -408}\special{pa 1113 -377}\special{pa 1102 -346}\special{pa 1091 -313}%
+\special{pa 1080 -280}\special{pa 1069 -246}\special{pa 1057 -211}\special{pa 1046 -176}%
+\special{pa 1035 -139}\special{pa 1024 -102}\special{pa 1013 -66}%
+\special{fp}%
+\special{pa 1181 176}\special{pa 1234 198}\special{pa 1293 217}\special{pa 1355 232}%
+\special{pa 1421 242}\special{pa 1489 249}\special{pa 1558 251}\special{pa 1627 249}%
+\special{pa 1695 242}\special{pa 1761 231}\special{pa 1824 217}\special{pa 1882 198}%
+\special{pa 1936 176}\special{pa 1983 151}\special{pa 2024 123}\special{pa 2057 92}%
+\special{pa 2082 60}\special{pa 2100 27}\special{pa 2108 -8}\special{pa 2108 -42}%
+\special{pa 2102 -68}%
+\special{fp}%
+\special{pa 1014 -66}\special{pa 1008 -42}\special{pa 1008 -7}\special{pa 1017 27}%
+\special{pa 1034 60}\special{pa 1060 93}\special{pa 1093 123}\special{pa 1134 151}%
+\special{pa 1181 176}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 2103 -64}\special{pa 2100 -71}\special{fp}\special{pa 2088 -100}\special{pa 2084 -107}\special{fp}%
+\special{pa 2065 -132}\special{pa 2060 -138}\special{fp}\special{pa 2038 -159}\special{pa 2032 -165}\special{fp}%
+\special{pa 2008 -183}\special{pa 2001 -188}\special{fp}\special{pa 1975 -205}\special{pa 1968 -209}\special{fp}%
+\special{pa 1941 -223}\special{pa 1933 -227}\special{fp}\special{pa 1905 -238}\special{pa 1897 -241}\special{fp}%
+\special{pa 1868 -252}\special{pa 1861 -255}\special{fp}\special{pa 1831 -264}\special{pa 1823 -266}\special{fp}%
+\special{pa 1793 -273}\special{pa 1785 -275}\special{fp}\special{pa 1755 -282}\special{pa 1747 -283}\special{fp}%
+\special{pa 1717 -288}\special{pa 1709 -289}\special{fp}\special{pa 1678 -293}\special{pa 1670 -294}\special{fp}%
+\special{pa 1639 -297}\special{pa 1631 -298}\special{fp}\special{pa 1600 -299}\special{pa 1592 -299}\special{fp}%
+\special{pa 1561 -300}\special{pa 1553 -300}\special{fp}\special{pa 1522 -299}\special{pa 1514 -299}\special{fp}%
+\special{pa 1483 -298}\special{pa 1475 -297}\special{fp}\special{pa 1444 -294}\special{pa 1436 -293}\special{fp}%
+\special{pa 1406 -289}\special{pa 1398 -288}\special{fp}\special{pa 1367 -283}\special{pa 1359 -282}\special{fp}%
+\special{pa 1329 -275}\special{pa 1321 -273}\special{fp}\special{pa 1291 -266}\special{pa 1283 -263}\special{fp}%
+\special{pa 1254 -254}\special{pa 1246 -251}\special{fp}\special{pa 1217 -241}\special{pa 1210 -238}\special{fp}%
+\special{pa 1181 -226}\special{pa 1174 -222}\special{fp}\special{pa 1147 -208}\special{pa 1140 -204}\special{fp}%
+\special{pa 1114 -187}\special{pa 1107 -182}\special{fp}\special{pa 1083 -163}\special{pa 1077 -158}\special{fp}%
+\special{pa 1055 -136}\special{pa 1050 -130}\special{fp}\special{pa 1032 -105}\special{pa 1028 -98}\special{fp}%
+\special{pa 1016 -70}\special{pa 1013 -62}\special{fp}\special{pn 8}%
+\special{pa 0 -955}\special{pa -2 -954}\special{pa -4 -953}\special{pa -6 -951}%
+\special{pa -8 -950}\special{pa -9 -949}\special{pa -11 -948}\special{pa -13 -946}%
+\special{pa -15 -945}\special{pa -17 -944}\special{pa -19 -942}\special{pa -21 -941}%
+\special{pa -23 -939}\special{pa -25 -938}\special{pa -26 -936}\special{pa -28 -934}%
+\special{pa -30 -932}\special{pa -32 -931}\special{pa -34 -929}\special{pa -36 -927}%
+\special{pa -38 -925}\special{pa -40 -923}\special{pa -41 -921}\special{pa -43 -919}%
+\special{pa -45 -917}\special{pa -47 -915}\special{pa -49 -912}\special{pa -51 -910}%
+\special{pa -53 -908}\special{pa -55 -905}\special{pa -57 -903}\special{pa -58 -901}%
+\special{pa -60 -898}\special{pa -62 -896}\special{pa -64 -893}\special{pa -66 -890}%
+\special{pa -68 -888}\special{pa -70 -885}\special{pa -72 -882}\special{pa -74 -879}%
+\special{pa -75 -876}\special{pa -77 -873}\special{pa -79 -870}\special{pa -81 -867}%
+\special{pa -83 -864}\special{pa -85 -861}\special{pa -87 -858}\special{pa -89 -855}%
+\special{pa -91 -851}\special{pa -92 -848}\special{pa -94 -845}\special{pa -96 -841}%
+\special{pa -98 -838}\special{pa -100 -834}\special{pa -102 -831}\special{pa -104 -827}%
+\special{pa -106 -824}\special{pa -107 -820}\special{pa -109 -816}\special{pa -111 -812}%
+\special{pa -113 -808}\special{pa -115 -805}\special{pa -117 -801}\special{pa -119 -797}%
+\special{pa -121 -793}\special{pa -123 -789}\special{pa -124 -784}\special{pa -126 -780}%
+\special{pa -128 -776}\special{pa -130 -772}\special{pa -132 -767}\special{pa -134 -763}%
+\special{pa -136 -759}\special{pa -138 -754}\special{pa -140 -750}\special{pa -141 -745}%
+\special{pa -143 -740}\special{pa -145 -736}\special{pa -147 -731}\special{pa -149 -726}%
+\special{pa -151 -722}\special{pa -153 -717}\special{pa -155 -712}\special{pa -157 -707}%
+\special{pa -158 -702}\special{pa -160 -697}\special{pa -162 -692}\special{pa -164 -687}%
+\special{pa -166 -681}\special{pa -168 -676}\special{pa -170 -671}\special{pa -172 -666}%
+\special{pa -173 -660}\special{pa -175 -655}\special{pa -177 -649}\special{pa -179 -644}%
+\special{pa -181 -638}\special{pa -183 -633}\special{pa -185 -627}\special{pa -187 -621}%
+\special{pa -189 -616}\special{pa -190 -610}\special{pa -192 -604}\special{pa -194 -598}%
+\special{pa -196 -592}\special{pa -198 -586}\special{pa -200 -580}\special{pa -202 -574}%
+\special{pa -204 -568}\special{pa -206 -562}\special{pa -207 -555}\special{pa -209 -549}%
+\special{pa -211 -543}\special{pa -213 -536}\special{pa -215 -530}\special{pa -217 -523}%
+\special{pa -219 -517}\special{pa -221 -510}\special{pa -223 -504}\special{pa -224 -497}%
+\special{pa -226 -490}\special{pa -228 -484}\special{pa -230 -477}\special{pa -232 -470}%
+\special{pa -234 -463}\special{pa -236 -456}\special{pa -238 -449}\special{pa -239 -442}%
+\special{pa -241 -435}\special{pa -243 -428}\special{pa -245 -421}\special{pa -247 -413}%
+\special{pa -249 -406}\special{pa -251 -399}\special{pa -253 -391}\special{pa -255 -384}%
+\special{pa -256 -377}\special{pa -258 -369}\special{pa -260 -361}\special{pa -262 -354}%
+\special{pa -264 -346}\special{pa -266 -338}\special{pa -268 -331}\special{pa -270 -323}%
+\special{pa -272 -315}\special{pa -273 -307}\special{pa -275 -299}\special{pa -277 -291}%
+\special{pa -279 -283}\special{pa -281 -275}\special{pa -283 -267}\special{pa -285 -259}%
+\special{pa -287 -251}\special{pa -289 -242}\special{pa -290 -234}\special{pa -292 -226}%
+\special{pa -294 -217}\special{pa -296 -209}\special{pa -298 -200}\special{pa -300 -192}%
+\special{pa -302 -183}\special{pa -304 -174}\special{pa -306 -166}\special{pa -307 -157}%
+\special{pa -309 -148}\special{pa -311 -139}\special{pa -313 -130}\special{pa -315 -121}%
+\special{pa -317 -112}\special{pa -319 -103}\special{pa -321 -94}\special{pa -322 -85}%
+\special{pa -324 -76}\special{pa -326 -67}\special{pa -328 -57}\special{pa -330 -48}%
+\special{pa -332 -39}\special{pa -334 -29}\special{pa -336 -20}\special{pa -338 -10}%
+\special{pa -339 -1}\special{pa -341 9}\special{pa -343 19}\special{pa -345 28}%
+\special{pa -347 38}\special{pa -349 48}\special{pa -351 58}\special{pa -353 68}%
+\special{pa -355 78}\special{pa -356 88}\special{pa -358 98}\special{pa -360 108}%
+\special{pa -362 118}\special{pa -364 128}\special{pa -366 139}\special{pa -368 149}%
+\special{pa -370 159}\special{pa -372 170}\special{pa -373 180}\special{pa -375 190}%
+\special{pa -377 201}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -1 -953}\special{pa -2 -952}\special{pa -4 -951}%
+\special{pa -5 -949}\special{pa -6 -948}\special{pa -7 -946}\special{pa -8 -945}%
+\special{pa -9 -943}\special{pa -11 -942}\special{pa -12 -940}\special{pa -13 -938}%
+\special{pa -14 -936}\special{pa -15 -934}\special{pa -16 -933}\special{pa -18 -931}%
+\special{pa -19 -929}\special{pa -20 -927}\special{pa -21 -924}\special{pa -22 -922}%
+\special{pa -23 -920}\special{pa -25 -918}\special{pa -26 -916}\special{pa -27 -913}%
+\special{pa -28 -911}\special{pa -29 -909}\special{pa -30 -906}\special{pa -32 -904}%
+\special{pa -33 -901}\special{pa -34 -898}\special{pa -35 -896}\special{pa -36 -893}%
+\special{pa -38 -890}\special{pa -39 -888}\special{pa -40 -885}\special{pa -41 -882}%
+\special{pa -42 -879}\special{pa -43 -876}\special{pa -45 -873}\special{pa -46 -870}%
+\special{pa -47 -867}\special{pa -48 -863}\special{pa -49 -860}\special{pa -50 -857}%
+\special{pa -52 -854}\special{pa -53 -850}\special{pa -54 -847}\special{pa -55 -843}%
+\special{pa -56 -840}\special{pa -57 -836}\special{pa -59 -833}\special{pa -60 -829}%
+\special{pa -61 -825}\special{pa -62 -822}\special{pa -63 -818}\special{pa -64 -814}%
+\special{pa -66 -810}\special{pa -67 -806}\special{pa -68 -802}\special{pa -69 -798}%
+\special{pa -70 -794}\special{pa -72 -790}\special{pa -73 -786}\special{pa -74 -781}%
+\special{pa -75 -777}\special{pa -76 -773}\special{pa -77 -768}\special{pa -79 -764}%
+\special{pa -80 -760}\special{pa -81 -755}\special{pa -82 -750}\special{pa -83 -746}%
+\special{pa -84 -741}\special{pa -86 -736}\special{pa -87 -732}\special{pa -88 -727}%
+\special{pa -89 -722}\special{pa -90 -717}\special{pa -91 -712}\special{pa -93 -707}%
+\special{pa -94 -702}\special{pa -95 -697}\special{pa -96 -692}\special{pa -97 -687}%
+\special{pa -98 -682}\special{pa -100 -676}\special{pa -101 -671}\special{pa -102 -666}%
+\special{pa -103 -660}\special{pa -104 -655}\special{pa -106 -649}\special{pa -107 -644}%
+\special{pa -108 -638}\special{pa -109 -632}\special{pa -110 -627}\special{pa -111 -621}%
+\special{pa -113 -615}\special{pa -114 -609}\special{pa -115 -603}\special{pa -116 -597}%
+\special{pa -117 -591}\special{pa -118 -585}\special{pa -120 -579}\special{pa -121 -573}%
+\special{pa -122 -567}\special{pa -123 -561}\special{pa -124 -554}\special{pa -125 -548}%
+\special{pa -127 -542}\special{pa -128 -535}\special{pa -129 -529}\special{pa -130 -522}%
+\special{pa -131 -516}\special{pa -132 -509}\special{pa -134 -502}\special{pa -135 -496}%
+\special{pa -136 -489}\special{pa -137 -482}\special{pa -138 -475}\special{pa -140 -468}%
+\special{pa -141 -461}\special{pa -142 -454}\special{pa -143 -447}\special{pa -144 -440}%
+\special{pa -145 -433}\special{pa -147 -426}\special{pa -148 -419}\special{pa -149 -411}%
+\special{pa -150 -404}\special{pa -151 -397}\special{pa -152 -389}\special{pa -154 -382}%
+\special{pa -155 -374}\special{pa -156 -367}\special{pa -157 -359}\special{pa -158 -351}%
+\special{pa -159 -344}\special{pa -161 -336}\special{pa -162 -328}\special{pa -163 -320}%
+\special{pa -164 -312}\special{pa -165 -304}\special{pa -166 -296}\special{pa -168 -288}%
+\special{pa -169 -280}\special{pa -170 -272}\special{pa -171 -264}\special{pa -172 -256}%
+\special{pa -174 -247}\special{pa -175 -239}\special{pa -176 -231}\special{pa -177 -222}%
+\special{pa -178 -214}\special{pa -179 -205}\special{pa -181 -197}\special{pa -182 -188}%
+\special{pa -183 -179}\special{pa -184 -171}\special{pa -185 -162}\special{pa -186 -153}%
+\special{pa -188 -144}\special{pa -189 -135}\special{pa -190 -126}\special{pa -191 -117}%
+\special{pa -192 -108}\special{pa -193 -99}\special{pa -195 -90}\special{pa -196 -81}%
+\special{pa -197 -72}\special{pa -198 -62}\special{pa -199 -53}\special{pa -200 -44}%
+\special{pa -202 -34}\special{pa -203 -25}\special{pa -204 -15}\special{pa -205 -6}%
+\special{pa -206 4}\special{pa -208 14}\special{pa -209 23}\special{pa -210 33}%
+\special{pa -211 43}\special{pa -212 53}\special{pa -213 63}\special{pa -215 73}%
+\special{pa -216 83}\special{pa -217 93}\special{pa -218 103}\special{pa -219 113}%
+\special{pa -220 123}\special{pa -222 134}\special{pa -223 144}\special{pa -224 154}%
+\special{pa -225 165}\special{pa -226 175}\special{pa -227 186}\special{pa -229 196}%
+\special{pa -230 207}\special{pa -231 217}\special{pa -232 228}\special{pa -233 239}%
+\special{pa -235 249}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -0 -953}\special{pa -1 -952}\special{pa -1 -950}%
+\special{pa -1 -949}\special{pa -2 -947}\special{pa -2 -946}\special{pa -2 -944}%
+\special{pa -3 -942}\special{pa -3 -940}\special{pa -3 -939}\special{pa -4 -937}%
+\special{pa -4 -935}\special{pa -4 -933}\special{pa -5 -931}\special{pa -5 -929}%
+\special{pa -6 -927}\special{pa -6 -925}\special{pa -6 -922}\special{pa -7 -920}%
+\special{pa -7 -918}\special{pa -7 -915}\special{pa -8 -913}\special{pa -8 -911}%
+\special{pa -8 -908}\special{pa -9 -906}\special{pa -9 -903}\special{pa -9 -900}%
+\special{pa -10 -898}\special{pa -10 -895}\special{pa -10 -892}\special{pa -11 -889}%
+\special{pa -11 -886}\special{pa -11 -884}\special{pa -12 -881}\special{pa -12 -878}%
+\special{pa -12 -875}\special{pa -13 -871}\special{pa -13 -868}\special{pa -13 -865}%
+\special{pa -14 -862}\special{pa -14 -859}\special{pa -14 -855}\special{pa -15 -852}%
+\special{pa -15 -848}\special{pa -15 -845}\special{pa -16 -841}\special{pa -16 -838}%
+\special{pa -17 -834}\special{pa -17 -830}\special{pa -17 -827}\special{pa -18 -823}%
+\special{pa -18 -819}\special{pa -18 -815}\special{pa -19 -811}\special{pa -19 -807}%
+\special{pa -19 -803}\special{pa -20 -799}\special{pa -20 -795}\special{pa -20 -791}%
+\special{pa -21 -787}\special{pa -21 -782}\special{pa -21 -778}\special{pa -22 -774}%
+\special{pa -22 -769}\special{pa -22 -765}\special{pa -23 -760}\special{pa -23 -756}%
+\special{pa -23 -751}\special{pa -24 -747}\special{pa -24 -742}\special{pa -24 -737}%
+\special{pa -25 -733}\special{pa -25 -728}\special{pa -25 -723}\special{pa -26 -718}%
+\special{pa -26 -713}\special{pa -27 -708}\special{pa -27 -703}\special{pa -27 -698}%
+\special{pa -28 -693}\special{pa -28 -687}\special{pa -28 -682}\special{pa -29 -677}%
+\special{pa -29 -671}\special{pa -29 -666}\special{pa -30 -661}\special{pa -30 -655}%
+\special{pa -30 -650}\special{pa -31 -644}\special{pa -31 -638}\special{pa -31 -633}%
+\special{pa -32 -627}\special{pa -32 -621}\special{pa -32 -615}\special{pa -33 -609}%
+\special{pa -33 -603}\special{pa -33 -597}\special{pa -34 -591}\special{pa -34 -585}%
+\special{pa -34 -579}\special{pa -35 -573}\special{pa -35 -567}\special{pa -35 -561}%
+\special{pa -36 -554}\special{pa -36 -548}\special{pa -37 -542}\special{pa -37 -535}%
+\special{pa -37 -529}\special{pa -38 -522}\special{pa -38 -515}\special{pa -38 -509}%
+\special{pa -39 -502}\special{pa -39 -495}\special{pa -39 -489}\special{pa -40 -482}%
+\special{pa -40 -475}\special{pa -40 -468}\special{pa -41 -461}\special{pa -41 -454}%
+\special{pa -41 -447}\special{pa -42 -440}\special{pa -42 -433}\special{pa -42 -425}%
+\special{pa -43 -418}\special{pa -43 -411}\special{pa -43 -404}\special{pa -44 -396}%
+\special{pa -44 -389}\special{pa -44 -381}\special{pa -45 -374}\special{pa -45 -366}%
+\special{pa -45 -358}\special{pa -46 -351}\special{pa -46 -343}\special{pa -46 -335}%
+\special{pa -47 -327}\special{pa -47 -319}\special{pa -48 -311}\special{pa -48 -304}%
+\special{pa -48 -295}\special{pa -49 -287}\special{pa -49 -279}\special{pa -49 -271}%
+\special{pa -50 -263}\special{pa -50 -255}\special{pa -50 -246}\special{pa -51 -238}%
+\special{pa -51 -230}\special{pa -51 -221}\special{pa -52 -213}\special{pa -52 -204}%
+\special{pa -52 -195}\special{pa -53 -187}\special{pa -53 -178}\special{pa -53 -169}%
+\special{pa -54 -161}\special{pa -54 -152}\special{pa -54 -143}\special{pa -55 -134}%
+\special{pa -55 -125}\special{pa -55 -116}\special{pa -56 -107}\special{pa -56 -98}%
+\special{pa -56 -89}\special{pa -57 -79}\special{pa -57 -70}\special{pa -58 -61}%
+\special{pa -58 -51}\special{pa -58 -42}\special{pa -59 -33}\special{pa -59 -23}%
+\special{pa -59 -13}\special{pa -60 -4}\special{pa -60 6}\special{pa -60 15}%
+\special{pa -61 25}\special{pa -61 35}\special{pa -61 45}\special{pa -62 55}%
+\special{pa -62 65}\special{pa -62 75}\special{pa -63 85}\special{pa -63 95}%
+\special{pa -63 105}\special{pa -64 115}\special{pa -64 125}\special{pa -64 136}%
+\special{pa -65 146}\special{pa -65 156}\special{pa -65 167}\special{pa -66 177}%
+\special{pa -66 188}\special{pa -66 198}\special{pa -67 209}\special{pa -67 219}%
+\special{pa -68 230}\special{pa -68 241}\special{pa -68 252}\special{pa -69 263}%
+\special{pa -69 273}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 1 -953}\special{pa 1 -952}\special{pa 2 -950}%
+\special{pa 2 -949}\special{pa 3 -947}\special{pa 3 -946}\special{pa 4 -944}%
+\special{pa 4 -942}\special{pa 5 -941}\special{pa 5 -939}\special{pa 6 -937}%
+\special{pa 6 -935}\special{pa 7 -933}\special{pa 7 -931}\special{pa 8 -929}%
+\special{pa 8 -927}\special{pa 9 -925}\special{pa 9 -923}\special{pa 10 -920}%
+\special{pa 10 -918}\special{pa 11 -916}\special{pa 11 -913}\special{pa 12 -911}%
+\special{pa 12 -908}\special{pa 13 -906}\special{pa 13 -903}\special{pa 14 -901}%
+\special{pa 14 -898}\special{pa 15 -895}\special{pa 16 -893}\special{pa 16 -890}%
+\special{pa 17 -887}\special{pa 17 -884}\special{pa 18 -881}\special{pa 18 -878}%
+\special{pa 19 -875}\special{pa 19 -872}\special{pa 20 -869}\special{pa 20 -866}%
+\special{pa 21 -862}\special{pa 21 -859}\special{pa 22 -856}\special{pa 22 -852}%
+\special{pa 23 -849}\special{pa 23 -845}\special{pa 24 -842}\special{pa 24 -838}%
+\special{pa 25 -835}\special{pa 25 -831}\special{pa 26 -827}\special{pa 26 -824}%
+\special{pa 27 -820}\special{pa 27 -816}\special{pa 28 -812}\special{pa 28 -808}%
+\special{pa 29 -804}\special{pa 29 -800}\special{pa 30 -796}\special{pa 31 -792}%
+\special{pa 31 -788}\special{pa 32 -783}\special{pa 32 -779}\special{pa 33 -775}%
+\special{pa 33 -770}\special{pa 34 -766}\special{pa 34 -761}\special{pa 35 -757}%
+\special{pa 35 -752}\special{pa 36 -748}\special{pa 36 -743}\special{pa 37 -738}%
+\special{pa 37 -733}\special{pa 38 -729}\special{pa 38 -724}\special{pa 39 -719}%
+\special{pa 39 -714}\special{pa 40 -709}\special{pa 40 -704}\special{pa 41 -699}%
+\special{pa 41 -694}\special{pa 42 -688}\special{pa 42 -683}\special{pa 43 -678}%
+\special{pa 43 -673}\special{pa 44 -667}\special{pa 44 -662}\special{pa 45 -656}%
+\special{pa 46 -651}\special{pa 46 -645}\special{pa 47 -640}\special{pa 47 -634}%
+\special{pa 48 -628}\special{pa 48 -622}\special{pa 49 -617}\special{pa 49 -611}%
+\special{pa 50 -605}\special{pa 50 -599}\special{pa 51 -593}\special{pa 51 -587}%
+\special{pa 52 -581}\special{pa 52 -575}\special{pa 53 -568}\special{pa 53 -562}%
+\special{pa 54 -556}\special{pa 54 -549}\special{pa 55 -543}\special{pa 55 -537}%
+\special{pa 56 -530}\special{pa 56 -524}\special{pa 57 -517}\special{pa 57 -510}%
+\special{pa 58 -504}\special{pa 58 -497}\special{pa 59 -490}\special{pa 60 -483}%
+\special{pa 60 -477}\special{pa 61 -470}\special{pa 61 -463}\special{pa 62 -456}%
+\special{pa 62 -449}\special{pa 63 -441}\special{pa 63 -434}\special{pa 64 -427}%
+\special{pa 64 -420}\special{pa 65 -413}\special{pa 65 -405}\special{pa 66 -398}%
+\special{pa 66 -390}\special{pa 67 -383}\special{pa 67 -375}\special{pa 68 -368}%
+\special{pa 68 -360}\special{pa 69 -352}\special{pa 69 -345}\special{pa 70 -337}%
+\special{pa 70 -329}\special{pa 71 -321}\special{pa 71 -313}\special{pa 72 -305}%
+\special{pa 72 -297}\special{pa 73 -289}\special{pa 73 -281}\special{pa 74 -273}%
+\special{pa 75 -265}\special{pa 75 -257}\special{pa 76 -248}\special{pa 76 -240}%
+\special{pa 77 -232}\special{pa 77 -223}\special{pa 78 -215}\special{pa 78 -206}%
+\special{pa 79 -198}\special{pa 79 -189}\special{pa 80 -180}\special{pa 80 -171}%
+\special{pa 81 -163}\special{pa 81 -154}\special{pa 82 -145}\special{pa 82 -136}%
+\special{pa 83 -127}\special{pa 83 -118}\special{pa 84 -109}\special{pa 84 -100}%
+\special{pa 85 -91}\special{pa 85 -82}\special{pa 86 -72}\special{pa 86 -63}%
+\special{pa 87 -54}\special{pa 87 -44}\special{pa 88 -35}\special{pa 88 -25}%
+\special{pa 89 -16}\special{pa 90 -6}\special{pa 90 3}\special{pa 91 13}%
+\special{pa 91 23}\special{pa 92 33}\special{pa 92 42}\special{pa 93 52}%
+\special{pa 93 62}\special{pa 94 72}\special{pa 94 82}\special{pa 95 92}%
+\special{pa 95 102}\special{pa 96 113}\special{pa 96 123}\special{pa 97 133}%
+\special{pa 97 143}\special{pa 98 154}\special{pa 98 164}\special{pa 99 175}%
+\special{pa 99 185}\special{pa 100 196}\special{pa 100 206}\special{pa 101 217}%
+\special{pa 101 227}\special{pa 102 238}\special{pa 102 249}\special{pa 103 260}%
+\special{pa 103 271}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 1 -953}\special{pa 3 -952}\special{pa 4 -951}%
+\special{pa 5 -949}\special{pa 7 -948}\special{pa 8 -947}\special{pa 9 -945}%
+\special{pa 11 -943}\special{pa 12 -942}\special{pa 13 -940}\special{pa 15 -939}%
+\special{pa 16 -937}\special{pa 17 -935}\special{pa 19 -933}\special{pa 20 -931}%
+\special{pa 21 -929}\special{pa 23 -927}\special{pa 24 -925}\special{pa 25 -923}%
+\special{pa 27 -921}\special{pa 28 -919}\special{pa 29 -917}\special{pa 31 -914}%
+\special{pa 32 -912}\special{pa 33 -910}\special{pa 35 -907}\special{pa 36 -905}%
+\special{pa 37 -902}\special{pa 39 -900}\special{pa 40 -897}\special{pa 41 -894}%
+\special{pa 43 -892}\special{pa 44 -889}\special{pa 45 -886}\special{pa 46 -883}%
+\special{pa 48 -880}\special{pa 49 -877}\special{pa 50 -874}\special{pa 52 -871}%
+\special{pa 53 -868}\special{pa 54 -865}\special{pa 56 -862}\special{pa 57 -859}%
+\special{pa 58 -855}\special{pa 60 -852}\special{pa 61 -849}\special{pa 62 -845}%
+\special{pa 64 -842}\special{pa 65 -838}\special{pa 66 -835}\special{pa 68 -831}%
+\special{pa 69 -827}\special{pa 70 -824}\special{pa 72 -820}\special{pa 73 -816}%
+\special{pa 74 -812}\special{pa 76 -808}\special{pa 77 -804}\special{pa 78 -800}%
+\special{pa 80 -796}\special{pa 81 -792}\special{pa 82 -788}\special{pa 84 -784}%
+\special{pa 85 -780}\special{pa 86 -775}\special{pa 88 -771}\special{pa 89 -767}%
+\special{pa 90 -762}\special{pa 92 -758}\special{pa 93 -753}\special{pa 94 -749}%
+\special{pa 96 -744}\special{pa 97 -739}\special{pa 98 -735}\special{pa 100 -730}%
+\special{pa 101 -725}\special{pa 102 -720}\special{pa 104 -715}\special{pa 105 -710}%
+\special{pa 106 -705}\special{pa 108 -700}\special{pa 109 -695}\special{pa 110 -690}%
+\special{pa 112 -685}\special{pa 113 -680}\special{pa 114 -674}\special{pa 116 -669}%
+\special{pa 117 -664}\special{pa 118 -658}\special{pa 120 -653}\special{pa 121 -647}%
+\special{pa 122 -642}\special{pa 124 -636}\special{pa 125 -630}\special{pa 126 -625}%
+\special{pa 128 -619}\special{pa 129 -613}\special{pa 130 -607}\special{pa 132 -601}%
+\special{pa 133 -595}\special{pa 134 -589}\special{pa 136 -583}\special{pa 137 -577}%
+\special{pa 138 -571}\special{pa 139 -565}\special{pa 141 -559}\special{pa 142 -552}%
+\special{pa 143 -546}\special{pa 145 -540}\special{pa 146 -533}\special{pa 147 -527}%
+\special{pa 149 -520}\special{pa 150 -513}\special{pa 151 -507}\special{pa 153 -500}%
+\special{pa 154 -493}\special{pa 155 -487}\special{pa 157 -480}\special{pa 158 -473}%
+\special{pa 159 -466}\special{pa 161 -459}\special{pa 162 -452}\special{pa 163 -445}%
+\special{pa 165 -438}\special{pa 166 -431}\special{pa 167 -424}\special{pa 169 -416}%
+\special{pa 170 -409}\special{pa 171 -402}\special{pa 173 -394}\special{pa 174 -387}%
+\special{pa 175 -379}\special{pa 177 -372}\special{pa 178 -364}\special{pa 179 -357}%
+\special{pa 181 -349}\special{pa 182 -341}\special{pa 183 -334}\special{pa 185 -326}%
+\special{pa 186 -318}\special{pa 187 -310}\special{pa 189 -302}\special{pa 190 -294}%
+\special{pa 191 -286}\special{pa 193 -278}\special{pa 194 -270}\special{pa 195 -261}%
+\special{pa 197 -253}\special{pa 198 -245}\special{pa 199 -237}\special{pa 201 -228}%
+\special{pa 202 -220}\special{pa 203 -211}\special{pa 205 -203}\special{pa 206 -194}%
+\special{pa 207 -186}\special{pa 209 -177}\special{pa 210 -168}\special{pa 211 -159}%
+\special{pa 213 -151}\special{pa 214 -142}\special{pa 215 -133}\special{pa 217 -124}%
+\special{pa 218 -115}\special{pa 219 -106}\special{pa 221 -97}\special{pa 222 -87}%
+\special{pa 223 -78}\special{pa 225 -69}\special{pa 226 -60}\special{pa 227 -50}%
+\special{pa 229 -41}\special{pa 230 -32}\special{pa 231 -22}\special{pa 232 -12}%
+\special{pa 234 -3}\special{pa 235 7}\special{pa 236 16}\special{pa 238 26}%
+\special{pa 239 36}\special{pa 240 46}\special{pa 242 56}\special{pa 243 66}%
+\special{pa 244 75}\special{pa 246 86}\special{pa 247 96}\special{pa 248 106}%
+\special{pa 250 116}\special{pa 251 126}\special{pa 252 136}\special{pa 254 147}%
+\special{pa 255 157}\special{pa 256 167}\special{pa 258 178}\special{pa 259 188}%
+\special{pa 260 199}\special{pa 262 209}\special{pa 263 220}\special{pa 264 231}%
+\special{pa 266 241}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 2 -954}\special{pa 4 -953}\special{pa 6 -952}%
+\special{pa 8 -951}\special{pa 10 -949}\special{pa 12 -948}\special{pa 14 -947}%
+\special{pa 16 -946}\special{pa 18 -944}\special{pa 20 -943}\special{pa 22 -941}%
+\special{pa 24 -940}\special{pa 26 -938}\special{pa 28 -937}\special{pa 30 -935}%
+\special{pa 32 -933}\special{pa 34 -932}\special{pa 36 -930}\special{pa 38 -928}%
+\special{pa 40 -926}\special{pa 42 -924}\special{pa 44 -922}\special{pa 46 -920}%
+\special{pa 48 -918}\special{pa 50 -916}\special{pa 52 -914}\special{pa 54 -912}%
+\special{pa 56 -910}\special{pa 58 -907}\special{pa 60 -905}\special{pa 62 -903}%
+\special{pa 64 -900}\special{pa 66 -898}\special{pa 68 -895}\special{pa 70 -892}%
+\special{pa 72 -890}\special{pa 74 -887}\special{pa 76 -884}\special{pa 78 -882}%
+\special{pa 80 -879}\special{pa 82 -876}\special{pa 84 -873}\special{pa 86 -870}%
+\special{pa 88 -867}\special{pa 90 -864}\special{pa 92 -861}\special{pa 94 -858}%
+\special{pa 96 -854}\special{pa 98 -851}\special{pa 100 -848}\special{pa 102 -845}%
+\special{pa 105 -841}\special{pa 107 -838}\special{pa 109 -834}\special{pa 111 -831}%
+\special{pa 113 -827}\special{pa 115 -823}\special{pa 117 -820}\special{pa 119 -816}%
+\special{pa 121 -812}\special{pa 123 -808}\special{pa 125 -804}\special{pa 127 -801}%
+\special{pa 129 -797}\special{pa 131 -793}\special{pa 133 -788}\special{pa 135 -784}%
+\special{pa 137 -780}\special{pa 139 -776}\special{pa 141 -772}\special{pa 143 -767}%
+\special{pa 145 -763}\special{pa 147 -759}\special{pa 149 -754}\special{pa 151 -750}%
+\special{pa 153 -745}\special{pa 155 -741}\special{pa 157 -736}\special{pa 159 -731}%
+\special{pa 161 -726}\special{pa 163 -722}\special{pa 165 -717}\special{pa 167 -712}%
+\special{pa 169 -707}\special{pa 171 -702}\special{pa 173 -697}\special{pa 175 -692}%
+\special{pa 177 -687}\special{pa 179 -682}\special{pa 181 -676}\special{pa 183 -671}%
+\special{pa 185 -666}\special{pa 187 -661}\special{pa 189 -655}\special{pa 191 -650}%
+\special{pa 193 -644}\special{pa 195 -639}\special{pa 197 -633}\special{pa 199 -627}%
+\special{pa 201 -622}\special{pa 203 -616}\special{pa 205 -610}\special{pa 207 -604}%
+\special{pa 209 -598}\special{pa 211 -593}\special{pa 213 -587}\special{pa 215 -581}%
+\special{pa 217 -574}\special{pa 219 -568}\special{pa 221 -562}\special{pa 223 -556}%
+\special{pa 225 -550}\special{pa 227 -543}\special{pa 229 -537}\special{pa 231 -531}%
+\special{pa 233 -524}\special{pa 235 -518}\special{pa 237 -511}\special{pa 239 -504}%
+\special{pa 241 -498}\special{pa 243 -491}\special{pa 245 -484}\special{pa 247 -478}%
+\special{pa 249 -471}\special{pa 251 -464}\special{pa 253 -457}\special{pa 255 -450}%
+\special{pa 257 -443}\special{pa 259 -436}\special{pa 261 -429}\special{pa 263 -422}%
+\special{pa 265 -414}\special{pa 267 -407}\special{pa 269 -400}\special{pa 271 -392}%
+\special{pa 273 -385}\special{pa 275 -378}\special{pa 277 -370}\special{pa 279 -362}%
+\special{pa 281 -355}\special{pa 283 -347}\special{pa 285 -340}\special{pa 287 -332}%
+\special{pa 289 -324}\special{pa 291 -316}\special{pa 293 -308}\special{pa 295 -300}%
+\special{pa 297 -292}\special{pa 299 -284}\special{pa 301 -276}\special{pa 303 -268}%
+\special{pa 305 -260}\special{pa 307 -252}\special{pa 309 -243}\special{pa 311 -235}%
+\special{pa 314 -227}\special{pa 316 -218}\special{pa 318 -210}\special{pa 320 -201}%
+\special{pa 322 -193}\special{pa 324 -184}\special{pa 326 -176}\special{pa 328 -167}%
+\special{pa 330 -158}\special{pa 332 -149}\special{pa 334 -140}\special{pa 336 -132}%
+\special{pa 338 -123}\special{pa 340 -114}\special{pa 342 -105}\special{pa 344 -96}%
+\special{pa 346 -86}\special{pa 348 -77}\special{pa 350 -68}\special{pa 352 -59}%
+\special{pa 354 -49}\special{pa 356 -40}\special{pa 358 -31}\special{pa 360 -21}%
+\special{pa 362 -12}\special{pa 364 -2}\special{pa 366 8}\special{pa 368 17}%
+\special{pa 370 27}\special{pa 372 37}\special{pa 374 46}\special{pa 376 56}%
+\special{pa 378 66}\special{pa 380 76}\special{pa 382 86}\special{pa 384 96}%
+\special{pa 386 106}\special{pa 388 116}\special{pa 390 127}\special{pa 392 137}%
+\special{pa 394 147}\special{pa 396 157}\special{pa 398 168}\special{pa 400 178}%
+\special{pa 402 189}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 2 -954}\special{pa 5 -953}\special{pa 7 -953}%
+\special{pa 10 -952}\special{pa 12 -951}\special{pa 15 -950}\special{pa 17 -949}%
+\special{pa 20 -948}\special{pa 22 -947}\special{pa 25 -946}\special{pa 27 -945}%
+\special{pa 30 -944}\special{pa 32 -943}\special{pa 35 -942}\special{pa 37 -941}%
+\special{pa 40 -939}\special{pa 42 -938}\special{pa 45 -936}\special{pa 47 -935}%
+\special{pa 50 -933}\special{pa 52 -932}\special{pa 55 -930}\special{pa 57 -929}%
+\special{pa 60 -927}\special{pa 62 -925}\special{pa 65 -923}\special{pa 67 -921}%
+\special{pa 70 -920}\special{pa 72 -918}\special{pa 75 -916}\special{pa 77 -914}%
+\special{pa 80 -911}\special{pa 82 -909}\special{pa 85 -907}\special{pa 87 -905}%
+\special{pa 90 -903}\special{pa 92 -900}\special{pa 95 -898}\special{pa 97 -896}%
+\special{pa 100 -893}\special{pa 102 -891}\special{pa 105 -888}\special{pa 107 -885}%
+\special{pa 110 -883}\special{pa 112 -880}\special{pa 115 -877}\special{pa 117 -874}%
+\special{pa 120 -872}\special{pa 122 -869}\special{pa 125 -866}\special{pa 127 -863}%
+\special{pa 130 -860}\special{pa 132 -857}\special{pa 135 -853}\special{pa 137 -850}%
+\special{pa 140 -847}\special{pa 142 -844}\special{pa 145 -840}\special{pa 147 -837}%
+\special{pa 150 -834}\special{pa 152 -830}\special{pa 155 -827}\special{pa 157 -823}%
+\special{pa 160 -819}\special{pa 162 -816}\special{pa 165 -812}\special{pa 167 -808}%
+\special{pa 170 -804}\special{pa 172 -801}\special{pa 175 -797}\special{pa 177 -793}%
+\special{pa 180 -789}\special{pa 182 -785}\special{pa 185 -781}\special{pa 187 -776}%
+\special{pa 190 -772}\special{pa 192 -768}\special{pa 195 -764}\special{pa 197 -759}%
+\special{pa 200 -755}\special{pa 202 -751}\special{pa 205 -746}\special{pa 207 -742}%
+\special{pa 210 -737}\special{pa 212 -732}\special{pa 214 -728}\special{pa 217 -723}%
+\special{pa 219 -718}\special{pa 222 -713}\special{pa 224 -709}\special{pa 227 -704}%
+\special{pa 229 -699}\special{pa 232 -694}\special{pa 234 -689}\special{pa 237 -684}%
+\special{pa 239 -678}\special{pa 242 -673}\special{pa 244 -668}\special{pa 247 -663}%
+\special{pa 249 -657}\special{pa 252 -652}\special{pa 254 -647}\special{pa 257 -641}%
+\special{pa 259 -636}\special{pa 262 -630}\special{pa 264 -624}\special{pa 267 -619}%
+\special{pa 269 -613}\special{pa 272 -607}\special{pa 274 -601}\special{pa 277 -596}%
+\special{pa 279 -590}\special{pa 282 -584}\special{pa 284 -578}\special{pa 287 -572}%
+\special{pa 289 -566}\special{pa 292 -559}\special{pa 294 -553}\special{pa 297 -547}%
+\special{pa 299 -541}\special{pa 302 -534}\special{pa 304 -528}\special{pa 307 -521}%
+\special{pa 309 -515}\special{pa 312 -508}\special{pa 314 -502}\special{pa 317 -495}%
+\special{pa 319 -489}\special{pa 322 -482}\special{pa 324 -475}\special{pa 327 -468}%
+\special{pa 329 -461}\special{pa 332 -455}\special{pa 334 -448}\special{pa 337 -441}%
+\special{pa 339 -434}\special{pa 342 -426}\special{pa 344 -419}\special{pa 347 -412}%
+\special{pa 349 -405}\special{pa 352 -398}\special{pa 354 -390}\special{pa 357 -383}%
+\special{pa 359 -375}\special{pa 362 -368}\special{pa 364 -360}\special{pa 367 -353}%
+\special{pa 369 -345}\special{pa 372 -337}\special{pa 374 -330}\special{pa 377 -322}%
+\special{pa 379 -314}\special{pa 382 -306}\special{pa 384 -298}\special{pa 387 -290}%
+\special{pa 389 -282}\special{pa 392 -274}\special{pa 394 -266}\special{pa 397 -258}%
+\special{pa 399 -250}\special{pa 402 -242}\special{pa 404 -233}\special{pa 407 -225}%
+\special{pa 409 -217}\special{pa 412 -208}\special{pa 414 -200}\special{pa 417 -191}%
+\special{pa 419 -183}\special{pa 421 -174}\special{pa 424 -165}\special{pa 426 -157}%
+\special{pa 429 -148}\special{pa 431 -139}\special{pa 434 -130}\special{pa 436 -121}%
+\special{pa 439 -112}\special{pa 441 -103}\special{pa 444 -94}\special{pa 446 -85}%
+\special{pa 449 -76}\special{pa 451 -67}\special{pa 454 -57}\special{pa 456 -48}%
+\special{pa 459 -39}\special{pa 461 -29}\special{pa 464 -20}\special{pa 466 -10}%
+\special{pa 469 -1}\special{pa 471 9}\special{pa 474 18}\special{pa 476 28}%
+\special{pa 479 38}\special{pa 481 47}\special{pa 484 57}\special{pa 486 67}%
+\special{pa 489 77}\special{pa 491 87}\special{pa 494 97}\special{pa 496 107}%
+\special{pa 499 117}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 3 -954}\special{pa 5 -954}\special{pa 8 -954}%
+\special{pa 11 -954}\special{pa 14 -953}\special{pa 16 -953}\special{pa 19 -952}%
+\special{pa 22 -952}\special{pa 25 -951}\special{pa 27 -951}\special{pa 30 -950}%
+\special{pa 33 -949}\special{pa 36 -948}\special{pa 38 -948}\special{pa 41 -947}%
+\special{pa 44 -946}\special{pa 46 -945}\special{pa 49 -944}\special{pa 52 -943}%
+\special{pa 55 -942}\special{pa 57 -941}\special{pa 60 -939}\special{pa 63 -938}%
+\special{pa 66 -937}\special{pa 68 -935}\special{pa 71 -934}\special{pa 74 -933}%
+\special{pa 77 -931}\special{pa 79 -930}\special{pa 82 -928}\special{pa 85 -926}%
+\special{pa 87 -925}\special{pa 90 -923}\special{pa 93 -921}\special{pa 96 -919}%
+\special{pa 98 -918}\special{pa 101 -916}\special{pa 104 -914}\special{pa 107 -912}%
+\special{pa 109 -910}\special{pa 112 -907}\special{pa 115 -905}\special{pa 118 -903}%
+\special{pa 120 -901}\special{pa 123 -899}\special{pa 126 -896}\special{pa 129 -894}%
+\special{pa 131 -891}\special{pa 134 -889}\special{pa 137 -886}\special{pa 139 -884}%
+\special{pa 142 -881}\special{pa 145 -879}\special{pa 148 -876}\special{pa 150 -873}%
+\special{pa 153 -870}\special{pa 156 -867}\special{pa 159 -864}\special{pa 161 -861}%
+\special{pa 164 -858}\special{pa 167 -855}\special{pa 170 -852}\special{pa 172 -849}%
+\special{pa 175 -846}\special{pa 178 -843}\special{pa 180 -839}\special{pa 183 -836}%
+\special{pa 186 -833}\special{pa 189 -829}\special{pa 191 -826}\special{pa 194 -822}%
+\special{pa 197 -819}\special{pa 200 -815}\special{pa 202 -811}\special{pa 205 -808}%
+\special{pa 208 -804}\special{pa 211 -800}\special{pa 213 -796}\special{pa 216 -792}%
+\special{pa 219 -788}\special{pa 221 -784}\special{pa 224 -780}\special{pa 227 -776}%
+\special{pa 230 -772}\special{pa 232 -768}\special{pa 235 -763}\special{pa 238 -759}%
+\special{pa 241 -755}\special{pa 243 -750}\special{pa 246 -746}\special{pa 249 -741}%
+\special{pa 252 -737}\special{pa 254 -732}\special{pa 257 -728}\special{pa 260 -723}%
+\special{pa 262 -718}\special{pa 265 -713}\special{pa 268 -709}\special{pa 271 -704}%
+\special{pa 273 -699}\special{pa 276 -694}\special{pa 279 -689}\special{pa 282 -684}%
+\special{pa 284 -679}\special{pa 287 -673}\special{pa 290 -668}\special{pa 293 -663}%
+\special{pa 295 -658}\special{pa 298 -652}\special{pa 301 -647}\special{pa 304 -641}%
+\special{pa 306 -636}\special{pa 309 -630}\special{pa 312 -625}\special{pa 314 -619}%
+\special{pa 317 -614}\special{pa 320 -608}\special{pa 323 -602}\special{pa 325 -596}%
+\special{pa 328 -590}\special{pa 331 -584}\special{pa 334 -578}\special{pa 336 -572}%
+\special{pa 339 -566}\special{pa 342 -560}\special{pa 345 -554}\special{pa 347 -548}%
+\special{pa 350 -542}\special{pa 353 -535}\special{pa 355 -529}\special{pa 358 -523}%
+\special{pa 361 -516}\special{pa 364 -510}\special{pa 366 -503}\special{pa 369 -496}%
+\special{pa 372 -490}\special{pa 375 -483}\special{pa 377 -476}\special{pa 380 -470}%
+\special{pa 383 -463}\special{pa 386 -456}\special{pa 388 -449}\special{pa 391 -442}%
+\special{pa 394 -435}\special{pa 396 -428}\special{pa 399 -421}\special{pa 402 -414}%
+\special{pa 405 -406}\special{pa 407 -399}\special{pa 410 -392}\special{pa 413 -384}%
+\special{pa 416 -377}\special{pa 418 -370}\special{pa 421 -362}\special{pa 424 -355}%
+\special{pa 427 -347}\special{pa 429 -339}\special{pa 432 -332}\special{pa 435 -324}%
+\special{pa 437 -316}\special{pa 440 -308}\special{pa 443 -300}\special{pa 446 -292}%
+\special{pa 448 -285}\special{pa 451 -276}\special{pa 454 -268}\special{pa 457 -260}%
+\special{pa 459 -252}\special{pa 462 -244}\special{pa 465 -236}\special{pa 468 -227}%
+\special{pa 470 -219}\special{pa 473 -211}\special{pa 476 -202}\special{pa 479 -194}%
+\special{pa 481 -185}\special{pa 484 -176}\special{pa 487 -168}\special{pa 489 -159}%
+\special{pa 492 -150}\special{pa 495 -142}\special{pa 498 -133}\special{pa 500 -124}%
+\special{pa 503 -115}\special{pa 506 -106}\special{pa 509 -97}\special{pa 511 -88}%
+\special{pa 514 -79}\special{pa 517 -70}\special{pa 520 -60}\special{pa 522 -51}%
+\special{pa 525 -42}\special{pa 528 -32}\special{pa 530 -23}\special{pa 533 -14}%
+\special{pa 536 -4}\special{pa 539 6}\special{pa 541 15}\special{pa 544 25}%
+\special{pa 547 34}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 3 -955}\special{pa 5 -955}\special{pa 8 -955}%
+\special{pa 11 -955}\special{pa 14 -955}\special{pa 16 -955}\special{pa 19 -955}%
+\special{pa 22 -955}\special{pa 24 -955}\special{pa 27 -955}\special{pa 30 -955}%
+\special{pa 32 -954}\special{pa 35 -954}\special{pa 38 -954}\special{pa 41 -953}%
+\special{pa 43 -953}\special{pa 46 -952}\special{pa 49 -952}\special{pa 51 -951}%
+\special{pa 54 -950}\special{pa 57 -950}\special{pa 60 -949}\special{pa 62 -948}%
+\special{pa 65 -947}\special{pa 68 -946}\special{pa 70 -945}\special{pa 73 -944}%
+\special{pa 76 -943}\special{pa 79 -942}\special{pa 81 -941}\special{pa 84 -940}%
+\special{pa 87 -939}\special{pa 89 -937}\special{pa 92 -936}\special{pa 95 -934}%
+\special{pa 97 -933}\special{pa 100 -932}\special{pa 103 -930}\special{pa 106 -928}%
+\special{pa 108 -927}\special{pa 111 -925}\special{pa 114 -923}\special{pa 116 -922}%
+\special{pa 119 -920}\special{pa 122 -918}\special{pa 125 -916}\special{pa 127 -914}%
+\special{pa 130 -912}\special{pa 133 -910}\special{pa 135 -908}\special{pa 138 -906}%
+\special{pa 141 -904}\special{pa 143 -901}\special{pa 146 -899}\special{pa 149 -897}%
+\special{pa 152 -894}\special{pa 154 -892}\special{pa 157 -889}\special{pa 160 -887}%
+\special{pa 162 -884}\special{pa 165 -882}\special{pa 168 -879}\special{pa 171 -876}%
+\special{pa 173 -873}\special{pa 176 -871}\special{pa 179 -868}\special{pa 181 -865}%
+\special{pa 184 -862}\special{pa 187 -859}\special{pa 189 -856}\special{pa 192 -853}%
+\special{pa 195 -850}\special{pa 198 -846}\special{pa 200 -843}\special{pa 203 -840}%
+\special{pa 206 -836}\special{pa 208 -833}\special{pa 211 -830}\special{pa 214 -826}%
+\special{pa 217 -823}\special{pa 219 -819}\special{pa 222 -815}\special{pa 225 -812}%
+\special{pa 227 -808}\special{pa 230 -804}\special{pa 233 -800}\special{pa 236 -797}%
+\special{pa 238 -793}\special{pa 241 -789}\special{pa 244 -785}\special{pa 246 -781}%
+\special{pa 249 -776}\special{pa 252 -772}\special{pa 254 -768}\special{pa 257 -764}%
+\special{pa 260 -760}\special{pa 263 -755}\special{pa 265 -751}\special{pa 268 -746}%
+\special{pa 271 -742}\special{pa 273 -737}\special{pa 276 -733}\special{pa 279 -728}%
+\special{pa 282 -723}\special{pa 284 -719}\special{pa 287 -714}\special{pa 290 -709}%
+\special{pa 292 -704}\special{pa 295 -699}\special{pa 298 -694}\special{pa 300 -689}%
+\special{pa 303 -684}\special{pa 306 -679}\special{pa 309 -674}\special{pa 311 -669}%
+\special{pa 314 -664}\special{pa 317 -658}\special{pa 319 -653}\special{pa 322 -647}%
+\special{pa 325 -642}\special{pa 328 -637}\special{pa 330 -631}\special{pa 333 -625}%
+\special{pa 336 -620}\special{pa 338 -614}\special{pa 341 -608}\special{pa 344 -603}%
+\special{pa 346 -597}\special{pa 349 -591}\special{pa 352 -585}\special{pa 355 -579}%
+\special{pa 357 -573}\special{pa 360 -567}\special{pa 363 -561}\special{pa 365 -555}%
+\special{pa 368 -548}\special{pa 371 -542}\special{pa 374 -536}\special{pa 376 -530}%
+\special{pa 379 -523}\special{pa 382 -517}\special{pa 384 -510}\special{pa 387 -504}%
+\special{pa 390 -497}\special{pa 393 -490}\special{pa 395 -484}\special{pa 398 -477}%
+\special{pa 401 -470}\special{pa 403 -463}\special{pa 406 -456}\special{pa 409 -450}%
+\special{pa 411 -443}\special{pa 414 -436}\special{pa 417 -428}\special{pa 420 -421}%
+\special{pa 422 -414}\special{pa 425 -407}\special{pa 428 -400}\special{pa 430 -392}%
+\special{pa 433 -385}\special{pa 436 -378}\special{pa 439 -370}\special{pa 441 -363}%
+\special{pa 444 -355}\special{pa 447 -348}\special{pa 449 -340}\special{pa 452 -332}%
+\special{pa 455 -325}\special{pa 457 -317}\special{pa 460 -309}\special{pa 463 -301}%
+\special{pa 466 -293}\special{pa 468 -285}\special{pa 471 -277}\special{pa 474 -269}%
+\special{pa 476 -261}\special{pa 479 -253}\special{pa 482 -245}\special{pa 485 -236}%
+\special{pa 487 -228}\special{pa 490 -220}\special{pa 493 -211}\special{pa 495 -203}%
+\special{pa 498 -194}\special{pa 501 -186}\special{pa 503 -177}\special{pa 506 -168}%
+\special{pa 509 -160}\special{pa 512 -151}\special{pa 514 -142}\special{pa 517 -133}%
+\special{pa 520 -125}\special{pa 522 -116}\special{pa 525 -107}\special{pa 528 -98}%
+\special{pa 531 -89}\special{pa 533 -79}\special{pa 536 -70}\special{pa 539 -61}%
+\special{pa 541 -52}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 2 -955}\special{pa 5 -956}\special{pa 7 -956}%
+\special{pa 10 -957}\special{pa 12 -957}\special{pa 14 -958}\special{pa 17 -958}%
+\special{pa 19 -958}\special{pa 22 -959}\special{pa 24 -959}\special{pa 27 -959}%
+\special{pa 29 -959}\special{pa 31 -959}\special{pa 34 -959}\special{pa 36 -959}%
+\special{pa 39 -959}\special{pa 41 -959}\special{pa 43 -959}\special{pa 46 -959}%
+\special{pa 48 -958}\special{pa 51 -958}\special{pa 53 -958}\special{pa 56 -957}%
+\special{pa 58 -957}\special{pa 60 -956}\special{pa 63 -956}\special{pa 65 -955}%
+\special{pa 68 -955}\special{pa 70 -954}\special{pa 72 -953}\special{pa 75 -952}%
+\special{pa 77 -951}\special{pa 80 -951}\special{pa 82 -950}\special{pa 85 -949}%
+\special{pa 87 -948}\special{pa 89 -947}\special{pa 92 -945}\special{pa 94 -944}%
+\special{pa 97 -943}\special{pa 99 -942}\special{pa 101 -940}\special{pa 104 -939}%
+\special{pa 106 -938}\special{pa 109 -936}\special{pa 111 -935}\special{pa 113 -933}%
+\special{pa 116 -932}\special{pa 118 -930}\special{pa 121 -928}\special{pa 123 -926}%
+\special{pa 126 -925}\special{pa 128 -923}\special{pa 130 -921}\special{pa 133 -919}%
+\special{pa 135 -917}\special{pa 138 -915}\special{pa 140 -913}\special{pa 142 -911}%
+\special{pa 145 -909}\special{pa 147 -906}\special{pa 150 -904}\special{pa 152 -902}%
+\special{pa 155 -899}\special{pa 157 -897}\special{pa 159 -895}\special{pa 162 -892}%
+\special{pa 164 -889}\special{pa 167 -887}\special{pa 169 -884}\special{pa 171 -882}%
+\special{pa 174 -879}\special{pa 176 -876}\special{pa 179 -873}\special{pa 181 -870}%
+\special{pa 184 -867}\special{pa 186 -864}\special{pa 188 -861}\special{pa 191 -858}%
+\special{pa 193 -855}\special{pa 196 -852}\special{pa 198 -849}\special{pa 200 -845}%
+\special{pa 203 -842}\special{pa 205 -839}\special{pa 208 -835}\special{pa 210 -832}%
+\special{pa 212 -828}\special{pa 215 -825}\special{pa 217 -821}\special{pa 220 -817}%
+\special{pa 222 -814}\special{pa 225 -810}\special{pa 227 -806}\special{pa 229 -802}%
+\special{pa 232 -798}\special{pa 234 -795}\special{pa 237 -791}\special{pa 239 -787}%
+\special{pa 241 -782}\special{pa 244 -778}\special{pa 246 -774}\special{pa 249 -770}%
+\special{pa 251 -766}\special{pa 254 -761}\special{pa 256 -757}\special{pa 258 -752}%
+\special{pa 261 -748}\special{pa 263 -744}\special{pa 266 -739}\special{pa 268 -734}%
+\special{pa 270 -730}\special{pa 273 -725}\special{pa 275 -720}\special{pa 278 -715}%
+\special{pa 280 -711}\special{pa 283 -706}\special{pa 285 -701}\special{pa 287 -696}%
+\special{pa 290 -691}\special{pa 292 -686}\special{pa 295 -680}\special{pa 297 -675}%
+\special{pa 299 -670}\special{pa 302 -665}\special{pa 304 -659}\special{pa 307 -654}%
+\special{pa 309 -649}\special{pa 311 -643}\special{pa 314 -638}\special{pa 316 -632}%
+\special{pa 319 -627}\special{pa 321 -621}\special{pa 324 -615}\special{pa 326 -609}%
+\special{pa 328 -604}\special{pa 331 -598}\special{pa 333 -592}\special{pa 336 -586}%
+\special{pa 338 -580}\special{pa 340 -574}\special{pa 343 -568}\special{pa 345 -562}%
+\special{pa 348 -555}\special{pa 350 -549}\special{pa 353 -543}\special{pa 355 -537}%
+\special{pa 357 -530}\special{pa 360 -524}\special{pa 362 -517}\special{pa 365 -511}%
+\special{pa 367 -504}\special{pa 369 -498}\special{pa 372 -491}\special{pa 374 -484}%
+\special{pa 377 -477}\special{pa 379 -471}\special{pa 381 -464}\special{pa 384 -457}%
+\special{pa 386 -450}\special{pa 389 -443}\special{pa 391 -436}\special{pa 394 -429}%
+\special{pa 396 -422}\special{pa 398 -415}\special{pa 401 -407}\special{pa 403 -400}%
+\special{pa 406 -393}\special{pa 408 -385}\special{pa 410 -378}\special{pa 413 -370}%
+\special{pa 415 -363}\special{pa 418 -355}\special{pa 420 -348}\special{pa 423 -340}%
+\special{pa 425 -332}\special{pa 427 -325}\special{pa 430 -317}\special{pa 432 -309}%
+\special{pa 435 -301}\special{pa 437 -293}\special{pa 439 -285}\special{pa 442 -277}%
+\special{pa 444 -269}\special{pa 447 -261}\special{pa 449 -253}\special{pa 452 -244}%
+\special{pa 454 -236}\special{pa 456 -228}\special{pa 459 -219}\special{pa 461 -211}%
+\special{pa 464 -202}\special{pa 466 -194}\special{pa 468 -185}\special{pa 471 -177}%
+\special{pa 473 -168}\special{pa 476 -159}\special{pa 478 -151}\special{pa 480 -142}%
+\special{pa 483 -133}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 2 -956}\special{pa 4 -957}\special{pa 6 -957}%
+\special{pa 8 -958}\special{pa 9 -959}\special{pa 11 -960}\special{pa 13 -961}%
+\special{pa 15 -961}\special{pa 17 -962}\special{pa 19 -962}\special{pa 21 -963}%
+\special{pa 23 -963}\special{pa 25 -964}\special{pa 26 -964}\special{pa 28 -964}%
+\special{pa 30 -965}\special{pa 32 -965}\special{pa 34 -965}\special{pa 36 -965}%
+\special{pa 38 -965}\special{pa 40 -965}\special{pa 41 -965}\special{pa 43 -965}%
+\special{pa 45 -965}\special{pa 47 -965}\special{pa 49 -965}\special{pa 51 -964}%
+\special{pa 53 -964}\special{pa 55 -964}\special{pa 57 -963}\special{pa 58 -963}%
+\special{pa 60 -962}\special{pa 62 -962}\special{pa 64 -961}\special{pa 66 -961}%
+\special{pa 68 -960}\special{pa 70 -959}\special{pa 72 -958}\special{pa 74 -958}%
+\special{pa 75 -957}\special{pa 77 -956}\special{pa 79 -955}\special{pa 81 -954}%
+\special{pa 83 -953}\special{pa 85 -952}\special{pa 87 -950}\special{pa 89 -949}%
+\special{pa 91 -948}\special{pa 92 -947}\special{pa 94 -945}\special{pa 96 -944}%
+\special{pa 98 -942}\special{pa 100 -941}\special{pa 102 -939}\special{pa 104 -938}%
+\special{pa 106 -936}\special{pa 107 -934}\special{pa 109 -933}\special{pa 111 -931}%
+\special{pa 113 -929}\special{pa 115 -927}\special{pa 117 -925}\special{pa 119 -923}%
+\special{pa 121 -921}\special{pa 123 -919}\special{pa 124 -917}\special{pa 126 -915}%
+\special{pa 128 -913}\special{pa 130 -910}\special{pa 132 -908}\special{pa 134 -906}%
+\special{pa 136 -903}\special{pa 138 -901}\special{pa 140 -898}\special{pa 141 -896}%
+\special{pa 143 -893}\special{pa 145 -891}\special{pa 147 -888}\special{pa 149 -885}%
+\special{pa 151 -882}\special{pa 153 -879}\special{pa 155 -877}\special{pa 157 -874}%
+\special{pa 158 -871}\special{pa 160 -868}\special{pa 162 -865}\special{pa 164 -861}%
+\special{pa 166 -858}\special{pa 168 -855}\special{pa 170 -852}\special{pa 172 -848}%
+\special{pa 173 -845}\special{pa 175 -842}\special{pa 177 -838}\special{pa 179 -835}%
+\special{pa 181 -831}\special{pa 183 -828}\special{pa 185 -824}\special{pa 187 -820}%
+\special{pa 189 -816}\special{pa 190 -813}\special{pa 192 -809}\special{pa 194 -805}%
+\special{pa 196 -801}\special{pa 198 -797}\special{pa 200 -793}\special{pa 202 -789}%
+\special{pa 204 -785}\special{pa 206 -781}\special{pa 207 -776}\special{pa 209 -772}%
+\special{pa 211 -768}\special{pa 213 -763}\special{pa 215 -759}\special{pa 217 -755}%
+\special{pa 219 -750}\special{pa 221 -746}\special{pa 223 -741}\special{pa 224 -736}%
+\special{pa 226 -732}\special{pa 228 -727}\special{pa 230 -722}\special{pa 232 -717}%
+\special{pa 234 -712}\special{pa 236 -707}\special{pa 238 -702}\special{pa 239 -697}%
+\special{pa 241 -692}\special{pa 243 -687}\special{pa 245 -682}\special{pa 247 -677}%
+\special{pa 249 -671}\special{pa 251 -666}\special{pa 253 -661}\special{pa 255 -655}%
+\special{pa 256 -650}\special{pa 258 -644}\special{pa 260 -639}\special{pa 262 -633}%
+\special{pa 264 -628}\special{pa 266 -622}\special{pa 268 -616}\special{pa 270 -610}%
+\special{pa 272 -604}\special{pa 273 -599}\special{pa 275 -593}\special{pa 277 -587}%
+\special{pa 279 -581}\special{pa 281 -575}\special{pa 283 -568}\special{pa 285 -562}%
+\special{pa 287 -556}\special{pa 289 -550}\special{pa 290 -543}\special{pa 292 -537}%
+\special{pa 294 -531}\special{pa 296 -524}\special{pa 298 -518}\special{pa 300 -511}%
+\special{pa 302 -504}\special{pa 304 -498}\special{pa 306 -491}\special{pa 307 -484}%
+\special{pa 309 -478}\special{pa 311 -471}\special{pa 313 -464}\special{pa 315 -457}%
+\special{pa 317 -450}\special{pa 319 -443}\special{pa 321 -436}\special{pa 322 -429}%
+\special{pa 324 -421}\special{pa 326 -414}\special{pa 328 -407}\special{pa 330 -400}%
+\special{pa 332 -392}\special{pa 334 -385}\special{pa 336 -377}\special{pa 338 -370}%
+\special{pa 339 -362}\special{pa 341 -355}\special{pa 343 -347}\special{pa 345 -339}%
+\special{pa 347 -332}\special{pa 349 -324}\special{pa 351 -316}\special{pa 353 -308}%
+\special{pa 355 -300}\special{pa 356 -292}\special{pa 358 -284}\special{pa 360 -276}%
+\special{pa 362 -268}\special{pa 364 -260}\special{pa 366 -251}\special{pa 368 -243}%
+\special{pa 370 -235}\special{pa 372 -226}\special{pa 373 -218}\special{pa 375 -209}%
+\special{pa 377 -201}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 1 -956}\special{pa 2 -957}\special{pa 4 -958}%
+\special{pa 5 -959}\special{pa 6 -960}\special{pa 7 -961}\special{pa 8 -962}%
+\special{pa 9 -963}\special{pa 11 -964}\special{pa 12 -965}\special{pa 13 -966}%
+\special{pa 14 -966}\special{pa 15 -967}\special{pa 16 -967}\special{pa 18 -968}%
+\special{pa 19 -969}\special{pa 20 -969}\special{pa 21 -969}\special{pa 22 -970}%
+\special{pa 23 -970}\special{pa 25 -970}\special{pa 26 -971}\special{pa 27 -971}%
+\special{pa 28 -971}\special{pa 29 -971}\special{pa 30 -971}\special{pa 32 -971}%
+\special{pa 33 -971}\special{pa 34 -971}\special{pa 35 -971}\special{pa 36 -970}%
+\special{pa 38 -970}\special{pa 39 -970}\special{pa 40 -969}\special{pa 41 -969}%
+\special{pa 42 -969}\special{pa 43 -968}\special{pa 45 -968}\special{pa 46 -967}%
+\special{pa 47 -966}\special{pa 48 -966}\special{pa 49 -965}\special{pa 50 -964}%
+\special{pa 52 -963}\special{pa 53 -962}\special{pa 54 -962}\special{pa 55 -961}%
+\special{pa 56 -960}\special{pa 57 -958}\special{pa 59 -957}\special{pa 60 -956}%
+\special{pa 61 -955}\special{pa 62 -954}\special{pa 63 -952}\special{pa 64 -951}%
+\special{pa 66 -950}\special{pa 67 -948}\special{pa 68 -947}\special{pa 69 -945}%
+\special{pa 70 -944}\special{pa 72 -942}\special{pa 73 -940}\special{pa 74 -939}%
+\special{pa 75 -937}\special{pa 76 -935}\special{pa 77 -933}\special{pa 79 -931}%
+\special{pa 80 -929}\special{pa 81 -927}\special{pa 82 -925}\special{pa 83 -923}%
+\special{pa 84 -921}\special{pa 86 -919}\special{pa 87 -916}\special{pa 88 -914}%
+\special{pa 89 -912}\special{pa 90 -909}\special{pa 91 -907}\special{pa 93 -904}%
+\special{pa 94 -902}\special{pa 95 -899}\special{pa 96 -896}\special{pa 97 -894}%
+\special{pa 98 -891}\special{pa 100 -888}\special{pa 101 -885}\special{pa 102 -883}%
+\special{pa 103 -880}\special{pa 104 -877}\special{pa 106 -874}\special{pa 107 -871}%
+\special{pa 108 -867}\special{pa 109 -864}\special{pa 110 -861}\special{pa 111 -858}%
+\special{pa 113 -854}\special{pa 114 -851}\special{pa 115 -848}\special{pa 116 -844}%
+\special{pa 117 -841}\special{pa 118 -837}\special{pa 120 -834}\special{pa 121 -830}%
+\special{pa 122 -826}\special{pa 123 -822}\special{pa 124 -819}\special{pa 125 -815}%
+\special{pa 127 -811}\special{pa 128 -807}\special{pa 129 -803}\special{pa 130 -799}%
+\special{pa 131 -795}\special{pa 132 -791}\special{pa 134 -787}\special{pa 135 -782}%
+\special{pa 136 -778}\special{pa 137 -774}\special{pa 138 -770}\special{pa 140 -765}%
+\special{pa 141 -761}\special{pa 142 -756}\special{pa 143 -752}\special{pa 144 -747}%
+\special{pa 145 -742}\special{pa 147 -738}\special{pa 148 -733}\special{pa 149 -728}%
+\special{pa 150 -723}\special{pa 151 -718}\special{pa 152 -713}\special{pa 154 -708}%
+\special{pa 155 -703}\special{pa 156 -698}\special{pa 157 -693}\special{pa 158 -688}%
+\special{pa 159 -683}\special{pa 161 -678}\special{pa 162 -672}\special{pa 163 -667}%
+\special{pa 164 -661}\special{pa 165 -656}\special{pa 166 -650}\special{pa 168 -645}%
+\special{pa 169 -639}\special{pa 170 -634}\special{pa 171 -628}\special{pa 172 -622}%
+\special{pa 174 -616}\special{pa 175 -611}\special{pa 176 -605}\special{pa 177 -599}%
+\special{pa 178 -593}\special{pa 179 -587}\special{pa 181 -581}\special{pa 182 -575}%
+\special{pa 183 -568}\special{pa 184 -562}\special{pa 185 -556}\special{pa 186 -550}%
+\special{pa 188 -543}\special{pa 189 -537}\special{pa 190 -530}\special{pa 191 -524}%
+\special{pa 192 -517}\special{pa 193 -511}\special{pa 195 -504}\special{pa 196 -497}%
+\special{pa 197 -491}\special{pa 198 -484}\special{pa 199 -477}\special{pa 200 -470}%
+\special{pa 202 -463}\special{pa 203 -456}\special{pa 204 -449}\special{pa 205 -442}%
+\special{pa 206 -435}\special{pa 208 -428}\special{pa 209 -420}\special{pa 210 -413}%
+\special{pa 211 -406}\special{pa 212 -398}\special{pa 213 -391}\special{pa 215 -384}%
+\special{pa 216 -376}\special{pa 217 -369}\special{pa 218 -361}\special{pa 219 -353}%
+\special{pa 220 -346}\special{pa 222 -338}\special{pa 223 -330}\special{pa 224 -322}%
+\special{pa 225 -314}\special{pa 226 -306}\special{pa 227 -298}\special{pa 229 -290}%
+\special{pa 230 -282}\special{pa 231 -274}\special{pa 232 -266}\special{pa 233 -258}%
+\special{pa 235 -249}%
+\special{fp}%
+\special{pa 0 -955}\special{pa 0 -956}\special{pa 1 -957}\special{pa 1 -959}%
+\special{pa 1 -960}\special{pa 2 -961}\special{pa 2 -962}\special{pa 2 -963}%
+\special{pa 3 -964}\special{pa 3 -965}\special{pa 3 -966}\special{pa 4 -967}%
+\special{pa 4 -968}\special{pa 4 -968}\special{pa 5 -969}\special{pa 5 -970}%
+\special{pa 6 -970}\special{pa 6 -971}\special{pa 6 -972}\special{pa 7 -972}%
+\special{pa 7 -972}\special{pa 7 -973}\special{pa 8 -973}\special{pa 8 -973}%
+\special{pa 8 -974}\special{pa 9 -974}\special{pa 9 -974}\special{pa 9 -974}%
+\special{pa 10 -974}\special{pa 10 -974}\special{pa 10 -974}\special{pa 11 -974}%
+\special{pa 11 -974}\special{pa 11 -974}\special{pa 12 -974}\special{pa 12 -973}%
+\special{pa 12 -973}\special{pa 13 -973}\special{pa 13 -972}\special{pa 13 -972}%
+\special{pa 14 -971}\special{pa 14 -971}\special{pa 14 -970}\special{pa 15 -969}%
+\special{pa 15 -969}\special{pa 15 -968}\special{pa 16 -967}\special{pa 16 -966}%
+\special{pa 17 -965}\special{pa 17 -964}\special{pa 17 -963}\special{pa 18 -962}%
+\special{pa 18 -961}\special{pa 18 -960}\special{pa 19 -959}\special{pa 19 -958}%
+\special{pa 19 -956}\special{pa 20 -955}\special{pa 20 -954}\special{pa 20 -952}%
+\special{pa 21 -951}\special{pa 21 -949}\special{pa 21 -948}\special{pa 22 -946}%
+\special{pa 22 -944}\special{pa 22 -943}\special{pa 23 -941}\special{pa 23 -939}%
+\special{pa 23 -937}\special{pa 24 -935}\special{pa 24 -933}\special{pa 24 -931}%
+\special{pa 25 -929}\special{pa 25 -927}\special{pa 25 -925}\special{pa 26 -923}%
+\special{pa 26 -921}\special{pa 27 -918}\special{pa 27 -916}\special{pa 27 -914}%
+\special{pa 28 -911}\special{pa 28 -909}\special{pa 28 -906}\special{pa 29 -904}%
+\special{pa 29 -901}\special{pa 29 -898}\special{pa 30 -896}\special{pa 30 -893}%
+\special{pa 30 -890}\special{pa 31 -887}\special{pa 31 -884}\special{pa 31 -881}%
+\special{pa 32 -878}\special{pa 32 -875}\special{pa 32 -872}\special{pa 33 -869}%
+\special{pa 33 -866}\special{pa 33 -863}\special{pa 34 -859}\special{pa 34 -856}%
+\special{pa 34 -853}\special{pa 35 -849}\special{pa 35 -846}\special{pa 35 -842}%
+\special{pa 36 -839}\special{pa 36 -835}\special{pa 37 -831}\special{pa 37 -828}%
+\special{pa 37 -824}\special{pa 38 -820}\special{pa 38 -816}\special{pa 38 -812}%
+\special{pa 39 -808}\special{pa 39 -804}\special{pa 39 -800}\special{pa 40 -796}%
+\special{pa 40 -792}\special{pa 40 -788}\special{pa 41 -784}\special{pa 41 -779}%
+\special{pa 41 -775}\special{pa 42 -771}\special{pa 42 -766}\special{pa 42 -762}%
+\special{pa 43 -757}\special{pa 43 -753}\special{pa 43 -748}\special{pa 44 -743}%
+\special{pa 44 -739}\special{pa 44 -734}\special{pa 45 -729}\special{pa 45 -724}%
+\special{pa 45 -719}\special{pa 46 -714}\special{pa 46 -709}\special{pa 46 -704}%
+\special{pa 47 -699}\special{pa 47 -694}\special{pa 48 -689}\special{pa 48 -684}%
+\special{pa 48 -678}\special{pa 49 -673}\special{pa 49 -668}\special{pa 49 -662}%
+\special{pa 50 -657}\special{pa 50 -651}\special{pa 50 -646}\special{pa 51 -640}%
+\special{pa 51 -634}\special{pa 51 -629}\special{pa 52 -623}\special{pa 52 -617}%
+\special{pa 52 -611}\special{pa 53 -605}\special{pa 53 -599}\special{pa 53 -593}%
+\special{pa 54 -587}\special{pa 54 -581}\special{pa 54 -575}\special{pa 55 -569}%
+\special{pa 55 -562}\special{pa 55 -556}\special{pa 56 -550}\special{pa 56 -543}%
+\special{pa 56 -537}\special{pa 57 -530}\special{pa 57 -524}\special{pa 58 -517}%
+\special{pa 58 -511}\special{pa 58 -504}\special{pa 59 -497}\special{pa 59 -491}%
+\special{pa 59 -484}\special{pa 60 -477}\special{pa 60 -470}\special{pa 60 -463}%
+\special{pa 61 -456}\special{pa 61 -449}\special{pa 61 -442}\special{pa 62 -435}%
+\special{pa 62 -427}\special{pa 62 -420}\special{pa 63 -413}\special{pa 63 -406}%
+\special{pa 63 -398}\special{pa 64 -391}\special{pa 64 -383}\special{pa 64 -376}%
+\special{pa 65 -368}\special{pa 65 -361}\special{pa 65 -353}\special{pa 66 -345}%
+\special{pa 66 -337}\special{pa 66 -330}\special{pa 67 -322}\special{pa 67 -314}%
+\special{pa 68 -306}\special{pa 68 -298}\special{pa 68 -290}\special{pa 69 -282}%
+\special{pa 69 -273}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -1 -956}\special{pa -1 -957}\special{pa -2 -959}%
+\special{pa -2 -960}\special{pa -3 -961}\special{pa -3 -962}\special{pa -4 -963}%
+\special{pa -4 -964}\special{pa -5 -965}\special{pa -5 -966}\special{pa -6 -967}%
+\special{pa -6 -967}\special{pa -7 -968}\special{pa -7 -969}\special{pa -8 -970}%
+\special{pa -8 -970}\special{pa -9 -971}\special{pa -9 -971}\special{pa -10 -972}%
+\special{pa -10 -972}\special{pa -11 -973}\special{pa -11 -973}\special{pa -12 -973}%
+\special{pa -12 -973}\special{pa -13 -974}\special{pa -13 -974}\special{pa -14 -974}%
+\special{pa -14 -974}\special{pa -15 -974}\special{pa -16 -974}\special{pa -16 -974}%
+\special{pa -17 -974}\special{pa -17 -973}\special{pa -18 -973}\special{pa -18 -973}%
+\special{pa -19 -972}\special{pa -19 -972}\special{pa -20 -972}\special{pa -20 -971}%
+\special{pa -21 -971}\special{pa -21 -970}\special{pa -22 -969}\special{pa -22 -969}%
+\special{pa -23 -968}\special{pa -23 -967}\special{pa -24 -966}\special{pa -24 -966}%
+\special{pa -25 -965}\special{pa -25 -964}\special{pa -26 -963}\special{pa -26 -962}%
+\special{pa -27 -961}\special{pa -27 -959}\special{pa -28 -958}\special{pa -28 -957}%
+\special{pa -29 -956}\special{pa -29 -954}\special{pa -30 -953}\special{pa -31 -951}%
+\special{pa -31 -950}\special{pa -32 -948}\special{pa -32 -947}\special{pa -33 -945}%
+\special{pa -33 -944}\special{pa -34 -942}\special{pa -34 -940}\special{pa -35 -938}%
+\special{pa -35 -936}\special{pa -36 -934}\special{pa -36 -932}\special{pa -37 -930}%
+\special{pa -37 -928}\special{pa -38 -926}\special{pa -38 -924}\special{pa -39 -922}%
+\special{pa -39 -920}\special{pa -40 -917}\special{pa -40 -915}\special{pa -41 -913}%
+\special{pa -41 -910}\special{pa -42 -908}\special{pa -42 -905}\special{pa -43 -903}%
+\special{pa -43 -900}\special{pa -44 -897}\special{pa -44 -895}\special{pa -45 -892}%
+\special{pa -46 -889}\special{pa -46 -886}\special{pa -47 -883}\special{pa -47 -880}%
+\special{pa -48 -877}\special{pa -48 -874}\special{pa -49 -871}\special{pa -49 -868}%
+\special{pa -50 -865}\special{pa -50 -861}\special{pa -51 -858}\special{pa -51 -855}%
+\special{pa -52 -851}\special{pa -52 -848}\special{pa -53 -844}\special{pa -53 -841}%
+\special{pa -54 -837}\special{pa -54 -834}\special{pa -55 -830}\special{pa -55 -826}%
+\special{pa -56 -822}\special{pa -56 -819}\special{pa -57 -815}\special{pa -57 -811}%
+\special{pa -58 -807}\special{pa -58 -803}\special{pa -59 -799}\special{pa -59 -795}%
+\special{pa -60 -791}\special{pa -61 -786}\special{pa -61 -782}\special{pa -62 -778}%
+\special{pa -62 -773}\special{pa -63 -769}\special{pa -63 -765}\special{pa -64 -760}%
+\special{pa -64 -756}\special{pa -65 -751}\special{pa -65 -746}\special{pa -66 -742}%
+\special{pa -66 -737}\special{pa -67 -732}\special{pa -67 -727}\special{pa -68 -722}%
+\special{pa -68 -717}\special{pa -69 -713}\special{pa -69 -707}\special{pa -70 -702}%
+\special{pa -70 -697}\special{pa -71 -692}\special{pa -71 -687}\special{pa -72 -682}%
+\special{pa -72 -676}\special{pa -73 -671}\special{pa -73 -666}\special{pa -74 -660}%
+\special{pa -75 -655}\special{pa -75 -649}\special{pa -76 -644}\special{pa -76 -638}%
+\special{pa -77 -632}\special{pa -77 -626}\special{pa -78 -621}\special{pa -78 -615}%
+\special{pa -79 -609}\special{pa -79 -603}\special{pa -80 -597}\special{pa -80 -591}%
+\special{pa -81 -585}\special{pa -81 -579}\special{pa -82 -573}\special{pa -82 -566}%
+\special{pa -83 -560}\special{pa -83 -554}\special{pa -84 -548}\special{pa -84 -541}%
+\special{pa -85 -535}\special{pa -85 -528}\special{pa -86 -522}\special{pa -86 -515}%
+\special{pa -87 -508}\special{pa -87 -502}\special{pa -88 -495}\special{pa -88 -488}%
+\special{pa -89 -481}\special{pa -90 -475}\special{pa -90 -468}\special{pa -91 -461}%
+\special{pa -91 -454}\special{pa -92 -447}\special{pa -92 -439}\special{pa -93 -432}%
+\special{pa -93 -425}\special{pa -94 -418}\special{pa -94 -410}\special{pa -95 -403}%
+\special{pa -95 -396}\special{pa -96 -388}\special{pa -96 -381}\special{pa -97 -373}%
+\special{pa -97 -366}\special{pa -98 -358}\special{pa -98 -350}\special{pa -99 -342}%
+\special{pa -99 -335}\special{pa -100 -327}\special{pa -100 -319}\special{pa -101 -311}%
+\special{pa -101 -303}\special{pa -102 -295}\special{pa -102 -287}\special{pa -103 -279}%
+\special{pa -103 -271}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -1 -956}\special{pa -3 -957}\special{pa -4 -958}%
+\special{pa -5 -959}\special{pa -7 -960}\special{pa -8 -961}\special{pa -9 -962}%
+\special{pa -11 -963}\special{pa -12 -964}\special{pa -13 -964}\special{pa -15 -965}%
+\special{pa -16 -966}\special{pa -17 -966}\special{pa -19 -967}\special{pa -20 -967}%
+\special{pa -21 -968}\special{pa -23 -968}\special{pa -24 -969}\special{pa -25 -969}%
+\special{pa -27 -969}\special{pa -28 -970}\special{pa -29 -970}\special{pa -31 -970}%
+\special{pa -32 -970}\special{pa -33 -970}\special{pa -35 -970}\special{pa -36 -970}%
+\special{pa -37 -970}\special{pa -39 -970}\special{pa -40 -969}\special{pa -41 -969}%
+\special{pa -43 -969}\special{pa -44 -969}\special{pa -45 -968}\special{pa -46 -968}%
+\special{pa -48 -967}\special{pa -49 -967}\special{pa -50 -966}\special{pa -52 -965}%
+\special{pa -53 -965}\special{pa -54 -964}\special{pa -56 -963}\special{pa -57 -962}%
+\special{pa -58 -962}\special{pa -60 -961}\special{pa -61 -960}\special{pa -62 -959}%
+\special{pa -64 -958}\special{pa -65 -957}\special{pa -66 -955}\special{pa -68 -954}%
+\special{pa -69 -953}\special{pa -70 -952}\special{pa -72 -950}\special{pa -73 -949}%
+\special{pa -74 -947}\special{pa -76 -946}\special{pa -77 -944}\special{pa -78 -943}%
+\special{pa -80 -941}\special{pa -81 -940}\special{pa -82 -938}\special{pa -84 -936}%
+\special{pa -85 -934}\special{pa -86 -932}\special{pa -88 -930}\special{pa -89 -928}%
+\special{pa -90 -926}\special{pa -92 -924}\special{pa -93 -922}\special{pa -94 -920}%
+\special{pa -96 -918}\special{pa -97 -916}\special{pa -98 -913}\special{pa -100 -911}%
+\special{pa -101 -909}\special{pa -102 -906}\special{pa -104 -904}\special{pa -105 -901}%
+\special{pa -106 -899}\special{pa -108 -896}\special{pa -109 -893}\special{pa -110 -890}%
+\special{pa -112 -888}\special{pa -113 -885}\special{pa -114 -882}\special{pa -116 -879}%
+\special{pa -117 -876}\special{pa -118 -873}\special{pa -120 -870}\special{pa -121 -867}%
+\special{pa -122 -864}\special{pa -124 -861}\special{pa -125 -857}\special{pa -126 -854}%
+\special{pa -128 -851}\special{pa -129 -847}\special{pa -130 -844}\special{pa -132 -840}%
+\special{pa -133 -837}\special{pa -134 -833}\special{pa -136 -830}\special{pa -137 -826}%
+\special{pa -138 -822}\special{pa -139 -818}\special{pa -141 -814}\special{pa -142 -811}%
+\special{pa -143 -807}\special{pa -145 -803}\special{pa -146 -799}\special{pa -147 -795}%
+\special{pa -149 -791}\special{pa -150 -786}\special{pa -151 -782}\special{pa -153 -778}%
+\special{pa -154 -774}\special{pa -155 -769}\special{pa -157 -765}\special{pa -158 -760}%
+\special{pa -159 -756}\special{pa -161 -751}\special{pa -162 -747}\special{pa -163 -742}%
+\special{pa -165 -737}\special{pa -166 -733}\special{pa -167 -728}\special{pa -169 -723}%
+\special{pa -170 -718}\special{pa -171 -713}\special{pa -173 -708}\special{pa -174 -703}%
+\special{pa -175 -698}\special{pa -177 -693}\special{pa -178 -688}\special{pa -179 -683}%
+\special{pa -181 -677}\special{pa -182 -672}\special{pa -183 -667}\special{pa -185 -661}%
+\special{pa -186 -656}\special{pa -187 -650}\special{pa -189 -645}\special{pa -190 -639}%
+\special{pa -191 -634}\special{pa -193 -628}\special{pa -194 -622}\special{pa -195 -616}%
+\special{pa -197 -611}\special{pa -198 -605}\special{pa -199 -599}\special{pa -201 -593}%
+\special{pa -202 -587}\special{pa -203 -581}\special{pa -205 -575}\special{pa -206 -568}%
+\special{pa -207 -562}\special{pa -209 -556}\special{pa -210 -550}\special{pa -211 -543}%
+\special{pa -213 -537}\special{pa -214 -530}\special{pa -215 -524}\special{pa -217 -517}%
+\special{pa -218 -511}\special{pa -219 -504}\special{pa -221 -497}\special{pa -222 -491}%
+\special{pa -223 -484}\special{pa -225 -477}\special{pa -226 -470}\special{pa -227 -463}%
+\special{pa -229 -456}\special{pa -230 -449}\special{pa -231 -442}\special{pa -232 -435}%
+\special{pa -234 -428}\special{pa -235 -421}\special{pa -236 -413}\special{pa -238 -406}%
+\special{pa -239 -399}\special{pa -240 -391}\special{pa -242 -384}\special{pa -243 -376}%
+\special{pa -244 -369}\special{pa -246 -361}\special{pa -247 -354}\special{pa -248 -346}%
+\special{pa -250 -338}\special{pa -251 -330}\special{pa -252 -322}\special{pa -254 -315}%
+\special{pa -255 -307}\special{pa -256 -299}\special{pa -258 -291}\special{pa -259 -283}%
+\special{pa -260 -274}\special{pa -262 -266}\special{pa -263 -258}\special{pa -264 -250}%
+\special{pa -266 -241}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -2 -956}\special{pa -4 -956}\special{pa -6 -957}%
+\special{pa -8 -958}\special{pa -10 -959}\special{pa -12 -959}\special{pa -14 -960}%
+\special{pa -16 -961}\special{pa -18 -961}\special{pa -20 -962}\special{pa -22 -962}%
+\special{pa -24 -963}\special{pa -26 -963}\special{pa -28 -963}\special{pa -30 -963}%
+\special{pa -32 -964}\special{pa -34 -964}\special{pa -36 -964}\special{pa -38 -964}%
+\special{pa -40 -964}\special{pa -42 -964}\special{pa -44 -964}\special{pa -46 -964}%
+\special{pa -48 -964}\special{pa -50 -963}\special{pa -52 -963}\special{pa -54 -963}%
+\special{pa -56 -962}\special{pa -58 -962}\special{pa -60 -961}\special{pa -62 -961}%
+\special{pa -64 -960}\special{pa -66 -960}\special{pa -68 -959}\special{pa -70 -958}%
+\special{pa -72 -958}\special{pa -74 -957}\special{pa -76 -956}\special{pa -78 -955}%
+\special{pa -80 -954}\special{pa -82 -953}\special{pa -84 -952}\special{pa -86 -951}%
+\special{pa -88 -950}\special{pa -90 -949}\special{pa -92 -948}\special{pa -94 -946}%
+\special{pa -96 -945}\special{pa -98 -944}\special{pa -100 -942}\special{pa -102 -941}%
+\special{pa -105 -939}\special{pa -107 -938}\special{pa -109 -936}\special{pa -111 -934}%
+\special{pa -113 -933}\special{pa -115 -931}\special{pa -117 -929}\special{pa -119 -927}%
+\special{pa -121 -925}\special{pa -123 -923}\special{pa -125 -921}\special{pa -127 -919}%
+\special{pa -129 -917}\special{pa -131 -915}\special{pa -133 -913}\special{pa -135 -911}%
+\special{pa -137 -908}\special{pa -139 -906}\special{pa -141 -904}\special{pa -143 -901}%
+\special{pa -145 -899}\special{pa -147 -896}\special{pa -149 -894}\special{pa -151 -891}%
+\special{pa -153 -888}\special{pa -155 -886}\special{pa -157 -883}\special{pa -159 -880}%
+\special{pa -161 -877}\special{pa -163 -874}\special{pa -165 -872}\special{pa -167 -869}%
+\special{pa -169 -865}\special{pa -171 -862}\special{pa -173 -859}\special{pa -175 -856}%
+\special{pa -177 -853}\special{pa -179 -850}\special{pa -181 -846}\special{pa -183 -843}%
+\special{pa -185 -839}\special{pa -187 -836}\special{pa -189 -832}\special{pa -191 -829}%
+\special{pa -193 -825}\special{pa -195 -822}\special{pa -197 -818}\special{pa -199 -814}%
+\special{pa -201 -810}\special{pa -203 -806}\special{pa -205 -803}\special{pa -207 -799}%
+\special{pa -209 -795}\special{pa -211 -791}\special{pa -213 -786}\special{pa -215 -782}%
+\special{pa -217 -778}\special{pa -219 -774}\special{pa -221 -770}\special{pa -223 -765}%
+\special{pa -225 -761}\special{pa -227 -756}\special{pa -229 -752}\special{pa -231 -747}%
+\special{pa -233 -743}\special{pa -235 -738}\special{pa -237 -734}\special{pa -239 -729}%
+\special{pa -241 -724}\special{pa -243 -719}\special{pa -245 -714}\special{pa -247 -710}%
+\special{pa -249 -705}\special{pa -251 -700}\special{pa -253 -695}\special{pa -255 -689}%
+\special{pa -257 -684}\special{pa -259 -679}\special{pa -261 -674}\special{pa -263 -669}%
+\special{pa -265 -663}\special{pa -267 -658}\special{pa -269 -652}\special{pa -271 -647}%
+\special{pa -273 -641}\special{pa -275 -636}\special{pa -277 -630}\special{pa -279 -625}%
+\special{pa -281 -619}\special{pa -283 -613}\special{pa -285 -607}\special{pa -287 -601}%
+\special{pa -289 -596}\special{pa -291 -590}\special{pa -293 -584}\special{pa -295 -578}%
+\special{pa -297 -571}\special{pa -299 -565}\special{pa -301 -559}\special{pa -303 -553}%
+\special{pa -305 -547}\special{pa -307 -540}\special{pa -309 -534}\special{pa -311 -527}%
+\special{pa -314 -521}\special{pa -316 -514}\special{pa -318 -508}\special{pa -320 -501}%
+\special{pa -322 -495}\special{pa -324 -488}\special{pa -326 -481}\special{pa -328 -474}%
+\special{pa -330 -467}\special{pa -332 -460}\special{pa -334 -454}\special{pa -336 -447}%
+\special{pa -338 -439}\special{pa -340 -432}\special{pa -342 -425}\special{pa -344 -418}%
+\special{pa -346 -411}\special{pa -348 -403}\special{pa -350 -396}\special{pa -352 -389}%
+\special{pa -354 -381}\special{pa -356 -374}\special{pa -358 -366}\special{pa -360 -359}%
+\special{pa -362 -351}\special{pa -364 -343}\special{pa -366 -336}\special{pa -368 -328}%
+\special{pa -370 -320}\special{pa -372 -312}\special{pa -374 -304}\special{pa -376 -296}%
+\special{pa -378 -288}\special{pa -380 -280}\special{pa -382 -272}\special{pa -384 -264}%
+\special{pa -386 -256}\special{pa -388 -248}\special{pa -390 -239}\special{pa -392 -231}%
+\special{pa -394 -223}\special{pa -396 -214}\special{pa -398 -206}\special{pa -400 -197}%
+\special{pa -402 -189}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -2 -955}\special{pa -5 -956}\special{pa -7 -956}%
+\special{pa -10 -957}\special{pa -12 -957}\special{pa -15 -957}\special{pa -17 -958}%
+\special{pa -20 -958}\special{pa -22 -958}\special{pa -25 -958}\special{pa -27 -958}%
+\special{pa -30 -958}\special{pa -32 -958}\special{pa -35 -958}\special{pa -37 -958}%
+\special{pa -40 -958}\special{pa -42 -958}\special{pa -45 -957}\special{pa -47 -957}%
+\special{pa -50 -957}\special{pa -52 -956}\special{pa -55 -956}\special{pa -57 -956}%
+\special{pa -60 -955}\special{pa -62 -954}\special{pa -65 -954}\special{pa -67 -953}%
+\special{pa -70 -952}\special{pa -72 -952}\special{pa -75 -951}\special{pa -77 -950}%
+\special{pa -80 -949}\special{pa -82 -948}\special{pa -85 -947}\special{pa -87 -946}%
+\special{pa -90 -945}\special{pa -92 -944}\special{pa -95 -942}\special{pa -97 -941}%
+\special{pa -100 -940}\special{pa -102 -939}\special{pa -105 -937}\special{pa -107 -936}%
+\special{pa -110 -934}\special{pa -112 -933}\special{pa -115 -931}\special{pa -117 -930}%
+\special{pa -120 -928}\special{pa -122 -926}\special{pa -125 -924}\special{pa -127 -922}%
+\special{pa -130 -921}\special{pa -132 -919}\special{pa -135 -917}\special{pa -137 -915}%
+\special{pa -140 -913}\special{pa -142 -911}\special{pa -145 -908}\special{pa -147 -906}%
+\special{pa -150 -904}\special{pa -152 -902}\special{pa -155 -899}\special{pa -157 -897}%
+\special{pa -160 -894}\special{pa -162 -892}\special{pa -165 -889}\special{pa -167 -887}%
+\special{pa -170 -884}\special{pa -172 -881}\special{pa -175 -879}\special{pa -177 -876}%
+\special{pa -180 -873}\special{pa -182 -870}\special{pa -185 -867}\special{pa -187 -864}%
+\special{pa -190 -861}\special{pa -192 -858}\special{pa -195 -855}\special{pa -197 -852}%
+\special{pa -200 -849}\special{pa -202 -846}\special{pa -205 -842}\special{pa -207 -839}%
+\special{pa -209 -836}\special{pa -212 -832}\special{pa -214 -829}\special{pa -217 -825}%
+\special{pa -219 -821}\special{pa -222 -818}\special{pa -224 -814}\special{pa -227 -810}%
+\special{pa -229 -807}\special{pa -232 -803}\special{pa -234 -799}\special{pa -237 -795}%
+\special{pa -239 -791}\special{pa -242 -787}\special{pa -244 -783}\special{pa -247 -779}%
+\special{pa -249 -775}\special{pa -252 -770}\special{pa -254 -766}\special{pa -257 -762}%
+\special{pa -259 -757}\special{pa -262 -753}\special{pa -264 -749}\special{pa -267 -744}%
+\special{pa -269 -740}\special{pa -272 -735}\special{pa -274 -730}\special{pa -277 -726}%
+\special{pa -279 -721}\special{pa -282 -716}\special{pa -284 -711}\special{pa -287 -706}%
+\special{pa -289 -702}\special{pa -292 -697}\special{pa -294 -692}\special{pa -297 -686}%
+\special{pa -299 -681}\special{pa -302 -676}\special{pa -304 -671}\special{pa -307 -666}%
+\special{pa -309 -660}\special{pa -312 -655}\special{pa -314 -650}\special{pa -317 -644}%
+\special{pa -319 -639}\special{pa -322 -633}\special{pa -324 -628}\special{pa -327 -622}%
+\special{pa -329 -616}\special{pa -332 -610}\special{pa -334 -605}\special{pa -337 -599}%
+\special{pa -339 -593}\special{pa -342 -587}\special{pa -344 -581}\special{pa -347 -575}%
+\special{pa -349 -569}\special{pa -352 -563}\special{pa -354 -557}\special{pa -357 -550}%
+\special{pa -359 -544}\special{pa -362 -538}\special{pa -364 -532}\special{pa -367 -525}%
+\special{pa -369 -519}\special{pa -372 -512}\special{pa -374 -506}\special{pa -377 -499}%
+\special{pa -379 -492}\special{pa -382 -486}\special{pa -384 -479}\special{pa -387 -472}%
+\special{pa -389 -465}\special{pa -392 -458}\special{pa -394 -451}\special{pa -397 -445}%
+\special{pa -399 -437}\special{pa -402 -430}\special{pa -404 -423}\special{pa -407 -416}%
+\special{pa -409 -409}\special{pa -412 -402}\special{pa -414 -394}\special{pa -417 -387}%
+\special{pa -419 -380}\special{pa -421 -372}\special{pa -424 -365}\special{pa -426 -357}%
+\special{pa -429 -349}\special{pa -431 -342}\special{pa -434 -334}\special{pa -436 -326}%
+\special{pa -439 -319}\special{pa -441 -311}\special{pa -444 -303}\special{pa -446 -295}%
+\special{pa -449 -287}\special{pa -451 -279}\special{pa -454 -271}\special{pa -456 -263}%
+\special{pa -459 -255}\special{pa -461 -246}\special{pa -464 -238}\special{pa -466 -230}%
+\special{pa -469 -221}\special{pa -471 -213}\special{pa -474 -204}\special{pa -476 -196}%
+\special{pa -479 -187}\special{pa -481 -179}\special{pa -484 -170}\special{pa -486 -161}%
+\special{pa -489 -153}\special{pa -491 -144}\special{pa -494 -135}\special{pa -496 -126}%
+\special{pa -499 -117}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -3 -955}\special{pa -5 -955}\special{pa -8 -955}%
+\special{pa -11 -955}\special{pa -14 -955}\special{pa -16 -955}\special{pa -19 -955}%
+\special{pa -22 -955}\special{pa -25 -954}\special{pa -27 -954}\special{pa -30 -954}%
+\special{pa -33 -953}\special{pa -36 -953}\special{pa -38 -952}\special{pa -41 -952}%
+\special{pa -44 -951}\special{pa -46 -951}\special{pa -49 -950}\special{pa -52 -949}%
+\special{pa -55 -949}\special{pa -57 -948}\special{pa -60 -947}\special{pa -63 -946}%
+\special{pa -66 -945}\special{pa -68 -944}\special{pa -71 -943}\special{pa -74 -942}%
+\special{pa -77 -941}\special{pa -79 -940}\special{pa -82 -938}\special{pa -85 -937}%
+\special{pa -87 -936}\special{pa -90 -934}\special{pa -93 -933}\special{pa -96 -931}%
+\special{pa -98 -930}\special{pa -101 -928}\special{pa -104 -927}\special{pa -107 -925}%
+\special{pa -109 -923}\special{pa -112 -922}\special{pa -115 -920}\special{pa -118 -918}%
+\special{pa -120 -916}\special{pa -123 -914}\special{pa -126 -912}\special{pa -129 -910}%
+\special{pa -131 -908}\special{pa -134 -906}\special{pa -137 -904}\special{pa -139 -901}%
+\special{pa -142 -899}\special{pa -145 -897}\special{pa -148 -894}\special{pa -150 -892}%
+\special{pa -153 -889}\special{pa -156 -887}\special{pa -159 -884}\special{pa -161 -882}%
+\special{pa -164 -879}\special{pa -167 -876}\special{pa -170 -874}\special{pa -172 -871}%
+\special{pa -175 -868}\special{pa -178 -865}\special{pa -180 -862}\special{pa -183 -859}%
+\special{pa -186 -856}\special{pa -189 -853}\special{pa -191 -850}\special{pa -194 -847}%
+\special{pa -197 -843}\special{pa -200 -840}\special{pa -202 -837}\special{pa -205 -833}%
+\special{pa -208 -830}\special{pa -211 -826}\special{pa -213 -823}\special{pa -216 -819}%
+\special{pa -219 -816}\special{pa -221 -812}\special{pa -224 -808}\special{pa -227 -805}%
+\special{pa -230 -801}\special{pa -232 -797}\special{pa -235 -793}\special{pa -238 -789}%
+\special{pa -241 -785}\special{pa -243 -781}\special{pa -246 -777}\special{pa -249 -773}%
+\special{pa -252 -769}\special{pa -254 -764}\special{pa -257 -760}\special{pa -260 -756}%
+\special{pa -262 -751}\special{pa -265 -747}\special{pa -268 -742}\special{pa -271 -738}%
+\special{pa -273 -733}\special{pa -276 -729}\special{pa -279 -724}\special{pa -282 -719}%
+\special{pa -284 -714}\special{pa -287 -710}\special{pa -290 -705}\special{pa -293 -700}%
+\special{pa -295 -695}\special{pa -298 -690}\special{pa -301 -685}\special{pa -304 -680}%
+\special{pa -306 -675}\special{pa -309 -669}\special{pa -312 -664}\special{pa -314 -659}%
+\special{pa -317 -653}\special{pa -320 -648}\special{pa -323 -643}\special{pa -325 -637}%
+\special{pa -328 -632}\special{pa -331 -626}\special{pa -334 -620}\special{pa -336 -615}%
+\special{pa -339 -609}\special{pa -342 -603}\special{pa -345 -597}\special{pa -347 -592}%
+\special{pa -350 -586}\special{pa -353 -580}\special{pa -355 -574}\special{pa -358 -568}%
+\special{pa -361 -562}\special{pa -364 -555}\special{pa -366 -549}\special{pa -369 -543}%
+\special{pa -372 -537}\special{pa -375 -530}\special{pa -377 -524}\special{pa -380 -517}%
+\special{pa -383 -511}\special{pa -386 -504}\special{pa -388 -498}\special{pa -391 -491}%
+\special{pa -394 -485}\special{pa -396 -478}\special{pa -399 -471}\special{pa -402 -464}%
+\special{pa -405 -457}\special{pa -407 -450}\special{pa -410 -444}\special{pa -413 -436}%
+\special{pa -416 -429}\special{pa -418 -422}\special{pa -421 -415}\special{pa -424 -408}%
+\special{pa -427 -401}\special{pa -429 -393}\special{pa -432 -386}\special{pa -435 -379}%
+\special{pa -437 -371}\special{pa -440 -364}\special{pa -443 -356}\special{pa -446 -349}%
+\special{pa -448 -341}\special{pa -451 -333}\special{pa -454 -326}\special{pa -457 -318}%
+\special{pa -459 -310}\special{pa -462 -302}\special{pa -465 -294}\special{pa -468 -286}%
+\special{pa -470 -278}\special{pa -473 -270}\special{pa -476 -262}\special{pa -479 -254}%
+\special{pa -481 -246}\special{pa -484 -237}\special{pa -487 -229}\special{pa -489 -221}%
+\special{pa -492 -212}\special{pa -495 -204}\special{pa -498 -195}\special{pa -500 -187}%
+\special{pa -503 -178}\special{pa -506 -170}\special{pa -509 -161}\special{pa -511 -152}%
+\special{pa -514 -143}\special{pa -517 -135}\special{pa -520 -126}\special{pa -522 -117}%
+\special{pa -525 -108}\special{pa -528 -99}\special{pa -530 -90}\special{pa -533 -81}%
+\special{pa -536 -72}\special{pa -539 -62}\special{pa -541 -53}\special{pa -544 -44}%
+\special{pa -547 -34}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -3 -954}\special{pa -5 -954}\special{pa -8 -954}%
+\special{pa -11 -953}\special{pa -14 -953}\special{pa -16 -952}\special{pa -19 -952}%
+\special{pa -22 -951}\special{pa -24 -950}\special{pa -27 -950}\special{pa -30 -949}%
+\special{pa -32 -948}\special{pa -35 -947}\special{pa -38 -946}\special{pa -41 -945}%
+\special{pa -43 -944}\special{pa -46 -943}\special{pa -49 -942}\special{pa -51 -941}%
+\special{pa -54 -940}\special{pa -57 -939}\special{pa -60 -937}\special{pa -62 -936}%
+\special{pa -65 -935}\special{pa -68 -933}\special{pa -70 -932}\special{pa -73 -930}%
+\special{pa -76 -929}\special{pa -79 -927}\special{pa -81 -925}\special{pa -84 -924}%
+\special{pa -87 -922}\special{pa -89 -920}\special{pa -92 -918}\special{pa -95 -916}%
+\special{pa -97 -914}\special{pa -100 -912}\special{pa -103 -910}\special{pa -106 -908}%
+\special{pa -108 -906}\special{pa -111 -904}\special{pa -114 -902}\special{pa -116 -899}%
+\special{pa -119 -897}\special{pa -122 -895}\special{pa -125 -892}\special{pa -127 -890}%
+\special{pa -130 -887}\special{pa -133 -885}\special{pa -135 -882}\special{pa -138 -879}%
+\special{pa -141 -877}\special{pa -143 -874}\special{pa -146 -871}\special{pa -149 -868}%
+\special{pa -152 -865}\special{pa -154 -862}\special{pa -157 -859}\special{pa -160 -856}%
+\special{pa -162 -853}\special{pa -165 -850}\special{pa -168 -847}\special{pa -171 -844}%
+\special{pa -173 -840}\special{pa -176 -837}\special{pa -179 -834}\special{pa -181 -830}%
+\special{pa -184 -827}\special{pa -187 -823}\special{pa -189 -820}\special{pa -192 -816}%
+\special{pa -195 -812}\special{pa -198 -809}\special{pa -200 -805}\special{pa -203 -801}%
+\special{pa -206 -797}\special{pa -208 -793}\special{pa -211 -789}\special{pa -214 -785}%
+\special{pa -217 -781}\special{pa -219 -777}\special{pa -222 -773}\special{pa -225 -769}%
+\special{pa -227 -765}\special{pa -230 -760}\special{pa -233 -756}\special{pa -236 -752}%
+\special{pa -238 -747}\special{pa -241 -743}\special{pa -244 -738}\special{pa -246 -733}%
+\special{pa -249 -729}\special{pa -252 -724}\special{pa -254 -719}\special{pa -257 -715}%
+\special{pa -260 -710}\special{pa -263 -705}\special{pa -265 -700}\special{pa -268 -695}%
+\special{pa -271 -690}\special{pa -273 -685}\special{pa -276 -680}\special{pa -279 -675}%
+\special{pa -282 -670}\special{pa -284 -664}\special{pa -287 -659}\special{pa -290 -654}%
+\special{pa -292 -648}\special{pa -295 -643}\special{pa -298 -637}\special{pa -300 -632}%
+\special{pa -303 -626}\special{pa -306 -621}\special{pa -309 -615}\special{pa -311 -609}%
+\special{pa -314 -604}\special{pa -317 -598}\special{pa -319 -592}\special{pa -322 -586}%
+\special{pa -325 -580}\special{pa -328 -574}\special{pa -330 -568}\special{pa -333 -562}%
+\special{pa -336 -556}\special{pa -338 -549}\special{pa -341 -543}\special{pa -344 -537}%
+\special{pa -346 -531}\special{pa -349 -524}\special{pa -352 -518}\special{pa -355 -511}%
+\special{pa -357 -505}\special{pa -360 -498}\special{pa -363 -491}\special{pa -365 -485}%
+\special{pa -368 -478}\special{pa -371 -471}\special{pa -374 -464}\special{pa -376 -458}%
+\special{pa -379 -451}\special{pa -382 -444}\special{pa -384 -437}\special{pa -387 -430}%
+\special{pa -390 -423}\special{pa -393 -415}\special{pa -395 -408}\special{pa -398 -401}%
+\special{pa -401 -394}\special{pa -403 -386}\special{pa -406 -379}\special{pa -409 -371}%
+\special{pa -411 -364}\special{pa -414 -356}\special{pa -417 -349}\special{pa -420 -341}%
+\special{pa -422 -333}\special{pa -425 -326}\special{pa -428 -318}\special{pa -430 -310}%
+\special{pa -433 -302}\special{pa -436 -294}\special{pa -439 -286}\special{pa -441 -278}%
+\special{pa -444 -270}\special{pa -447 -262}\special{pa -449 -254}\special{pa -452 -246}%
+\special{pa -455 -238}\special{pa -457 -229}\special{pa -460 -221}\special{pa -463 -213}%
+\special{pa -466 -204}\special{pa -468 -196}\special{pa -471 -187}\special{pa -474 -178}%
+\special{pa -476 -170}\special{pa -479 -161}\special{pa -482 -152}\special{pa -485 -144}%
+\special{pa -487 -135}\special{pa -490 -126}\special{pa -493 -117}\special{pa -495 -108}%
+\special{pa -498 -99}\special{pa -501 -90}\special{pa -503 -81}\special{pa -506 -72}%
+\special{pa -509 -62}\special{pa -512 -53}\special{pa -514 -44}\special{pa -517 -35}%
+\special{pa -520 -25}\special{pa -522 -16}\special{pa -525 -6}\special{pa -528 3}%
+\special{pa -531 13}\special{pa -533 23}\special{pa -536 32}\special{pa -539 42}%
+\special{pa -541 52}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -2 -954}\special{pa -5 -953}\special{pa -7 -952}%
+\special{pa -10 -952}\special{pa -12 -951}\special{pa -14 -950}\special{pa -17 -949}%
+\special{pa -19 -948}\special{pa -22 -947}\special{pa -24 -946}\special{pa -27 -944}%
+\special{pa -29 -943}\special{pa -31 -942}\special{pa -34 -941}\special{pa -36 -939}%
+\special{pa -39 -938}\special{pa -41 -936}\special{pa -43 -935}\special{pa -46 -933}%
+\special{pa -48 -932}\special{pa -51 -930}\special{pa -53 -929}\special{pa -56 -927}%
+\special{pa -58 -925}\special{pa -60 -923}\special{pa -63 -921}\special{pa -65 -919}%
+\special{pa -68 -917}\special{pa -70 -915}\special{pa -72 -913}\special{pa -75 -911}%
+\special{pa -77 -909}\special{pa -80 -907}\special{pa -82 -904}\special{pa -85 -902}%
+\special{pa -87 -900}\special{pa -89 -897}\special{pa -92 -895}\special{pa -94 -892}%
+\special{pa -97 -890}\special{pa -99 -887}\special{pa -101 -885}\special{pa -104 -882}%
+\special{pa -106 -879}\special{pa -109 -876}\special{pa -111 -874}\special{pa -113 -871}%
+\special{pa -116 -868}\special{pa -118 -865}\special{pa -121 -862}\special{pa -123 -859}%
+\special{pa -126 -856}\special{pa -128 -852}\special{pa -130 -849}\special{pa -133 -846}%
+\special{pa -135 -843}\special{pa -138 -839}\special{pa -140 -836}\special{pa -142 -832}%
+\special{pa -145 -829}\special{pa -147 -825}\special{pa -150 -822}\special{pa -152 -818}%
+\special{pa -155 -814}\special{pa -157 -811}\special{pa -159 -807}\special{pa -162 -803}%
+\special{pa -164 -799}\special{pa -167 -795}\special{pa -169 -791}\special{pa -171 -787}%
+\special{pa -174 -783}\special{pa -176 -779}\special{pa -179 -775}\special{pa -181 -771}%
+\special{pa -184 -766}\special{pa -186 -762}\special{pa -188 -758}\special{pa -191 -753}%
+\special{pa -193 -749}\special{pa -196 -744}\special{pa -198 -740}\special{pa -200 -735}%
+\special{pa -203 -730}\special{pa -205 -726}\special{pa -208 -721}\special{pa -210 -716}%
+\special{pa -212 -711}\special{pa -215 -707}\special{pa -217 -702}\special{pa -220 -697}%
+\special{pa -222 -692}\special{pa -225 -686}\special{pa -227 -681}\special{pa -229 -676}%
+\special{pa -232 -671}\special{pa -234 -666}\special{pa -237 -660}\special{pa -239 -655}%
+\special{pa -241 -650}\special{pa -244 -644}\special{pa -246 -639}\special{pa -249 -633}%
+\special{pa -251 -627}\special{pa -254 -622}\special{pa -256 -616}\special{pa -258 -610}%
+\special{pa -261 -605}\special{pa -263 -599}\special{pa -266 -593}\special{pa -268 -587}%
+\special{pa -270 -581}\special{pa -273 -575}\special{pa -275 -569}\special{pa -278 -563}%
+\special{pa -280 -556}\special{pa -283 -550}\special{pa -285 -544}\special{pa -287 -538}%
+\special{pa -290 -531}\special{pa -292 -525}\special{pa -295 -518}\special{pa -297 -512}%
+\special{pa -299 -505}\special{pa -302 -499}\special{pa -304 -492}\special{pa -307 -485}%
+\special{pa -309 -479}\special{pa -311 -472}\special{pa -314 -465}\special{pa -316 -458}%
+\special{pa -319 -451}\special{pa -321 -444}\special{pa -324 -437}\special{pa -326 -430}%
+\special{pa -328 -423}\special{pa -331 -416}\special{pa -333 -408}\special{pa -336 -401}%
+\special{pa -338 -394}\special{pa -340 -387}\special{pa -343 -379}\special{pa -345 -372}%
+\special{pa -348 -364}\special{pa -350 -357}\special{pa -353 -349}\special{pa -355 -341}%
+\special{pa -357 -334}\special{pa -360 -326}\special{pa -362 -318}\special{pa -365 -310}%
+\special{pa -367 -302}\special{pa -369 -294}\special{pa -372 -286}\special{pa -374 -278}%
+\special{pa -377 -270}\special{pa -379 -262}\special{pa -381 -254}\special{pa -384 -246}%
+\special{pa -386 -237}\special{pa -389 -229}\special{pa -391 -221}\special{pa -394 -212}%
+\special{pa -396 -204}\special{pa -398 -195}\special{pa -401 -187}\special{pa -403 -178}%
+\special{pa -406 -169}\special{pa -408 -161}\special{pa -410 -152}\special{pa -413 -143}%
+\special{pa -415 -134}\special{pa -418 -125}\special{pa -420 -116}\special{pa -423 -108}%
+\special{pa -425 -98}\special{pa -427 -89}\special{pa -430 -80}\special{pa -432 -71}%
+\special{pa -435 -62}\special{pa -437 -53}\special{pa -439 -43}\special{pa -442 -34}%
+\special{pa -444 -24}\special{pa -447 -15}\special{pa -449 -5}\special{pa -452 4}%
+\special{pa -454 14}\special{pa -456 23}\special{pa -459 33}\special{pa -461 43}%
+\special{pa -464 53}\special{pa -466 63}\special{pa -468 72}\special{pa -471 82}%
+\special{pa -473 92}\special{pa -476 102}\special{pa -478 113}\special{pa -480 123}%
+\special{pa -483 133}%
+\special{fp}%
+\special{pa 0 -955}\special{pa -2 -954}\special{pa -4 -953}\special{pa -6 -951}%
+\special{pa -8 -950}\special{pa -9 -949}\special{pa -11 -948}\special{pa -13 -946}%
+\special{pa -15 -945}\special{pa -17 -944}\special{pa -19 -942}\special{pa -21 -941}%
+\special{pa -23 -939}\special{pa -25 -938}\special{pa -26 -936}\special{pa -28 -934}%
+\special{pa -30 -932}\special{pa -32 -931}\special{pa -34 -929}\special{pa -36 -927}%
+\special{pa -38 -925}\special{pa -40 -923}\special{pa -41 -921}\special{pa -43 -919}%
+\special{pa -45 -917}\special{pa -47 -915}\special{pa -49 -912}\special{pa -51 -910}%
+\special{pa -53 -908}\special{pa -55 -905}\special{pa -57 -903}\special{pa -58 -901}%
+\special{pa -60 -898}\special{pa -62 -896}\special{pa -64 -893}\special{pa -66 -890}%
+\special{pa -68 -888}\special{pa -70 -885}\special{pa -72 -882}\special{pa -74 -879}%
+\special{pa -75 -876}\special{pa -77 -873}\special{pa -79 -870}\special{pa -81 -867}%
+\special{pa -83 -864}\special{pa -85 -861}\special{pa -87 -858}\special{pa -89 -855}%
+\special{pa -91 -851}\special{pa -92 -848}\special{pa -94 -845}\special{pa -96 -841}%
+\special{pa -98 -838}\special{pa -100 -834}\special{pa -102 -831}\special{pa -104 -827}%
+\special{pa -106 -824}\special{pa -107 -820}\special{pa -109 -816}\special{pa -111 -812}%
+\special{pa -113 -808}\special{pa -115 -805}\special{pa -117 -801}\special{pa -119 -797}%
+\special{pa -121 -793}\special{pa -123 -789}\special{pa -124 -784}\special{pa -126 -780}%
+\special{pa -128 -776}\special{pa -130 -772}\special{pa -132 -767}\special{pa -134 -763}%
+\special{pa -136 -759}\special{pa -138 -754}\special{pa -140 -750}\special{pa -141 -745}%
+\special{pa -143 -740}\special{pa -145 -736}\special{pa -147 -731}\special{pa -149 -726}%
+\special{pa -151 -722}\special{pa -153 -717}\special{pa -155 -712}\special{pa -157 -707}%
+\special{pa -158 -702}\special{pa -160 -697}\special{pa -162 -692}\special{pa -164 -687}%
+\special{pa -166 -681}\special{pa -168 -676}\special{pa -170 -671}\special{pa -172 -666}%
+\special{pa -173 -660}\special{pa -175 -655}\special{pa -177 -649}\special{pa -179 -644}%
+\special{pa -181 -638}\special{pa -183 -633}\special{pa -185 -627}\special{pa -187 -621}%
+\special{pa -189 -616}\special{pa -190 -610}\special{pa -192 -604}\special{pa -194 -598}%
+\special{pa -196 -592}\special{pa -198 -586}\special{pa -200 -580}\special{pa -202 -574}%
+\special{pa -204 -568}\special{pa -206 -562}\special{pa -207 -555}\special{pa -209 -549}%
+\special{pa -211 -543}\special{pa -213 -536}\special{pa -215 -530}\special{pa -217 -523}%
+\special{pa -219 -517}\special{pa -221 -510}\special{pa -223 -504}\special{pa -224 -497}%
+\special{pa -226 -490}\special{pa -228 -484}\special{pa -230 -477}\special{pa -232 -470}%
+\special{pa -234 -463}\special{pa -236 -456}\special{pa -238 -449}\special{pa -239 -442}%
+\special{pa -241 -435}\special{pa -243 -428}\special{pa -245 -421}\special{pa -247 -413}%
+\special{pa -249 -406}\special{pa -251 -399}\special{pa -253 -391}\special{pa -255 -384}%
+\special{pa -256 -377}\special{pa -258 -369}\special{pa -260 -361}\special{pa -262 -354}%
+\special{pa -264 -346}\special{pa -266 -338}\special{pa -268 -331}\special{pa -270 -323}%
+\special{pa -272 -315}\special{pa -273 -307}\special{pa -275 -299}\special{pa -277 -291}%
+\special{pa -279 -283}\special{pa -281 -275}\special{pa -283 -267}\special{pa -285 -259}%
+\special{pa -287 -251}\special{pa -289 -242}\special{pa -290 -234}\special{pa -292 -226}%
+\special{pa -294 -217}\special{pa -296 -209}\special{pa -298 -200}\special{pa -300 -192}%
+\special{pa -302 -183}\special{pa -304 -174}\special{pa -306 -166}\special{pa -307 -157}%
+\special{pa -309 -148}\special{pa -311 -139}\special{pa -313 -130}\special{pa -315 -121}%
+\special{pa -317 -112}\special{pa -319 -103}\special{pa -321 -94}\special{pa -322 -85}%
+\special{pa -324 -76}\special{pa -326 -67}\special{pa -328 -57}\special{pa -330 -48}%
+\special{pa -332 -39}\special{pa -334 -29}\special{pa -336 -20}\special{pa -338 -10}%
+\special{pa -339 -1}\special{pa -341 9}\special{pa -343 19}\special{pa -345 28}%
+\special{pa -347 38}\special{pa -349 48}\special{pa -351 58}\special{pa -353 68}%
+\special{pa -355 78}\special{pa -356 88}\special{pa -358 98}\special{pa -360 108}%
+\special{pa -362 118}\special{pa -364 128}\special{pa -366 139}\special{pa -368 149}%
+\special{pa -370 159}\special{pa -372 170}\special{pa -373 180}\special{pa -375 190}%
+\special{pa -377 201}%
+\special{fp}%
+\special{pa -19 -942}\special{pa -18 -942}\special{pa -18 -942}\special{pa -17 -941}%
+\special{pa -16 -941}\special{pa -15 -941}\special{pa -15 -941}\special{pa -14 -940}%
+\special{pa -13 -940}\special{pa -13 -940}\special{pa -12 -940}\special{pa -11 -940}%
+\special{pa -10 -939}\special{pa -9 -939}\special{pa -9 -939}\special{pa -8 -939}%
+\special{pa -7 -939}\special{pa -6 -939}\special{pa -5 -939}\special{pa -4 -939}%
+\special{pa -3 -939}\special{pa -3 -939}\special{pa -2 -939}\special{pa -1 -939}%
+\special{pa 0 -939}\special{pa 1 -939}\special{pa 2 -939}\special{pa 3 -939}%
+\special{pa 3 -939}\special{pa 4 -939}\special{pa 5 -939}\special{pa 6 -939}%
+\special{pa 7 -939}\special{pa 8 -939}\special{pa 9 -939}\special{pa 9 -939}%
+\special{pa 10 -939}\special{pa 11 -940}\special{pa 12 -940}\special{pa 13 -940}%
+\special{pa 13 -940}\special{pa 14 -940}\special{pa 15 -941}\special{pa 15 -941}%
+\special{pa 16 -941}\special{pa 17 -941}\special{pa 18 -942}\special{pa 18 -942}%
+\special{pa 19 -942}\special{pa 19 -943}\special{pa 20 -943}\special{pa 21 -943}%
+\special{pa 21 -944}\special{pa 22 -944}\special{pa 22 -944}\special{pa 23 -945}%
+\special{pa 23 -945}\special{pa 24 -945}\special{pa 24 -946}\special{pa 25 -946}%
+\special{pa 25 -946}\special{pa 25 -947}\special{pa 26 -947}\special{pa 26 -948}%
+\special{pa 26 -948}\special{pa 26 -948}\special{pa 27 -949}\special{pa 27 -949}%
+\special{pa 27 -950}\special{pa 27 -950}\special{pa 27 -951}\special{pa 27 -951}%
+\special{pa 28 -951}\special{pa 28 -952}\special{pa 28 -952}\special{pa 28 -953}%
+\special{pa 28 -953}\special{pa 27 -954}\special{pa 27 -954}\special{pa 27 -954}%
+\special{pa 27 -955}\special{pa 27 -955}\special{pa 27 -956}\special{pa 26 -956}%
+\special{pa 26 -957}\special{pa 26 -957}\special{pa 26 -957}\special{pa 25 -958}%
+\special{pa 25 -958}\special{pa 25 -959}\special{pa 24 -959}\special{pa 24 -959}%
+\special{pa 23 -960}\special{pa 23 -960}\special{pa 22 -960}\special{pa 22 -961}%
+\special{pa 21 -961}\special{pa 21 -961}\special{pa 20 -962}\special{pa 19 -962}%
+\special{pa 19 -962}\special{pa 18 -963}\special{pa 18 -963}\special{pa 17 -963}%
+\special{pa 16 -963}\special{pa 15 -964}\special{pa 15 -964}\special{pa 14 -964}%
+\special{pa 13 -964}\special{pa 13 -965}\special{pa 12 -965}\special{pa 11 -965}%
+\special{pa 10 -965}\special{pa 9 -965}\special{pa 9 -965}\special{pa 8 -966}%
+\special{pa 7 -966}\special{pa 6 -966}\special{pa 5 -966}\special{pa 4 -966}%
+\special{pa 3 -966}\special{pa 3 -966}\special{pa 2 -966}\special{pa 1 -966}%
+\special{pa -0 -966}\special{pa -1 -966}\special{pa -2 -966}\special{pa -3 -966}%
+\special{pa -3 -966}\special{pa -4 -966}\special{pa -5 -966}\special{pa -6 -966}%
+\special{pa -7 -966}\special{pa -8 -966}\special{pa -9 -965}\special{pa -9 -965}%
+\special{pa -10 -965}\special{pa -11 -965}\special{pa -12 -965}\special{pa -13 -965}%
+\special{pa -13 -964}\special{pa -14 -964}\special{pa -15 -964}\special{pa -15 -964}%
+\special{pa -16 -963}\special{pa -17 -963}\special{pa -18 -963}\special{pa -18 -963}%
+\special{pa -19 -962}\special{pa -19 -962}\special{pa -20 -962}\special{pa -21 -961}%
+\special{pa -21 -961}\special{pa -22 -961}\special{pa -22 -960}\special{pa -23 -960}%
+\special{pa -23 -960}\special{pa -24 -959}\special{pa -24 -959}\special{pa -25 -959}%
+\special{pa -25 -958}\special{pa -25 -958}\special{pa -26 -957}\special{pa -26 -957}%
+\special{pa -26 -957}\special{pa -26 -956}\special{pa -27 -956}\special{pa -27 -955}%
+\special{pa -27 -955}\special{pa -27 -954}\special{pa -27 -954}\special{pa -27 -954}%
+\special{pa -28 -953}\special{pa -28 -953}\special{pa -28 -952}\special{pa -28 -952}%
+\special{pa -28 -951}\special{pa -27 -951}\special{pa -27 -951}\special{pa -27 -950}%
+\special{pa -27 -950}\special{pa -27 -949}\special{pa -27 -949}\special{pa -26 -948}%
+\special{pa -26 -948}\special{pa -26 -948}\special{pa -26 -947}\special{pa -25 -947}%
+\special{pa -25 -946}\special{pa -25 -946}\special{pa -24 -946}\special{pa -24 -945}%
+\special{pa -23 -945}\special{pa -23 -945}\special{pa -22 -944}\special{pa -22 -944}%
+\special{pa -21 -943}\special{pa -21 -943}\special{pa -20 -943}\special{pa -19 -943}%
+\special{pa -19 -942}%
+\special{fp}%
+\special{pa -38 -925}\special{pa -36 -924}\special{pa -35 -924}\special{pa -34 -923}%
+\special{pa -32 -923}\special{pa -31 -922}\special{pa -30 -922}\special{pa -28 -921}%
+\special{pa -27 -921}\special{pa -25 -921}\special{pa -23 -920}\special{pa -22 -920}%
+\special{pa -20 -919}\special{pa -19 -919}\special{pa -17 -919}\special{pa -15 -919}%
+\special{pa -14 -918}\special{pa -12 -918}\special{pa -10 -918}\special{pa -9 -918}%
+\special{pa -7 -918}\special{pa -5 -918}\special{pa -3 -918}\special{pa -2 -918}%
+\special{pa 0 -918}\special{pa 2 -918}\special{pa 3 -918}\special{pa 5 -918}%
+\special{pa 7 -918}\special{pa 9 -918}\special{pa 10 -918}\special{pa 12 -918}%
+\special{pa 14 -918}\special{pa 15 -919}\special{pa 17 -919}\special{pa 19 -919}%
+\special{pa 20 -920}\special{pa 22 -920}\special{pa 23 -920}\special{pa 25 -921}%
+\special{pa 27 -921}\special{pa 28 -921}\special{pa 30 -922}\special{pa 31 -922}%
+\special{pa 32 -923}\special{pa 34 -923}\special{pa 35 -924}\special{pa 36 -924}%
+\special{pa 38 -925}\special{pa 39 -926}\special{pa 40 -926}\special{pa 41 -927}%
+\special{pa 42 -928}\special{pa 44 -928}\special{pa 45 -929}\special{pa 46 -930}%
+\special{pa 47 -930}\special{pa 47 -931}\special{pa 48 -932}\special{pa 49 -933}%
+\special{pa 50 -933}\special{pa 51 -934}\special{pa 51 -935}\special{pa 52 -936}%
+\special{pa 52 -937}\special{pa 53 -937}\special{pa 53 -938}\special{pa 54 -939}%
+\special{pa 54 -940}\special{pa 54 -941}\special{pa 55 -942}\special{pa 55 -943}%
+\special{pa 55 -943}\special{pa 55 -944}\special{pa 55 -945}\special{pa 55 -946}%
+\special{pa 55 -947}\special{pa 55 -948}\special{pa 55 -949}\special{pa 54 -949}%
+\special{pa 54 -950}\special{pa 54 -951}\special{pa 53 -952}\special{pa 53 -953}%
+\special{pa 52 -954}\special{pa 52 -954}\special{pa 51 -955}\special{pa 51 -956}%
+\special{pa 50 -957}\special{pa 49 -958}\special{pa 48 -958}\special{pa 47 -959}%
+\special{pa 47 -960}\special{pa 46 -961}\special{pa 45 -961}\special{pa 44 -962}%
+\special{pa 42 -963}\special{pa 41 -963}\special{pa 40 -964}\special{pa 39 -965}%
+\special{pa 38 -965}\special{pa 36 -966}\special{pa 35 -966}\special{pa 34 -967}%
+\special{pa 32 -967}\special{pa 31 -968}\special{pa 30 -968}\special{pa 28 -969}%
+\special{pa 27 -969}\special{pa 25 -970}\special{pa 23 -970}\special{pa 22 -970}%
+\special{pa 20 -971}\special{pa 19 -971}\special{pa 17 -971}\special{pa 15 -972}%
+\special{pa 14 -972}\special{pa 12 -972}\special{pa 10 -972}\special{pa 9 -972}%
+\special{pa 7 -972}\special{pa 5 -973}\special{pa 3 -973}\special{pa 2 -973}%
+\special{pa -0 -973}\special{pa -2 -973}\special{pa -3 -973}\special{pa -5 -973}%
+\special{pa -7 -972}\special{pa -9 -972}\special{pa -10 -972}\special{pa -12 -972}%
+\special{pa -14 -972}\special{pa -15 -972}\special{pa -17 -971}\special{pa -19 -971}%
+\special{pa -20 -971}\special{pa -22 -970}\special{pa -23 -970}\special{pa -25 -970}%
+\special{pa -27 -969}\special{pa -28 -969}\special{pa -30 -968}\special{pa -31 -968}%
+\special{pa -32 -967}\special{pa -34 -967}\special{pa -35 -966}\special{pa -36 -966}%
+\special{pa -38 -965}\special{pa -39 -965}\special{pa -40 -964}\special{pa -41 -963}%
+\special{pa -42 -963}\special{pa -44 -962}\special{pa -45 -961}\special{pa -46 -961}%
+\special{pa -47 -960}\special{pa -47 -959}\special{pa -48 -958}\special{pa -49 -958}%
+\special{pa -50 -957}\special{pa -51 -956}\special{pa -51 -955}\special{pa -52 -954}%
+\special{pa -52 -954}\special{pa -53 -953}\special{pa -53 -952}\special{pa -54 -951}%
+\special{pa -54 -950}\special{pa -54 -949}\special{pa -55 -949}\special{pa -55 -948}%
+\special{pa -55 -947}\special{pa -55 -946}\special{pa -55 -945}\special{pa -55 -944}%
+\special{pa -55 -943}\special{pa -55 -943}\special{pa -55 -942}\special{pa -54 -941}%
+\special{pa -54 -940}\special{pa -54 -939}\special{pa -53 -938}\special{pa -53 -937}%
+\special{pa -52 -937}\special{pa -52 -936}\special{pa -51 -935}\special{pa -51 -934}%
+\special{pa -50 -933}\special{pa -49 -933}\special{pa -48 -932}\special{pa -47 -931}%
+\special{pa -47 -930}\special{pa -46 -930}\special{pa -45 -929}\special{pa -44 -928}%
+\special{pa -42 -928}\special{pa -41 -927}\special{pa -40 -926}\special{pa -39 -926}%
+\special{pa -38 -925}%
+\special{fp}%
+\special{pa -57 -903}\special{pa -55 -902}\special{pa -53 -901}\special{pa -51 -901}%
+\special{pa -49 -900}\special{pa -46 -899}\special{pa -44 -898}\special{pa -42 -898}%
+\special{pa -40 -897}\special{pa -38 -896}\special{pa -35 -896}\special{pa -33 -895}%
+\special{pa -30 -895}\special{pa -28 -894}\special{pa -26 -894}\special{pa -23 -893}%
+\special{pa -21 -893}\special{pa -18 -893}\special{pa -15 -893}\special{pa -13 -892}%
+\special{pa -10 -892}\special{pa -8 -892}\special{pa -5 -892}\special{pa -3 -892}%
+\special{pa 0 -892}\special{pa 3 -892}\special{pa 5 -892}\special{pa 8 -892}%
+\special{pa 10 -892}\special{pa 13 -892}\special{pa 16 -893}\special{pa 18 -893}%
+\special{pa 21 -893}\special{pa 23 -894}\special{pa 26 -894}\special{pa 28 -894}%
+\special{pa 30 -895}\special{pa 33 -895}\special{pa 35 -896}\special{pa 38 -896}%
+\special{pa 40 -897}\special{pa 42 -898}\special{pa 44 -898}\special{pa 46 -899}%
+\special{pa 49 -900}\special{pa 51 -901}\special{pa 53 -901}\special{pa 55 -902}%
+\special{pa 57 -903}\special{pa 58 -904}\special{pa 60 -905}\special{pa 62 -906}%
+\special{pa 64 -907}\special{pa 65 -908}\special{pa 67 -909}\special{pa 68 -910}%
+\special{pa 70 -911}\special{pa 71 -912}\special{pa 72 -913}\special{pa 74 -914}%
+\special{pa 75 -916}\special{pa 76 -917}\special{pa 77 -918}\special{pa 78 -919}%
+\special{pa 79 -920}\special{pa 79 -922}\special{pa 80 -923}\special{pa 81 -924}%
+\special{pa 81 -925}\special{pa 82 -927}\special{pa 82 -928}\special{pa 82 -929}%
+\special{pa 83 -931}\special{pa 83 -932}\special{pa 83 -933}\special{pa 83 -935}%
+\special{pa 83 -936}\special{pa 82 -937}\special{pa 82 -938}\special{pa 82 -940}%
+\special{pa 81 -941}\special{pa 81 -942}\special{pa 80 -943}\special{pa 79 -945}%
+\special{pa 79 -946}\special{pa 78 -947}\special{pa 77 -948}\special{pa 76 -950}%
+\special{pa 75 -951}\special{pa 74 -952}\special{pa 72 -953}\special{pa 71 -954}%
+\special{pa 70 -955}\special{pa 68 -956}\special{pa 67 -958}\special{pa 65 -959}%
+\special{pa 64 -960}\special{pa 62 -961}\special{pa 60 -962}\special{pa 58 -962}%
+\special{pa 57 -963}\special{pa 55 -964}\special{pa 53 -965}\special{pa 51 -966}%
+\special{pa 49 -967}\special{pa 46 -967}\special{pa 44 -968}\special{pa 42 -969}%
+\special{pa 40 -969}\special{pa 38 -970}\special{pa 35 -971}\special{pa 33 -971}%
+\special{pa 30 -972}\special{pa 28 -972}\special{pa 26 -973}\special{pa 23 -973}%
+\special{pa 21 -973}\special{pa 18 -974}\special{pa 15 -974}\special{pa 13 -974}%
+\special{pa 10 -974}\special{pa 8 -974}\special{pa 5 -974}\special{pa 3 -975}%
+\special{pa -0 -975}\special{pa -3 -975}\special{pa -5 -974}\special{pa -8 -974}%
+\special{pa -10 -974}\special{pa -13 -974}\special{pa -16 -974}\special{pa -18 -974}%
+\special{pa -21 -973}\special{pa -23 -973}\special{pa -26 -973}\special{pa -28 -972}%
+\special{pa -30 -972}\special{pa -33 -971}\special{pa -35 -971}\special{pa -38 -970}%
+\special{pa -40 -969}\special{pa -42 -969}\special{pa -44 -968}\special{pa -46 -967}%
+\special{pa -49 -967}\special{pa -51 -966}\special{pa -53 -965}\special{pa -55 -964}%
+\special{pa -57 -963}\special{pa -58 -962}\special{pa -60 -961}\special{pa -62 -961}%
+\special{pa -64 -960}\special{pa -65 -959}\special{pa -67 -957}\special{pa -68 -956}%
+\special{pa -70 -955}\special{pa -71 -954}\special{pa -72 -953}\special{pa -74 -952}%
+\special{pa -75 -951}\special{pa -76 -950}\special{pa -77 -948}\special{pa -78 -947}%
+\special{pa -79 -946}\special{pa -79 -945}\special{pa -80 -943}\special{pa -81 -942}%
+\special{pa -81 -941}\special{pa -82 -940}\special{pa -82 -938}\special{pa -82 -937}%
+\special{pa -83 -936}\special{pa -83 -934}\special{pa -83 -933}\special{pa -83 -932}%
+\special{pa -83 -931}\special{pa -82 -929}\special{pa -82 -928}\special{pa -82 -927}%
+\special{pa -81 -925}\special{pa -81 -924}\special{pa -80 -923}\special{pa -79 -922}%
+\special{pa -79 -920}\special{pa -78 -919}\special{pa -77 -918}\special{pa -76 -917}%
+\special{pa -75 -916}\special{pa -74 -914}\special{pa -72 -913}\special{pa -71 -912}%
+\special{pa -70 -911}\special{pa -68 -910}\special{pa -67 -909}\special{pa -65 -908}%
+\special{pa -64 -907}\special{pa -62 -906}\special{pa -60 -905}\special{pa -58 -904}%
+\special{pa -57 -903}%
+\special{fp}%
+\special{pa -75 -876}\special{pa -73 -875}\special{pa -70 -874}\special{pa -68 -873}%
+\special{pa -65 -872}\special{pa -62 -871}\special{pa -59 -870}\special{pa -56 -869}%
+\special{pa -53 -868}\special{pa -50 -867}\special{pa -47 -867}\special{pa -44 -866}%
+\special{pa -41 -865}\special{pa -37 -865}\special{pa -34 -864}\special{pa -31 -864}%
+\special{pa -27 -863}\special{pa -24 -863}\special{pa -21 -862}\special{pa -17 -862}%
+\special{pa -14 -862}\special{pa -10 -862}\special{pa -7 -861}\special{pa -3 -861}%
+\special{pa 0 -861}\special{pa 4 -861}\special{pa 7 -861}\special{pa 10 -862}%
+\special{pa 14 -862}\special{pa 17 -862}\special{pa 21 -862}\special{pa 24 -863}%
+\special{pa 27 -863}\special{pa 31 -864}\special{pa 34 -864}\special{pa 37 -865}%
+\special{pa 41 -865}\special{pa 44 -866}\special{pa 47 -867}\special{pa 50 -867}%
+\special{pa 53 -868}\special{pa 56 -869}\special{pa 59 -870}\special{pa 62 -871}%
+\special{pa 65 -872}\special{pa 68 -873}\special{pa 70 -874}\special{pa 73 -875}%
+\special{pa 75 -876}\special{pa 78 -878}\special{pa 80 -879}\special{pa 83 -880}%
+\special{pa 85 -881}\special{pa 87 -883}\special{pa 89 -884}\special{pa 91 -886}%
+\special{pa 93 -887}\special{pa 95 -888}\special{pa 97 -890}\special{pa 98 -891}%
+\special{pa 100 -893}\special{pa 101 -895}\special{pa 103 -896}\special{pa 104 -898}%
+\special{pa 105 -899}\special{pa 106 -901}\special{pa 107 -903}\special{pa 108 -904}%
+\special{pa 108 -906}\special{pa 109 -908}\special{pa 109 -910}\special{pa 110 -911}%
+\special{pa 110 -913}\special{pa 110 -915}\special{pa 110 -917}\special{pa 110 -918}%
+\special{pa 110 -920}\special{pa 110 -922}\special{pa 109 -923}\special{pa 109 -925}%
+\special{pa 108 -927}\special{pa 108 -929}\special{pa 107 -930}\special{pa 106 -932}%
+\special{pa 105 -934}\special{pa 104 -935}\special{pa 102 -937}\special{pa 101 -938}%
+\special{pa 100 -940}\special{pa 98 -942}\special{pa 97 -943}\special{pa 95 -945}%
+\special{pa 93 -946}\special{pa 91 -947}\special{pa 89 -949}\special{pa 87 -950}%
+\special{pa 85 -952}\special{pa 83 -953}\special{pa 80 -954}\special{pa 78 -955}%
+\special{pa 75 -957}\special{pa 73 -958}\special{pa 70 -959}\special{pa 68 -960}%
+\special{pa 65 -961}\special{pa 62 -962}\special{pa 59 -963}\special{pa 56 -964}%
+\special{pa 53 -965}\special{pa 50 -966}\special{pa 47 -966}\special{pa 44 -967}%
+\special{pa 41 -968}\special{pa 37 -968}\special{pa 34 -969}\special{pa 31 -969}%
+\special{pa 27 -970}\special{pa 24 -970}\special{pa 21 -971}\special{pa 17 -971}%
+\special{pa 14 -971}\special{pa 10 -971}\special{pa 7 -971}\special{pa 3 -972}%
+\special{pa -0 -972}\special{pa -4 -972}\special{pa -7 -971}\special{pa -10 -971}%
+\special{pa -14 -971}\special{pa -17 -971}\special{pa -21 -971}\special{pa -24 -970}%
+\special{pa -27 -970}\special{pa -31 -969}\special{pa -34 -969}\special{pa -37 -968}%
+\special{pa -41 -968}\special{pa -44 -967}\special{pa -47 -966}\special{pa -50 -966}%
+\special{pa -53 -965}\special{pa -56 -964}\special{pa -59 -963}\special{pa -62 -962}%
+\special{pa -65 -961}\special{pa -68 -960}\special{pa -70 -959}\special{pa -73 -958}%
+\special{pa -75 -957}\special{pa -78 -955}\special{pa -80 -954}\special{pa -83 -953}%
+\special{pa -85 -952}\special{pa -87 -950}\special{pa -89 -949}\special{pa -91 -947}%
+\special{pa -93 -946}\special{pa -95 -945}\special{pa -97 -943}\special{pa -98 -941}%
+\special{pa -100 -940}\special{pa -101 -938}\special{pa -103 -937}\special{pa -104 -935}%
+\special{pa -105 -934}\special{pa -106 -932}\special{pa -107 -930}\special{pa -108 -928}%
+\special{pa -108 -927}\special{pa -109 -925}\special{pa -109 -923}\special{pa -110 -922}%
+\special{pa -110 -920}\special{pa -110 -918}\special{pa -110 -916}\special{pa -110 -915}%
+\special{pa -110 -913}\special{pa -110 -911}\special{pa -109 -910}\special{pa -109 -908}%
+\special{pa -108 -906}\special{pa -108 -904}\special{pa -107 -903}\special{pa -106 -901}%
+\special{pa -105 -899}\special{pa -104 -898}\special{pa -102 -896}\special{pa -101 -895}%
+\special{pa -100 -893}\special{pa -98 -891}\special{pa -97 -890}\special{pa -95 -888}%
+\special{pa -93 -887}\special{pa -91 -885}\special{pa -89 -884}\special{pa -87 -883}%
+\special{pa -85 -881}\special{pa -83 -880}\special{pa -80 -879}\special{pa -78 -877}%
+\special{pa -75 -876}%
+\special{fp}%
+\special{pa -94 -845}\special{pa -91 -843}\special{pa -88 -842}\special{pa -84 -841}%
+\special{pa -81 -839}\special{pa -77 -838}\special{pa -74 -837}\special{pa -70 -836}%
+\special{pa -66 -835}\special{pa -63 -834}\special{pa -59 -833}\special{pa -55 -832}%
+\special{pa -51 -831}\special{pa -47 -830}\special{pa -43 -829}\special{pa -38 -829}%
+\special{pa -34 -828}\special{pa -30 -828}\special{pa -26 -827}\special{pa -22 -827}%
+\special{pa -17 -827}\special{pa -13 -826}\special{pa -9 -826}\special{pa -4 -826}%
+\special{pa 0 -826}\special{pa 4 -826}\special{pa 9 -826}\special{pa 13 -826}%
+\special{pa 17 -827}\special{pa 22 -827}\special{pa 26 -827}\special{pa 30 -828}%
+\special{pa 34 -828}\special{pa 38 -829}\special{pa 43 -829}\special{pa 47 -830}%
+\special{pa 51 -831}\special{pa 55 -832}\special{pa 59 -833}\special{pa 63 -834}%
+\special{pa 66 -835}\special{pa 70 -836}\special{pa 74 -837}\special{pa 77 -838}%
+\special{pa 81 -839}\special{pa 84 -841}\special{pa 88 -842}\special{pa 91 -843}%
+\special{pa 94 -845}\special{pa 97 -846}\special{pa 100 -848}\special{pa 103 -849}%
+\special{pa 106 -851}\special{pa 109 -853}\special{pa 112 -855}\special{pa 114 -856}%
+\special{pa 116 -858}\special{pa 119 -860}\special{pa 121 -862}\special{pa 123 -864}%
+\special{pa 125 -866}\special{pa 126 -868}\special{pa 128 -870}\special{pa 130 -872}%
+\special{pa 131 -874}\special{pa 132 -876}\special{pa 133 -878}\special{pa 134 -880}%
+\special{pa 135 -882}\special{pa 136 -884}\special{pa 137 -886}\special{pa 137 -889}%
+\special{pa 138 -891}\special{pa 138 -893}\special{pa 138 -895}\special{pa 138 -897}%
+\special{pa 138 -899}\special{pa 137 -902}\special{pa 137 -904}\special{pa 136 -906}%
+\special{pa 135 -908}\special{pa 134 -910}\special{pa 133 -912}\special{pa 132 -914}%
+\special{pa 131 -916}\special{pa 130 -918}\special{pa 128 -920}\special{pa 126 -922}%
+\special{pa 125 -924}\special{pa 123 -926}\special{pa 121 -928}\special{pa 119 -930}%
+\special{pa 116 -932}\special{pa 114 -934}\special{pa 111 -936}\special{pa 109 -937}%
+\special{pa 106 -939}\special{pa 103 -941}\special{pa 100 -942}\special{pa 97 -944}%
+\special{pa 94 -945}\special{pa 91 -947}\special{pa 88 -948}\special{pa 84 -949}%
+\special{pa 81 -951}\special{pa 77 -952}\special{pa 74 -953}\special{pa 70 -954}%
+\special{pa 66 -955}\special{pa 63 -956}\special{pa 59 -957}\special{pa 55 -958}%
+\special{pa 51 -959}\special{pa 47 -960}\special{pa 43 -961}\special{pa 38 -961}%
+\special{pa 34 -962}\special{pa 30 -962}\special{pa 26 -963}\special{pa 22 -963}%
+\special{pa 17 -963}\special{pa 13 -964}\special{pa 9 -964}\special{pa 4 -964}%
+\special{pa -0 -964}\special{pa -4 -964}\special{pa -9 -964}\special{pa -13 -964}%
+\special{pa -17 -963}\special{pa -22 -963}\special{pa -26 -963}\special{pa -30 -962}%
+\special{pa -34 -962}\special{pa -38 -961}\special{pa -43 -961}\special{pa -47 -960}%
+\special{pa -51 -959}\special{pa -55 -958}\special{pa -59 -957}\special{pa -63 -956}%
+\special{pa -66 -955}\special{pa -70 -954}\special{pa -74 -953}\special{pa -77 -952}%
+\special{pa -81 -951}\special{pa -84 -949}\special{pa -88 -948}\special{pa -91 -947}%
+\special{pa -94 -945}\special{pa -97 -944}\special{pa -100 -942}\special{pa -103 -941}%
+\special{pa -106 -939}\special{pa -109 -937}\special{pa -112 -935}\special{pa -114 -934}%
+\special{pa -116 -932}\special{pa -119 -930}\special{pa -121 -928}\special{pa -123 -926}%
+\special{pa -125 -924}\special{pa -126 -922}\special{pa -128 -920}\special{pa -130 -918}%
+\special{pa -131 -916}\special{pa -132 -914}\special{pa -133 -912}\special{pa -134 -910}%
+\special{pa -135 -908}\special{pa -136 -906}\special{pa -137 -904}\special{pa -137 -901}%
+\special{pa -138 -899}\special{pa -138 -897}\special{pa -138 -895}\special{pa -138 -893}%
+\special{pa -138 -891}\special{pa -137 -888}\special{pa -137 -886}\special{pa -136 -884}%
+\special{pa -135 -882}\special{pa -134 -880}\special{pa -133 -878}\special{pa -132 -876}%
+\special{pa -131 -874}\special{pa -130 -872}\special{pa -128 -870}\special{pa -126 -868}%
+\special{pa -125 -866}\special{pa -123 -864}\special{pa -121 -862}\special{pa -119 -860}%
+\special{pa -116 -858}\special{pa -114 -856}\special{pa -111 -854}\special{pa -109 -853}%
+\special{pa -106 -851}\special{pa -103 -849}\special{pa -100 -848}\special{pa -97 -846}%
+\special{pa -94 -845}%
+\special{fp}%
+\special{pa -113 -808}\special{pa -109 -807}\special{pa -105 -805}\special{pa -101 -803}%
+\special{pa -97 -802}\special{pa -93 -800}\special{pa -89 -799}\special{pa -84 -798}%
+\special{pa -80 -796}\special{pa -75 -795}\special{pa -70 -794}\special{pa -66 -793}%
+\special{pa -61 -792}\special{pa -56 -791}\special{pa -51 -790}\special{pa -46 -789}%
+\special{pa -41 -789}\special{pa -36 -788}\special{pa -31 -788}\special{pa -26 -787}%
+\special{pa -21 -787}\special{pa -16 -786}\special{pa -10 -786}\special{pa -5 -786}%
+\special{pa 0 -786}\special{pa 5 -786}\special{pa 10 -786}\special{pa 16 -786}%
+\special{pa 21 -787}\special{pa 26 -787}\special{pa 31 -788}\special{pa 36 -788}%
+\special{pa 41 -789}\special{pa 46 -789}\special{pa 51 -790}\special{pa 56 -791}%
+\special{pa 61 -792}\special{pa 66 -793}\special{pa 70 -794}\special{pa 75 -795}%
+\special{pa 80 -796}\special{pa 84 -798}\special{pa 89 -799}\special{pa 93 -800}%
+\special{pa 97 -802}\special{pa 101 -803}\special{pa 105 -805}\special{pa 109 -807}%
+\special{pa 113 -809}\special{pa 117 -810}\special{pa 121 -812}\special{pa 124 -814}%
+\special{pa 127 -816}\special{pa 131 -818}\special{pa 134 -820}\special{pa 137 -822}%
+\special{pa 140 -824}\special{pa 142 -827}\special{pa 145 -829}\special{pa 147 -831}%
+\special{pa 150 -834}\special{pa 152 -836}\special{pa 154 -838}\special{pa 156 -841}%
+\special{pa 157 -843}\special{pa 159 -846}\special{pa 160 -848}\special{pa 161 -851}%
+\special{pa 162 -853}\special{pa 163 -856}\special{pa 164 -858}\special{pa 165 -861}%
+\special{pa 165 -864}\special{pa 165 -866}\special{pa 165 -869}\special{pa 165 -871}%
+\special{pa 165 -874}\special{pa 165 -877}\special{pa 164 -879}\special{pa 163 -882}%
+\special{pa 162 -884}\special{pa 161 -887}\special{pa 160 -889}\special{pa 159 -892}%
+\special{pa 157 -894}\special{pa 156 -897}\special{pa 154 -899}\special{pa 152 -902}%
+\special{pa 150 -904}\special{pa 147 -906}\special{pa 145 -909}\special{pa 142 -911}%
+\special{pa 140 -913}\special{pa 137 -915}\special{pa 134 -917}\special{pa 131 -919}%
+\special{pa 127 -921}\special{pa 124 -923}\special{pa 120 -925}\special{pa 117 -927}%
+\special{pa 113 -929}\special{pa 109 -931}\special{pa 105 -932}\special{pa 101 -934}%
+\special{pa 97 -936}\special{pa 93 -937}\special{pa 89 -939}\special{pa 84 -940}%
+\special{pa 80 -941}\special{pa 75 -942}\special{pa 70 -944}\special{pa 66 -945}%
+\special{pa 61 -946}\special{pa 56 -947}\special{pa 51 -947}\special{pa 46 -948}%
+\special{pa 41 -949}\special{pa 36 -949}\special{pa 31 -950}\special{pa 26 -950}%
+\special{pa 21 -951}\special{pa 16 -951}\special{pa 10 -951}\special{pa 5 -951}%
+\special{pa -0 -951}\special{pa -5 -951}\special{pa -10 -951}\special{pa -16 -951}%
+\special{pa -21 -951}\special{pa -26 -950}\special{pa -31 -950}\special{pa -36 -949}%
+\special{pa -41 -949}\special{pa -46 -948}\special{pa -51 -947}\special{pa -56 -947}%
+\special{pa -61 -946}\special{pa -66 -945}\special{pa -70 -944}\special{pa -75 -942}%
+\special{pa -80 -941}\special{pa -84 -940}\special{pa -89 -939}\special{pa -93 -937}%
+\special{pa -97 -936}\special{pa -101 -934}\special{pa -105 -932}\special{pa -109 -931}%
+\special{pa -113 -929}\special{pa -117 -927}\special{pa -121 -925}\special{pa -124 -923}%
+\special{pa -127 -921}\special{pa -131 -919}\special{pa -134 -917}\special{pa -137 -915}%
+\special{pa -140 -913}\special{pa -142 -911}\special{pa -145 -909}\special{pa -147 -906}%
+\special{pa -150 -904}\special{pa -152 -902}\special{pa -154 -899}\special{pa -156 -897}%
+\special{pa -157 -894}\special{pa -159 -892}\special{pa -160 -889}\special{pa -161 -887}%
+\special{pa -162 -884}\special{pa -163 -882}\special{pa -164 -879}\special{pa -165 -877}%
+\special{pa -165 -874}\special{pa -165 -871}\special{pa -165 -869}\special{pa -165 -866}%
+\special{pa -165 -864}\special{pa -165 -861}\special{pa -164 -858}\special{pa -163 -856}%
+\special{pa -162 -853}\special{pa -161 -851}\special{pa -160 -848}\special{pa -159 -846}%
+\special{pa -157 -843}\special{pa -156 -841}\special{pa -154 -838}\special{pa -152 -836}%
+\special{pa -150 -834}\special{pa -147 -831}\special{pa -145 -829}\special{pa -142 -827}%
+\special{pa -140 -824}\special{pa -137 -822}\special{pa -134 -820}\special{pa -131 -818}%
+\special{pa -127 -816}\special{pa -124 -814}\special{pa -120 -812}\special{pa -117 -810}%
+\special{pa -113 -808}%
+\special{fp}%
+\special{pa -132 -767}\special{pa -128 -765}\special{pa -123 -763}\special{pa -118 -761}%
+\special{pa -113 -760}\special{pa -108 -758}\special{pa -103 -756}\special{pa -98 -755}%
+\special{pa -93 -753}\special{pa -88 -752}\special{pa -82 -750}\special{pa -77 -749}%
+\special{pa -71 -748}\special{pa -65 -747}\special{pa -60 -746}\special{pa -54 -745}%
+\special{pa -48 -744}\special{pa -42 -744}\special{pa -36 -743}\special{pa -30 -742}%
+\special{pa -24 -742}\special{pa -18 -742}\special{pa -12 -741}\special{pa -6 -741}%
+\special{pa 0 -741}\special{pa 6 -741}\special{pa 12 -741}\special{pa 18 -742}%
+\special{pa 24 -742}\special{pa 30 -742}\special{pa 36 -743}\special{pa 42 -744}%
+\special{pa 48 -744}\special{pa 54 -745}\special{pa 60 -746}\special{pa 65 -747}%
+\special{pa 71 -748}\special{pa 77 -749}\special{pa 82 -750}\special{pa 88 -752}%
+\special{pa 93 -753}\special{pa 98 -755}\special{pa 103 -756}\special{pa 108 -758}%
+\special{pa 113 -760}\special{pa 118 -762}\special{pa 123 -763}\special{pa 128 -765}%
+\special{pa 132 -767}\special{pa 136 -770}\special{pa 141 -772}\special{pa 145 -774}%
+\special{pa 149 -776}\special{pa 152 -779}\special{pa 156 -781}\special{pa 160 -784}%
+\special{pa 163 -786}\special{pa 166 -789}\special{pa 169 -791}\special{pa 172 -794}%
+\special{pa 175 -797}\special{pa 177 -799}\special{pa 179 -802}\special{pa 182 -805}%
+\special{pa 183 -808}\special{pa 185 -811}\special{pa 187 -814}\special{pa 188 -817}%
+\special{pa 190 -820}\special{pa 191 -823}\special{pa 191 -826}\special{pa 192 -829}%
+\special{pa 193 -832}\special{pa 193 -835}\special{pa 193 -838}\special{pa 193 -841}%
+\special{pa 193 -844}\special{pa 192 -847}\special{pa 191 -850}\special{pa 191 -853}%
+\special{pa 189 -856}\special{pa 188 -859}\special{pa 187 -862}\special{pa 185 -865}%
+\special{pa 183 -868}\special{pa 181 -870}\special{pa 179 -873}\special{pa 177 -876}%
+\special{pa 175 -879}\special{pa 172 -882}\special{pa 169 -884}\special{pa 166 -887}%
+\special{pa 163 -889}\special{pa 160 -892}\special{pa 156 -894}\special{pa 152 -897}%
+\special{pa 149 -899}\special{pa 145 -902}\special{pa 141 -904}\special{pa 136 -906}%
+\special{pa 132 -908}\special{pa 128 -910}\special{pa 123 -912}\special{pa 118 -914}%
+\special{pa 113 -916}\special{pa 108 -918}\special{pa 103 -919}\special{pa 98 -921}%
+\special{pa 93 -922}\special{pa 88 -924}\special{pa 82 -925}\special{pa 77 -926}%
+\special{pa 71 -927}\special{pa 65 -928}\special{pa 60 -929}\special{pa 54 -930}%
+\special{pa 48 -931}\special{pa 42 -932}\special{pa 36 -932}\special{pa 30 -933}%
+\special{pa 24 -933}\special{pa 18 -934}\special{pa 12 -934}\special{pa 6 -934}%
+\special{pa -0 -934}\special{pa -6 -934}\special{pa -12 -934}\special{pa -18 -934}%
+\special{pa -24 -933}\special{pa -30 -933}\special{pa -36 -932}\special{pa -42 -932}%
+\special{pa -48 -931}\special{pa -54 -930}\special{pa -60 -929}\special{pa -65 -928}%
+\special{pa -71 -927}\special{pa -77 -926}\special{pa -82 -925}\special{pa -88 -924}%
+\special{pa -93 -922}\special{pa -98 -921}\special{pa -103 -919}\special{pa -108 -917}%
+\special{pa -113 -916}\special{pa -118 -914}\special{pa -123 -912}\special{pa -128 -910}%
+\special{pa -132 -908}\special{pa -136 -906}\special{pa -141 -904}\special{pa -145 -901}%
+\special{pa -149 -899}\special{pa -152 -897}\special{pa -156 -894}\special{pa -160 -892}%
+\special{pa -163 -889}\special{pa -166 -887}\special{pa -169 -884}\special{pa -172 -881}%
+\special{pa -175 -879}\special{pa -177 -876}\special{pa -179 -873}\special{pa -182 -870}%
+\special{pa -183 -867}\special{pa -185 -865}\special{pa -187 -862}\special{pa -188 -859}%
+\special{pa -190 -856}\special{pa -191 -853}\special{pa -191 -850}\special{pa -192 -847}%
+\special{pa -193 -844}\special{pa -193 -841}\special{pa -193 -838}\special{pa -193 -835}%
+\special{pa -193 -832}\special{pa -192 -829}\special{pa -191 -826}\special{pa -191 -823}%
+\special{pa -189 -820}\special{pa -188 -817}\special{pa -187 -814}\special{pa -185 -811}%
+\special{pa -183 -808}\special{pa -181 -805}\special{pa -179 -802}\special{pa -177 -799}%
+\special{pa -175 -797}\special{pa -172 -794}\special{pa -169 -791}\special{pa -166 -789}%
+\special{pa -163 -786}\special{pa -160 -783}\special{pa -156 -781}\special{pa -152 -779}%
+\special{pa -149 -776}\special{pa -145 -774}\special{pa -141 -772}\special{pa -136 -769}%
+\special{pa -132 -767}%
+\special{fp}%
+\special{pa -151 -722}\special{pa -146 -719}\special{pa -140 -717}\special{pa -135 -715}%
+\special{pa -130 -713}\special{pa -124 -711}\special{pa -118 -709}\special{pa -112 -707}%
+\special{pa -106 -705}\special{pa -100 -704}\special{pa -94 -702}\special{pa -87 -701}%
+\special{pa -81 -699}\special{pa -75 -698}\special{pa -68 -697}\special{pa -61 -696}%
+\special{pa -55 -695}\special{pa -48 -694}\special{pa -41 -694}\special{pa -34 -693}%
+\special{pa -28 -693}\special{pa -21 -692}\special{pa -14 -692}\special{pa -7 -692}%
+\special{pa 0 -692}\special{pa 7 -692}\special{pa 14 -692}\special{pa 21 -692}%
+\special{pa 28 -693}\special{pa 35 -693}\special{pa 41 -694}\special{pa 48 -694}%
+\special{pa 55 -695}\special{pa 62 -696}\special{pa 68 -697}\special{pa 75 -698}%
+\special{pa 81 -699}\special{pa 88 -701}\special{pa 94 -702}\special{pa 100 -704}%
+\special{pa 106 -705}\special{pa 112 -707}\special{pa 118 -709}\special{pa 124 -711}%
+\special{pa 130 -713}\special{pa 135 -715}\special{pa 141 -717}\special{pa 146 -719}%
+\special{pa 151 -722}\special{pa 156 -724}\special{pa 161 -726}\special{pa 165 -729}%
+\special{pa 170 -732}\special{pa 174 -734}\special{pa 178 -737}\special{pa 182 -740}%
+\special{pa 186 -743}\special{pa 190 -746}\special{pa 193 -749}\special{pa 196 -752}%
+\special{pa 200 -755}\special{pa 202 -758}\special{pa 205 -761}\special{pa 207 -765}%
+\special{pa 210 -768}\special{pa 212 -771}\special{pa 214 -775}\special{pa 215 -778}%
+\special{pa 217 -781}\special{pa 218 -785}\special{pa 219 -788}\special{pa 220 -792}%
+\special{pa 220 -795}\special{pa 220 -799}\special{pa 220 -802}\special{pa 220 -805}%
+\special{pa 220 -809}\special{pa 219 -812}\special{pa 219 -816}\special{pa 218 -819}%
+\special{pa 217 -823}\special{pa 215 -826}\special{pa 214 -829}\special{pa 212 -833}%
+\special{pa 210 -836}\special{pa 207 -839}\special{pa 205 -843}\special{pa 202 -846}%
+\special{pa 199 -849}\special{pa 196 -852}\special{pa 193 -855}\special{pa 190 -858}%
+\special{pa 186 -861}\special{pa 182 -864}\special{pa 178 -867}\special{pa 174 -870}%
+\special{pa 170 -872}\special{pa 165 -875}\special{pa 161 -877}\special{pa 156 -880}%
+\special{pa 151 -882}\special{pa 146 -885}\special{pa 140 -887}\special{pa 135 -889}%
+\special{pa 130 -891}\special{pa 124 -893}\special{pa 118 -895}\special{pa 112 -897}%
+\special{pa 106 -899}\special{pa 100 -900}\special{pa 94 -902}\special{pa 87 -903}%
+\special{pa 81 -904}\special{pa 75 -906}\special{pa 68 -907}\special{pa 61 -908}%
+\special{pa 55 -909}\special{pa 48 -910}\special{pa 41 -910}\special{pa 34 -911}%
+\special{pa 28 -911}\special{pa 21 -912}\special{pa 14 -912}\special{pa 7 -912}%
+\special{pa -0 -912}\special{pa -7 -912}\special{pa -14 -912}\special{pa -21 -912}%
+\special{pa -28 -911}\special{pa -35 -911}\special{pa -41 -910}\special{pa -48 -909}%
+\special{pa -55 -909}\special{pa -62 -908}\special{pa -68 -907}\special{pa -75 -906}%
+\special{pa -81 -904}\special{pa -88 -903}\special{pa -94 -902}\special{pa -100 -900}%
+\special{pa -106 -899}\special{pa -112 -897}\special{pa -118 -895}\special{pa -124 -893}%
+\special{pa -130 -891}\special{pa -135 -889}\special{pa -141 -887}\special{pa -146 -885}%
+\special{pa -151 -882}\special{pa -156 -880}\special{pa -161 -877}\special{pa -165 -875}%
+\special{pa -170 -872}\special{pa -174 -869}\special{pa -178 -867}\special{pa -182 -864}%
+\special{pa -186 -861}\special{pa -190 -858}\special{pa -193 -855}\special{pa -196 -852}%
+\special{pa -200 -849}\special{pa -202 -846}\special{pa -205 -842}\special{pa -207 -839}%
+\special{pa -210 -836}\special{pa -212 -833}\special{pa -214 -829}\special{pa -215 -826}%
+\special{pa -217 -823}\special{pa -218 -819}\special{pa -219 -816}\special{pa -220 -812}%
+\special{pa -220 -809}\special{pa -220 -805}\special{pa -220 -802}\special{pa -220 -798}%
+\special{pa -220 -795}\special{pa -219 -792}\special{pa -219 -788}\special{pa -218 -785}%
+\special{pa -217 -781}\special{pa -215 -778}\special{pa -214 -774}\special{pa -212 -771}%
+\special{pa -210 -768}\special{pa -207 -765}\special{pa -205 -761}\special{pa -202 -758}%
+\special{pa -199 -755}\special{pa -196 -752}\special{pa -193 -749}\special{pa -190 -746}%
+\special{pa -186 -743}\special{pa -182 -740}\special{pa -178 -737}\special{pa -174 -734}%
+\special{pa -170 -732}\special{pa -165 -729}\special{pa -161 -726}\special{pa -156 -724}%
+\special{pa -151 -722}%
+\special{fp}%
+\special{pa -170 -671}\special{pa -164 -668}\special{pa -158 -666}\special{pa -152 -663}%
+\special{pa -146 -661}\special{pa -139 -659}\special{pa -133 -657}\special{pa -126 -655}%
+\special{pa -119 -653}\special{pa -113 -651}\special{pa -106 -649}\special{pa -98 -648}%
+\special{pa -91 -646}\special{pa -84 -645}\special{pa -77 -643}\special{pa -69 -642}%
+\special{pa -62 -641}\special{pa -54 -640}\special{pa -46 -640}\special{pa -39 -639}%
+\special{pa -31 -638}\special{pa -23 -638}\special{pa -15 -638}\special{pa -8 -637}%
+\special{pa 0 -637}\special{pa 8 -637}\special{pa 16 -638}\special{pa 23 -638}%
+\special{pa 31 -638}\special{pa 39 -639}\special{pa 47 -640}\special{pa 54 -640}%
+\special{pa 62 -641}\special{pa 69 -642}\special{pa 77 -643}\special{pa 84 -645}%
+\special{pa 91 -646}\special{pa 99 -648}\special{pa 106 -649}\special{pa 113 -651}%
+\special{pa 120 -653}\special{pa 126 -655}\special{pa 133 -657}\special{pa 139 -659}%
+\special{pa 146 -661}\special{pa 152 -663}\special{pa 158 -666}\special{pa 164 -668}%
+\special{pa 170 -671}\special{pa 175 -674}\special{pa 181 -676}\special{pa 186 -679}%
+\special{pa 191 -682}\special{pa 196 -685}\special{pa 201 -688}\special{pa 205 -692}%
+\special{pa 209 -695}\special{pa 214 -698}\special{pa 217 -702}\special{pa 221 -705}%
+\special{pa 224 -709}\special{pa 228 -712}\special{pa 231 -716}\special{pa 233 -719}%
+\special{pa 236 -723}\special{pa 238 -727}\special{pa 240 -731}\special{pa 242 -734}%
+\special{pa 244 -738}\special{pa 245 -742}\special{pa 246 -746}\special{pa 247 -750}%
+\special{pa 248 -754}\special{pa 248 -758}\special{pa 248 -761}\special{pa 248 -765}%
+\special{pa 248 -769}\special{pa 247 -773}\special{pa 246 -777}\special{pa 245 -781}%
+\special{pa 244 -785}\special{pa 242 -788}\special{pa 240 -792}\special{pa 238 -796}%
+\special{pa 236 -800}\special{pa 233 -803}\special{pa 231 -807}\special{pa 228 -811}%
+\special{pa 224 -814}\special{pa 221 -818}\special{pa 217 -821}\special{pa 213 -825}%
+\special{pa 209 -828}\special{pa 205 -831}\special{pa 201 -834}\special{pa 196 -837}%
+\special{pa 191 -840}\special{pa 186 -843}\special{pa 181 -846}\special{pa 175 -849}%
+\special{pa 170 -852}\special{pa 164 -854}\special{pa 158 -857}\special{pa 152 -859}%
+\special{pa 146 -862}\special{pa 139 -864}\special{pa 133 -866}\special{pa 126 -868}%
+\special{pa 119 -870}\special{pa 113 -872}\special{pa 106 -874}\special{pa 98 -875}%
+\special{pa 91 -877}\special{pa 84 -878}\special{pa 77 -879}\special{pa 69 -880}%
+\special{pa 62 -881}\special{pa 54 -882}\special{pa 46 -883}\special{pa 39 -884}%
+\special{pa 31 -884}\special{pa 23 -885}\special{pa 15 -885}\special{pa 8 -885}%
+\special{pa -0 -885}\special{pa -8 -885}\special{pa -16 -885}\special{pa -23 -885}%
+\special{pa -31 -884}\special{pa -39 -884}\special{pa -47 -883}\special{pa -54 -882}%
+\special{pa -62 -881}\special{pa -69 -880}\special{pa -77 -879}\special{pa -84 -878}%
+\special{pa -91 -877}\special{pa -99 -875}\special{pa -106 -874}\special{pa -113 -872}%
+\special{pa -120 -870}\special{pa -126 -868}\special{pa -133 -866}\special{pa -139 -864}%
+\special{pa -146 -862}\special{pa -152 -859}\special{pa -158 -857}\special{pa -164 -854}%
+\special{pa -170 -852}\special{pa -175 -849}\special{pa -181 -846}\special{pa -186 -843}%
+\special{pa -191 -840}\special{pa -196 -837}\special{pa -201 -834}\special{pa -205 -831}%
+\special{pa -209 -828}\special{pa -214 -824}\special{pa -217 -821}\special{pa -221 -818}%
+\special{pa -224 -814}\special{pa -228 -811}\special{pa -231 -807}\special{pa -233 -803}%
+\special{pa -236 -800}\special{pa -238 -796}\special{pa -240 -792}\special{pa -242 -788}%
+\special{pa -244 -785}\special{pa -245 -781}\special{pa -246 -777}\special{pa -247 -773}%
+\special{pa -248 -769}\special{pa -248 -765}\special{pa -248 -761}\special{pa -248 -757}%
+\special{pa -248 -754}\special{pa -247 -750}\special{pa -246 -746}\special{pa -245 -742}%
+\special{pa -244 -738}\special{pa -242 -734}\special{pa -240 -730}\special{pa -238 -727}%
+\special{pa -236 -723}\special{pa -233 -719}\special{pa -231 -716}\special{pa -228 -712}%
+\special{pa -224 -709}\special{pa -221 -705}\special{pa -217 -702}\special{pa -213 -698}%
+\special{pa -209 -695}\special{pa -205 -692}\special{pa -201 -688}\special{pa -196 -685}%
+\special{pa -191 -682}\special{pa -186 -679}\special{pa -181 -676}\special{pa -175 -674}%
+\special{pa -170 -671}%
+\special{fp}%
+\special{pa -189 -616}\special{pa -182 -613}\special{pa -176 -610}\special{pa -169 -607}%
+\special{pa -162 -604}\special{pa -155 -602}\special{pa -148 -600}\special{pa -140 -597}%
+\special{pa -133 -595}\special{pa -125 -593}\special{pa -117 -591}\special{pa -109 -590}%
+\special{pa -101 -588}\special{pa -93 -586}\special{pa -85 -585}\special{pa -77 -584}%
+\special{pa -68 -583}\special{pa -60 -582}\special{pa -52 -581}\special{pa -43 -580}%
+\special{pa -34 -579}\special{pa -26 -579}\special{pa -17 -578}\special{pa -9 -578}%
+\special{pa 0 -578}\special{pa 9 -578}\special{pa 17 -578}\special{pa 26 -579}%
+\special{pa 35 -579}\special{pa 43 -580}\special{pa 52 -581}\special{pa 60 -582}%
+\special{pa 69 -583}\special{pa 77 -584}\special{pa 85 -585}\special{pa 93 -586}%
+\special{pa 102 -588}\special{pa 110 -590}\special{pa 117 -591}\special{pa 125 -593}%
+\special{pa 133 -595}\special{pa 140 -597}\special{pa 148 -600}\special{pa 155 -602}%
+\special{pa 162 -605}\special{pa 169 -607}\special{pa 176 -610}\special{pa 182 -613}%
+\special{pa 189 -616}\special{pa 195 -619}\special{pa 201 -622}\special{pa 207 -625}%
+\special{pa 212 -628}\special{pa 218 -632}\special{pa 223 -635}\special{pa 228 -639}%
+\special{pa 233 -642}\special{pa 237 -646}\special{pa 242 -650}\special{pa 246 -653}%
+\special{pa 249 -657}\special{pa 253 -661}\special{pa 256 -665}\special{pa 259 -669}%
+\special{pa 262 -673}\special{pa 265 -678}\special{pa 267 -682}\special{pa 269 -686}%
+\special{pa 271 -690}\special{pa 272 -694}\special{pa 273 -699}\special{pa 274 -703}%
+\special{pa 275 -707}\special{pa 275 -712}\special{pa 276 -716}\special{pa 275 -720}%
+\special{pa 275 -725}\special{pa 274 -729}\special{pa 273 -733}\special{pa 272 -738}%
+\special{pa 271 -742}\special{pa 269 -746}\special{pa 267 -750}\special{pa 265 -754}%
+\special{pa 262 -759}\special{pa 259 -763}\special{pa 256 -767}\special{pa 253 -771}%
+\special{pa 249 -775}\special{pa 246 -779}\special{pa 241 -782}\special{pa 237 -786}%
+\special{pa 233 -790}\special{pa 228 -793}\special{pa 223 -797}\special{pa 218 -801}%
+\special{pa 212 -804}\special{pa 207 -807}\special{pa 201 -810}\special{pa 195 -813}%
+\special{pa 189 -816}\special{pa 182 -819}\special{pa 176 -822}\special{pa 169 -825}%
+\special{pa 162 -828}\special{pa 155 -830}\special{pa 148 -832}\special{pa 140 -835}%
+\special{pa 133 -837}\special{pa 125 -839}\special{pa 117 -841}\special{pa 109 -842}%
+\special{pa 101 -844}\special{pa 93 -846}\special{pa 85 -847}\special{pa 77 -848}%
+\special{pa 68 -849}\special{pa 60 -850}\special{pa 52 -851}\special{pa 43 -852}%
+\special{pa 34 -853}\special{pa 26 -853}\special{pa 17 -854}\special{pa 9 -854}%
+\special{pa -0 -854}\special{pa -9 -854}\special{pa -17 -854}\special{pa -26 -853}%
+\special{pa -35 -853}\special{pa -43 -852}\special{pa -52 -851}\special{pa -60 -850}%
+\special{pa -69 -849}\special{pa -77 -848}\special{pa -85 -847}\special{pa -93 -846}%
+\special{pa -102 -844}\special{pa -110 -842}\special{pa -117 -841}\special{pa -125 -839}%
+\special{pa -133 -837}\special{pa -140 -835}\special{pa -148 -832}\special{pa -155 -830}%
+\special{pa -162 -827}\special{pa -169 -825}\special{pa -176 -822}\special{pa -182 -819}%
+\special{pa -189 -816}\special{pa -195 -813}\special{pa -201 -810}\special{pa -207 -807}%
+\special{pa -212 -804}\special{pa -218 -800}\special{pa -223 -797}\special{pa -228 -793}%
+\special{pa -233 -790}\special{pa -237 -786}\special{pa -242 -782}\special{pa -246 -779}%
+\special{pa -249 -775}\special{pa -253 -771}\special{pa -256 -767}\special{pa -259 -763}%
+\special{pa -262 -759}\special{pa -265 -754}\special{pa -267 -750}\special{pa -269 -746}%
+\special{pa -271 -742}\special{pa -272 -738}\special{pa -273 -733}\special{pa -274 -729}%
+\special{pa -275 -725}\special{pa -275 -720}\special{pa -276 -716}\special{pa -275 -712}%
+\special{pa -275 -707}\special{pa -274 -703}\special{pa -273 -699}\special{pa -272 -694}%
+\special{pa -271 -690}\special{pa -269 -686}\special{pa -267 -682}\special{pa -265 -678}%
+\special{pa -262 -673}\special{pa -259 -669}\special{pa -256 -665}\special{pa -253 -661}%
+\special{pa -249 -657}\special{pa -246 -653}\special{pa -241 -650}\special{pa -237 -646}%
+\special{pa -233 -642}\special{pa -228 -639}\special{pa -223 -635}\special{pa -218 -632}%
+\special{pa -212 -628}\special{pa -207 -625}\special{pa -201 -622}\special{pa -195 -619}%
+\special{pa -189 -616}%
+\special{fp}%
+\special{pa -207 -555}\special{pa -200 -552}\special{pa -193 -549}\special{pa -186 -546}%
+\special{pa -178 -543}\special{pa -170 -540}\special{pa -162 -538}\special{pa -154 -535}%
+\special{pa -146 -533}\special{pa -138 -531}\special{pa -129 -529}\special{pa -120 -527}%
+\special{pa -111 -525}\special{pa -103 -523}\special{pa -94 -522}\special{pa -84 -520}%
+\special{pa -75 -519}\special{pa -66 -518}\special{pa -57 -517}\special{pa -47 -516}%
+\special{pa -38 -515}\special{pa -28 -515}\special{pa -19 -515}\special{pa -9 -514}%
+\special{pa 0 -514}\special{pa 10 -514}\special{pa 19 -515}\special{pa 29 -515}%
+\special{pa 38 -516}\special{pa 48 -516}\special{pa 57 -517}\special{pa 66 -518}%
+\special{pa 75 -519}\special{pa 85 -520}\special{pa 94 -522}\special{pa 103 -523}%
+\special{pa 112 -525}\special{pa 120 -527}\special{pa 129 -529}\special{pa 138 -531}%
+\special{pa 146 -533}\special{pa 154 -535}\special{pa 163 -538}\special{pa 170 -541}%
+\special{pa 178 -543}\special{pa 186 -546}\special{pa 193 -549}\special{pa 201 -552}%
+\special{pa 208 -555}\special{pa 214 -559}\special{pa 221 -562}\special{pa 227 -566}%
+\special{pa 234 -569}\special{pa 240 -573}\special{pa 245 -577}\special{pa 251 -581}%
+\special{pa 256 -585}\special{pa 261 -589}\special{pa 266 -593}\special{pa 270 -597}%
+\special{pa 274 -601}\special{pa 278 -606}\special{pa 282 -610}\special{pa 285 -615}%
+\special{pa 288 -619}\special{pa 291 -624}\special{pa 294 -628}\special{pa 296 -633}%
+\special{pa 298 -638}\special{pa 299 -642}\special{pa 301 -647}\special{pa 302 -652}%
+\special{pa 303 -656}\special{pa 303 -661}\special{pa 303 -666}\special{pa 303 -671}%
+\special{pa 303 -675}\special{pa 302 -680}\special{pa 301 -685}\special{pa 299 -690}%
+\special{pa 298 -694}\special{pa 296 -699}\special{pa 294 -704}\special{pa 291 -708}%
+\special{pa 288 -713}\special{pa 285 -717}\special{pa 282 -722}\special{pa 278 -726}%
+\special{pa 274 -730}\special{pa 270 -735}\special{pa 266 -739}\special{pa 261 -743}%
+\special{pa 256 -747}\special{pa 251 -751}\special{pa 245 -755}\special{pa 239 -759}%
+\special{pa 234 -763}\special{pa 227 -766}\special{pa 221 -770}\special{pa 214 -773}%
+\special{pa 207 -776}\special{pa 200 -780}\special{pa 193 -783}\special{pa 186 -786}%
+\special{pa 178 -789}\special{pa 170 -791}\special{pa 162 -794}\special{pa 154 -796}%
+\special{pa 146 -799}\special{pa 138 -801}\special{pa 129 -803}\special{pa 120 -805}%
+\special{pa 111 -807}\special{pa 103 -809}\special{pa 94 -810}\special{pa 84 -811}%
+\special{pa 75 -813}\special{pa 66 -814}\special{pa 57 -815}\special{pa 47 -816}%
+\special{pa 38 -816}\special{pa 28 -817}\special{pa 19 -817}\special{pa 9 -817}%
+\special{pa -0 -817}\special{pa -10 -817}\special{pa -19 -817}\special{pa -29 -817}%
+\special{pa -38 -816}\special{pa -48 -816}\special{pa -57 -815}\special{pa -66 -814}%
+\special{pa -75 -813}\special{pa -85 -811}\special{pa -94 -810}\special{pa -103 -808}%
+\special{pa -112 -807}\special{pa -120 -805}\special{pa -129 -803}\special{pa -138 -801}%
+\special{pa -146 -799}\special{pa -154 -796}\special{pa -163 -794}\special{pa -170 -791}%
+\special{pa -178 -788}\special{pa -186 -786}\special{pa -193 -783}\special{pa -201 -780}%
+\special{pa -208 -776}\special{pa -214 -773}\special{pa -221 -770}\special{pa -227 -766}%
+\special{pa -234 -762}\special{pa -240 -759}\special{pa -245 -755}\special{pa -251 -751}%
+\special{pa -256 -747}\special{pa -261 -743}\special{pa -266 -739}\special{pa -270 -735}%
+\special{pa -274 -730}\special{pa -278 -726}\special{pa -282 -722}\special{pa -285 -717}%
+\special{pa -288 -713}\special{pa -291 -708}\special{pa -294 -704}\special{pa -296 -699}%
+\special{pa -298 -694}\special{pa -299 -690}\special{pa -301 -685}\special{pa -302 -680}%
+\special{pa -303 -675}\special{pa -303 -671}\special{pa -303 -666}\special{pa -303 -661}%
+\special{pa -303 -656}\special{pa -302 -652}\special{pa -301 -647}\special{pa -299 -642}%
+\special{pa -298 -637}\special{pa -296 -633}\special{pa -294 -628}\special{pa -291 -624}%
+\special{pa -288 -619}\special{pa -285 -614}\special{pa -282 -610}\special{pa -278 -606}%
+\special{pa -274 -601}\special{pa -270 -597}\special{pa -266 -593}\special{pa -261 -589}%
+\special{pa -256 -585}\special{pa -251 -581}\special{pa -245 -577}\special{pa -239 -573}%
+\special{pa -234 -569}\special{pa -227 -566}\special{pa -221 -562}\special{pa -214 -559}%
+\special{pa -207 -555}%
+\special{fp}%
+\special{pa -226 -490}\special{pa -219 -487}\special{pa -211 -484}\special{pa -203 -480}%
+\special{pa -194 -477}\special{pa -186 -474}\special{pa -177 -471}\special{pa -168 -469}%
+\special{pa -159 -466}\special{pa -150 -464}\special{pa -141 -461}\special{pa -131 -459}%
+\special{pa -122 -457}\special{pa -112 -455}\special{pa -102 -454}\special{pa -92 -452}%
+\special{pa -82 -451}\special{pa -72 -450}\special{pa -62 -449}\special{pa -52 -448}%
+\special{pa -41 -447}\special{pa -31 -446}\special{pa -21 -446}\special{pa -10 -446}%
+\special{pa 0 -446}\special{pa 11 -446}\special{pa 21 -446}\special{pa 31 -446}%
+\special{pa 42 -447}\special{pa 52 -448}\special{pa 62 -449}\special{pa 72 -450}%
+\special{pa 82 -451}\special{pa 92 -452}\special{pa 102 -454}\special{pa 112 -455}%
+\special{pa 122 -457}\special{pa 131 -459}\special{pa 141 -461}\special{pa 150 -464}%
+\special{pa 159 -466}\special{pa 168 -469}\special{pa 177 -471}\special{pa 186 -474}%
+\special{pa 194 -477}\special{pa 203 -480}\special{pa 211 -484}\special{pa 219 -487}%
+\special{pa 226 -490}\special{pa 234 -494}\special{pa 241 -498}\special{pa 248 -502}%
+\special{pa 255 -506}\special{pa 261 -510}\special{pa 268 -514}\special{pa 274 -518}%
+\special{pa 279 -522}\special{pa 285 -527}\special{pa 290 -531}\special{pa 295 -536}%
+\special{pa 299 -541}\special{pa 304 -545}\special{pa 308 -550}\special{pa 311 -555}%
+\special{pa 315 -560}\special{pa 318 -565}\special{pa 320 -570}\special{pa 323 -575}%
+\special{pa 325 -580}\special{pa 327 -585}\special{pa 328 -590}\special{pa 329 -595}%
+\special{pa 330 -601}\special{pa 331 -606}\special{pa 331 -611}\special{pa 331 -616}%
+\special{pa 330 -621}\special{pa 329 -627}\special{pa 328 -632}\special{pa 327 -637}%
+\special{pa 325 -642}\special{pa 323 -647}\special{pa 320 -652}\special{pa 318 -657}%
+\special{pa 314 -662}\special{pa 311 -667}\special{pa 307 -672}\special{pa 303 -677}%
+\special{pa 299 -681}\special{pa 295 -686}\special{pa 290 -691}\special{pa 285 -695}%
+\special{pa 279 -700}\special{pa 273 -704}\special{pa 267 -708}\special{pa 261 -712}%
+\special{pa 255 -716}\special{pa 248 -720}\special{pa 241 -724}\special{pa 234 -728}%
+\special{pa 226 -732}\special{pa 219 -735}\special{pa 211 -738}\special{pa 203 -742}%
+\special{pa 194 -745}\special{pa 186 -748}\special{pa 177 -751}\special{pa 168 -753}%
+\special{pa 159 -756}\special{pa 150 -758}\special{pa 141 -761}\special{pa 131 -763}%
+\special{pa 122 -765}\special{pa 112 -767}\special{pa 102 -768}\special{pa 92 -770}%
+\special{pa 82 -771}\special{pa 72 -772}\special{pa 62 -773}\special{pa 52 -774}%
+\special{pa 41 -775}\special{pa 31 -776}\special{pa 21 -776}\special{pa 10 -776}%
+\special{pa -0 -776}\special{pa -11 -776}\special{pa -21 -776}\special{pa -31 -776}%
+\special{pa -42 -775}\special{pa -52 -774}\special{pa -62 -773}\special{pa -72 -772}%
+\special{pa -82 -771}\special{pa -92 -770}\special{pa -102 -768}\special{pa -112 -767}%
+\special{pa -122 -765}\special{pa -131 -763}\special{pa -141 -761}\special{pa -150 -758}%
+\special{pa -159 -756}\special{pa -168 -753}\special{pa -177 -751}\special{pa -186 -748}%
+\special{pa -194 -745}\special{pa -203 -742}\special{pa -211 -738}\special{pa -219 -735}%
+\special{pa -226 -731}\special{pa -234 -728}\special{pa -241 -724}\special{pa -248 -720}%
+\special{pa -255 -716}\special{pa -261 -712}\special{pa -268 -708}\special{pa -274 -704}%
+\special{pa -279 -700}\special{pa -285 -695}\special{pa -290 -691}\special{pa -295 -686}%
+\special{pa -299 -681}\special{pa -304 -677}\special{pa -308 -672}\special{pa -311 -667}%
+\special{pa -315 -662}\special{pa -318 -657}\special{pa -320 -652}\special{pa -323 -647}%
+\special{pa -325 -642}\special{pa -327 -637}\special{pa -328 -632}\special{pa -329 -626}%
+\special{pa -330 -621}\special{pa -331 -616}\special{pa -331 -611}\special{pa -331 -606}%
+\special{pa -330 -601}\special{pa -329 -595}\special{pa -328 -590}\special{pa -327 -585}%
+\special{pa -325 -580}\special{pa -323 -575}\special{pa -320 -570}\special{pa -318 -565}%
+\special{pa -314 -560}\special{pa -311 -555}\special{pa -307 -550}\special{pa -303 -545}%
+\special{pa -299 -541}\special{pa -295 -536}\special{pa -290 -531}\special{pa -285 -527}%
+\special{pa -279 -522}\special{pa -273 -518}\special{pa -267 -514}\special{pa -261 -510}%
+\special{pa -255 -506}\special{pa -248 -502}\special{pa -241 -498}\special{pa -234 -494}%
+\special{pa -226 -490}%
+\special{fp}%
+\special{pa -245 -421}\special{pa -237 -417}\special{pa -228 -413}\special{pa -219 -410}%
+\special{pa -210 -406}\special{pa -201 -403}\special{pa -192 -400}\special{pa -182 -397}%
+\special{pa -172 -394}\special{pa -163 -392}\special{pa -152 -389}\special{pa -142 -387}%
+\special{pa -132 -385}\special{pa -121 -383}\special{pa -111 -381}\special{pa -100 -379}%
+\special{pa -89 -378}\special{pa -78 -376}\special{pa -67 -375}\special{pa -56 -374}%
+\special{pa -45 -374}\special{pa -34 -373}\special{pa -22 -373}\special{pa -11 -372}%
+\special{pa 0 -372}\special{pa 11 -372}\special{pa 23 -373}\special{pa 34 -373}%
+\special{pa 45 -374}\special{pa 56 -374}\special{pa 67 -375}\special{pa 78 -377}%
+\special{pa 89 -378}\special{pa 100 -379}\special{pa 111 -381}\special{pa 121 -383}%
+\special{pa 132 -385}\special{pa 142 -387}\special{pa 153 -389}\special{pa 163 -392}%
+\special{pa 173 -394}\special{pa 182 -397}\special{pa 192 -400}\special{pa 201 -403}%
+\special{pa 211 -406}\special{pa 220 -410}\special{pa 228 -413}\special{pa 237 -417}%
+\special{pa 245 -421}\special{pa 253 -425}\special{pa 261 -429}\special{pa 269 -433}%
+\special{pa 276 -437}\special{pa 283 -442}\special{pa 290 -446}\special{pa 296 -451}%
+\special{pa 303 -455}\special{pa 308 -460}\special{pa 314 -465}\special{pa 319 -470}%
+\special{pa 324 -475}\special{pa 329 -480}\special{pa 333 -485}\special{pa 337 -491}%
+\special{pa 341 -496}\special{pa 344 -501}\special{pa 347 -507}\special{pa 350 -512}%
+\special{pa 352 -518}\special{pa 354 -523}\special{pa 355 -529}\special{pa 357 -535}%
+\special{pa 358 -540}\special{pa 358 -546}\special{pa 358 -551}\special{pa 358 -557}%
+\special{pa 358 -563}\special{pa 357 -568}\special{pa 355 -574}\special{pa 354 -579}%
+\special{pa 352 -585}\special{pa 350 -590}\special{pa 347 -596}\special{pa 344 -601}%
+\special{pa 341 -607}\special{pa 337 -612}\special{pa 333 -617}\special{pa 329 -623}%
+\special{pa 324 -628}\special{pa 319 -633}\special{pa 314 -638}\special{pa 308 -643}%
+\special{pa 302 -647}\special{pa 296 -652}\special{pa 290 -657}\special{pa 283 -661}%
+\special{pa 276 -666}\special{pa 269 -670}\special{pa 261 -674}\special{pa 253 -678}%
+\special{pa 245 -682}\special{pa 237 -686}\special{pa 228 -689}\special{pa 219 -693}%
+\special{pa 210 -696}\special{pa 201 -700}\special{pa 192 -703}\special{pa 182 -706}%
+\special{pa 172 -708}\special{pa 163 -711}\special{pa 152 -713}\special{pa 142 -716}%
+\special{pa 132 -718}\special{pa 121 -720}\special{pa 111 -722}\special{pa 100 -723}%
+\special{pa 89 -725}\special{pa 78 -726}\special{pa 67 -727}\special{pa 56 -728}%
+\special{pa 45 -729}\special{pa 34 -730}\special{pa 22 -730}\special{pa 11 -730}%
+\special{pa -0 -730}\special{pa -11 -730}\special{pa -23 -730}\special{pa -34 -730}%
+\special{pa -45 -729}\special{pa -56 -728}\special{pa -67 -727}\special{pa -78 -726}%
+\special{pa -89 -725}\special{pa -100 -723}\special{pa -111 -722}\special{pa -121 -720}%
+\special{pa -132 -718}\special{pa -142 -716}\special{pa -153 -713}\special{pa -163 -711}%
+\special{pa -173 -708}\special{pa -182 -705}\special{pa -192 -703}\special{pa -201 -699}%
+\special{pa -211 -696}\special{pa -220 -693}\special{pa -228 -689}\special{pa -237 -686}%
+\special{pa -245 -682}\special{pa -253 -678}\special{pa -261 -674}\special{pa -269 -670}%
+\special{pa -276 -665}\special{pa -283 -661}\special{pa -290 -657}\special{pa -296 -652}%
+\special{pa -303 -647}\special{pa -308 -642}\special{pa -314 -638}\special{pa -319 -633}%
+\special{pa -324 -628}\special{pa -329 -622}\special{pa -333 -617}\special{pa -337 -612}%
+\special{pa -341 -607}\special{pa -344 -601}\special{pa -347 -596}\special{pa -350 -590}%
+\special{pa -352 -585}\special{pa -354 -579}\special{pa -355 -574}\special{pa -357 -568}%
+\special{pa -358 -563}\special{pa -358 -557}\special{pa -358 -551}\special{pa -358 -546}%
+\special{pa -358 -540}\special{pa -357 -534}\special{pa -355 -529}\special{pa -354 -523}%
+\special{pa -352 -518}\special{pa -350 -512}\special{pa -347 -507}\special{pa -344 -501}%
+\special{pa -341 -496}\special{pa -337 -491}\special{pa -333 -485}\special{pa -329 -480}%
+\special{pa -324 -475}\special{pa -319 -470}\special{pa -314 -465}\special{pa -308 -460}%
+\special{pa -302 -455}\special{pa -296 -451}\special{pa -290 -446}\special{pa -283 -441}%
+\special{pa -276 -437}\special{pa -269 -433}\special{pa -261 -429}\special{pa -253 -425}%
+\special{pa -245 -421}%
+\special{fp}%
+\special{pa -264 -346}\special{pa -255 -342}\special{pa -246 -338}\special{pa -236 -334}%
+\special{pa -227 -331}\special{pa -217 -327}\special{pa -207 -324}\special{pa -196 -321}%
+\special{pa -186 -318}\special{pa -175 -315}\special{pa -164 -312}\special{pa -153 -310}%
+\special{pa -142 -307}\special{pa -131 -305}\special{pa -119 -303}\special{pa -108 -302}%
+\special{pa -96 -300}\special{pa -84 -299}\special{pa -72 -297}\special{pa -60 -296}%
+\special{pa -48 -295}\special{pa -36 -295}\special{pa -24 -294}\special{pa -12 -294}%
+\special{pa 0 -294}\special{pa 12 -294}\special{pa 24 -294}\special{pa 36 -295}%
+\special{pa 48 -296}\special{pa 60 -296}\special{pa 72 -297}\special{pa 84 -299}%
+\special{pa 96 -300}\special{pa 108 -302}\special{pa 119 -303}\special{pa 131 -305}%
+\special{pa 142 -308}\special{pa 153 -310}\special{pa 164 -312}\special{pa 175 -315}%
+\special{pa 186 -318}\special{pa 197 -321}\special{pa 207 -324}\special{pa 217 -327}%
+\special{pa 227 -331}\special{pa 237 -334}\special{pa 246 -338}\special{pa 255 -342}%
+\special{pa 264 -346}\special{pa 273 -351}\special{pa 281 -355}\special{pa 290 -359}%
+\special{pa 297 -364}\special{pa 305 -369}\special{pa 312 -374}\special{pa 319 -379}%
+\special{pa 326 -384}\special{pa 332 -389}\special{pa 338 -394}\special{pa 344 -399}%
+\special{pa 349 -405}\special{pa 354 -410}\special{pa 359 -416}\special{pa 363 -422}%
+\special{pa 367 -427}\special{pa 371 -433}\special{pa 374 -439}\special{pa 377 -445}%
+\special{pa 379 -451}\special{pa 381 -457}\special{pa 383 -463}\special{pa 384 -469}%
+\special{pa 385 -475}\special{pa 386 -481}\special{pa 386 -487}\special{pa 386 -493}%
+\special{pa 385 -499}\special{pa 384 -505}\special{pa 383 -511}\special{pa 381 -517}%
+\special{pa 379 -523}\special{pa 377 -529}\special{pa 374 -535}\special{pa 370 -541}%
+\special{pa 367 -547}\special{pa 363 -552}\special{pa 359 -558}\special{pa 354 -564}%
+\special{pa 349 -569}\special{pa 344 -575}\special{pa 338 -580}\special{pa 332 -585}%
+\special{pa 326 -590}\special{pa 319 -595}\special{pa 312 -600}\special{pa 305 -605}%
+\special{pa 297 -610}\special{pa 289 -615}\special{pa 281 -619}\special{pa 273 -623}%
+\special{pa 264 -628}\special{pa 255 -632}\special{pa 246 -636}\special{pa 236 -639}%
+\special{pa 227 -643}\special{pa 217 -646}\special{pa 207 -650}\special{pa 196 -653}%
+\special{pa 186 -656}\special{pa 175 -659}\special{pa 164 -661}\special{pa 153 -664}%
+\special{pa 142 -666}\special{pa 131 -668}\special{pa 119 -670}\special{pa 108 -672}%
+\special{pa 96 -674}\special{pa 84 -675}\special{pa 72 -676}\special{pa 60 -677}%
+\special{pa 48 -678}\special{pa 36 -679}\special{pa 24 -679}\special{pa 12 -680}%
+\special{pa -0 -680}\special{pa -12 -680}\special{pa -24 -679}\special{pa -36 -679}%
+\special{pa -48 -678}\special{pa -60 -677}\special{pa -72 -676}\special{pa -84 -675}%
+\special{pa -96 -674}\special{pa -108 -672}\special{pa -119 -670}\special{pa -131 -668}%
+\special{pa -142 -666}\special{pa -153 -664}\special{pa -164 -661}\special{pa -175 -659}%
+\special{pa -186 -656}\special{pa -197 -653}\special{pa -207 -650}\special{pa -217 -646}%
+\special{pa -227 -643}\special{pa -237 -639}\special{pa -246 -635}\special{pa -255 -632}%
+\special{pa -264 -627}\special{pa -273 -623}\special{pa -281 -619}\special{pa -290 -614}%
+\special{pa -297 -610}\special{pa -305 -605}\special{pa -312 -600}\special{pa -319 -595}%
+\special{pa -326 -590}\special{pa -332 -585}\special{pa -338 -580}\special{pa -344 -574}%
+\special{pa -349 -569}\special{pa -354 -563}\special{pa -359 -558}\special{pa -363 -552}%
+\special{pa -367 -546}\special{pa -371 -541}\special{pa -374 -535}\special{pa -377 -529}%
+\special{pa -379 -523}\special{pa -381 -517}\special{pa -383 -511}\special{pa -384 -505}%
+\special{pa -385 -499}\special{pa -386 -493}\special{pa -386 -487}\special{pa -386 -481}%
+\special{pa -385 -475}\special{pa -384 -469}\special{pa -383 -463}\special{pa -381 -457}%
+\special{pa -379 -451}\special{pa -377 -445}\special{pa -374 -439}\special{pa -370 -433}%
+\special{pa -367 -427}\special{pa -363 -421}\special{pa -359 -416}\special{pa -354 -410}%
+\special{pa -349 -405}\special{pa -344 -399}\special{pa -338 -394}\special{pa -332 -389}%
+\special{pa -326 -383}\special{pa -319 -378}\special{pa -312 -373}\special{pa -305 -369}%
+\special{pa -297 -364}\special{pa -289 -359}\special{pa -281 -355}\special{pa -273 -350}%
+\special{pa -264 -346}%
+\special{fp}%
+\special{pa -283 -267}\special{pa -273 -263}\special{pa -263 -258}\special{pa -253 -254}%
+\special{pa -243 -250}\special{pa -232 -247}\special{pa -221 -243}\special{pa -210 -240}%
+\special{pa -199 -237}\special{pa -188 -233}\special{pa -176 -231}\special{pa -164 -228}%
+\special{pa -152 -225}\special{pa -140 -223}\special{pa -128 -221}\special{pa -115 -219}%
+\special{pa -103 -217}\special{pa -90 -216}\special{pa -77 -215}\special{pa -65 -214}%
+\special{pa -52 -213}\special{pa -39 -212}\special{pa -26 -211}\special{pa -13 -211}%
+\special{pa 0 -211}\special{pa 13 -211}\special{pa 26 -211}\special{pa 39 -212}%
+\special{pa 52 -213}\special{pa 65 -214}\special{pa 78 -215}\special{pa 90 -216}%
+\special{pa 103 -217}\special{pa 115 -219}\special{pa 128 -221}\special{pa 140 -223}%
+\special{pa 152 -226}\special{pa 164 -228}\special{pa 176 -231}\special{pa 188 -234}%
+\special{pa 199 -237}\special{pa 211 -240}\special{pa 222 -243}\special{pa 232 -247}%
+\special{pa 243 -250}\special{pa 253 -254}\special{pa 264 -258}\special{pa 273 -263}%
+\special{pa 283 -267}\special{pa 292 -272}\special{pa 301 -276}\special{pa 310 -281}%
+\special{pa 319 -286}\special{pa 327 -291}\special{pa 335 -296}\special{pa 342 -302}%
+\special{pa 349 -307}\special{pa 356 -313}\special{pa 362 -318}\special{pa 368 -324}%
+\special{pa 374 -330}\special{pa 379 -336}\special{pa 384 -342}\special{pa 389 -348}%
+\special{pa 393 -354}\special{pa 397 -360}\special{pa 400 -366}\special{pa 403 -373}%
+\special{pa 406 -379}\special{pa 408 -385}\special{pa 410 -392}\special{pa 412 -398}%
+\special{pa 413 -405}\special{pa 413 -411}\special{pa 413 -418}\special{pa 413 -424}%
+\special{pa 413 -431}\special{pa 412 -437}\special{pa 410 -444}\special{pa 408 -450}%
+\special{pa 406 -456}\special{pa 403 -463}\special{pa 400 -469}\special{pa 397 -475}%
+\special{pa 393 -482}\special{pa 389 -488}\special{pa 384 -494}\special{pa 379 -500}%
+\special{pa 374 -506}\special{pa 368 -512}\special{pa 362 -517}\special{pa 356 -523}%
+\special{pa 349 -528}\special{pa 342 -534}\special{pa 334 -539}\special{pa 327 -544}%
+\special{pa 318 -549}\special{pa 310 -554}\special{pa 301 -559}\special{pa 292 -564}%
+\special{pa 283 -568}\special{pa 273 -573}\special{pa 263 -577}\special{pa 253 -581}%
+\special{pa 243 -585}\special{pa 232 -589}\special{pa 221 -592}\special{pa 210 -596}%
+\special{pa 199 -599}\special{pa 188 -602}\special{pa 176 -605}\special{pa 164 -607}%
+\special{pa 152 -610}\special{pa 140 -612}\special{pa 128 -614}\special{pa 115 -616}%
+\special{pa 103 -618}\special{pa 90 -619}\special{pa 77 -621}\special{pa 65 -622}%
+\special{pa 52 -623}\special{pa 39 -623}\special{pa 26 -624}\special{pa 13 -624}%
+\special{pa -0 -624}\special{pa -13 -624}\special{pa -26 -624}\special{pa -39 -623}%
+\special{pa -52 -623}\special{pa -65 -622}\special{pa -78 -621}\special{pa -90 -619}%
+\special{pa -103 -618}\special{pa -115 -616}\special{pa -128 -614}\special{pa -140 -612}%
+\special{pa -152 -610}\special{pa -164 -607}\special{pa -176 -605}\special{pa -188 -602}%
+\special{pa -199 -599}\special{pa -211 -596}\special{pa -222 -592}\special{pa -232 -589}%
+\special{pa -243 -585}\special{pa -253 -581}\special{pa -264 -577}\special{pa -273 -573}%
+\special{pa -283 -568}\special{pa -292 -564}\special{pa -301 -559}\special{pa -310 -554}%
+\special{pa -319 -549}\special{pa -327 -544}\special{pa -335 -539}\special{pa -342 -534}%
+\special{pa -349 -528}\special{pa -356 -523}\special{pa -362 -517}\special{pa -368 -511}%
+\special{pa -374 -506}\special{pa -379 -500}\special{pa -384 -494}\special{pa -389 -488}%
+\special{pa -393 -481}\special{pa -397 -475}\special{pa -400 -469}\special{pa -403 -463}%
+\special{pa -406 -456}\special{pa -408 -450}\special{pa -410 -444}\special{pa -412 -437}%
+\special{pa -413 -431}\special{pa -413 -424}\special{pa -413 -418}\special{pa -413 -411}%
+\special{pa -413 -405}\special{pa -412 -398}\special{pa -410 -392}\special{pa -408 -385}%
+\special{pa -406 -379}\special{pa -403 -373}\special{pa -400 -366}\special{pa -397 -360}%
+\special{pa -393 -354}\special{pa -389 -348}\special{pa -384 -342}\special{pa -379 -336}%
+\special{pa -374 -330}\special{pa -368 -324}\special{pa -362 -318}\special{pa -356 -312}%
+\special{pa -349 -307}\special{pa -342 -301}\special{pa -334 -296}\special{pa -327 -291}%
+\special{pa -318 -286}\special{pa -310 -281}\special{pa -301 -276}\special{pa -292 -271}%
+\special{pa -283 -267}%
+\special{fp}%
+\special{pa -302 -183}\special{pa -291 -178}\special{pa -281 -174}\special{pa -270 -169}%
+\special{pa -259 -165}\special{pa -248 -161}\special{pa -236 -157}\special{pa -224 -154}%
+\special{pa -212 -150}\special{pa -200 -147}\special{pa -188 -144}\special{pa -175 -141}%
+\special{pa -162 -139}\special{pa -149 -136}\special{pa -136 -134}\special{pa -123 -132}%
+\special{pa -110 -130}\special{pa -96 -129}\special{pa -82 -127}\special{pa -69 -126}%
+\special{pa -55 -125}\special{pa -41 -124}\special{pa -28 -124}\special{pa -14 -123}%
+\special{pa 0 -123}\special{pa 14 -123}\special{pa 28 -124}\special{pa 42 -124}%
+\special{pa 55 -125}\special{pa 69 -126}\special{pa 83 -127}\special{pa 96 -129}%
+\special{pa 110 -130}\special{pa 123 -132}\special{pa 136 -134}\special{pa 150 -136}%
+\special{pa 162 -139}\special{pa 175 -141}\special{pa 188 -144}\special{pa 200 -147}%
+\special{pa 213 -151}\special{pa 225 -154}\special{pa 236 -158}\special{pa 248 -161}%
+\special{pa 259 -165}\special{pa 270 -170}\special{pa 281 -174}\special{pa 292 -178}%
+\special{pa 302 -183}\special{pa 312 -188}\special{pa 322 -193}\special{pa 331 -198}%
+\special{pa 340 -203}\special{pa 349 -209}\special{pa 357 -214}\special{pa 365 -220}%
+\special{pa 372 -226}\special{pa 380 -232}\special{pa 386 -238}\special{pa 393 -244}%
+\special{pa 399 -250}\special{pa 405 -256}\special{pa 410 -263}\special{pa 415 -269}%
+\special{pa 419 -276}\special{pa 423 -282}\special{pa 427 -289}\special{pa 430 -296}%
+\special{pa 433 -302}\special{pa 436 -309}\special{pa 437 -316}\special{pa 439 -323}%
+\special{pa 440 -330}\special{pa 441 -337}\special{pa 441 -344}\special{pa 441 -351}%
+\special{pa 440 -358}\special{pa 439 -365}\special{pa 437 -371}\special{pa 435 -378}%
+\special{pa 433 -385}\special{pa 430 -392}\special{pa 427 -399}\special{pa 423 -405}%
+\special{pa 419 -412}\special{pa 415 -418}\special{pa 410 -425}\special{pa 405 -431}%
+\special{pa 399 -438}\special{pa 393 -444}\special{pa 386 -450}\special{pa 379 -456}%
+\special{pa 372 -462}\special{pa 365 -468}\special{pa 357 -473}\special{pa 348 -479}%
+\special{pa 340 -484}\special{pa 331 -490}\special{pa 321 -495}\special{pa 312 -500}%
+\special{pa 302 -504}\special{pa 291 -509}\special{pa 281 -514}\special{pa 270 -518}%
+\special{pa 259 -522}\special{pa 248 -526}\special{pa 236 -530}\special{pa 224 -533}%
+\special{pa 212 -537}\special{pa 200 -540}\special{pa 188 -543}\special{pa 175 -546}%
+\special{pa 162 -549}\special{pa 149 -551}\special{pa 136 -553}\special{pa 123 -555}%
+\special{pa 110 -557}\special{pa 96 -559}\special{pa 82 -560}\special{pa 69 -561}%
+\special{pa 55 -562}\special{pa 41 -563}\special{pa 28 -564}\special{pa 14 -564}%
+\special{pa -0 -564}\special{pa -14 -564}\special{pa -28 -564}\special{pa -42 -563}%
+\special{pa -55 -562}\special{pa -69 -561}\special{pa -83 -560}\special{pa -96 -559}%
+\special{pa -110 -557}\special{pa -123 -555}\special{pa -136 -553}\special{pa -150 -551}%
+\special{pa -162 -549}\special{pa -175 -546}\special{pa -188 -543}\special{pa -200 -540}%
+\special{pa -213 -537}\special{pa -225 -533}\special{pa -236 -530}\special{pa -248 -526}%
+\special{pa -259 -522}\special{pa -270 -518}\special{pa -281 -514}\special{pa -292 -509}%
+\special{pa -302 -504}\special{pa -312 -500}\special{pa -322 -495}\special{pa -331 -489}%
+\special{pa -340 -484}\special{pa -349 -479}\special{pa -357 -473}\special{pa -365 -468}%
+\special{pa -372 -462}\special{pa -380 -456}\special{pa -386 -450}\special{pa -393 -444}%
+\special{pa -399 -437}\special{pa -405 -431}\special{pa -410 -425}\special{pa -415 -418}%
+\special{pa -419 -412}\special{pa -423 -405}\special{pa -427 -398}\special{pa -430 -392}%
+\special{pa -433 -385}\special{pa -436 -378}\special{pa -437 -371}\special{pa -439 -364}%
+\special{pa -440 -357}\special{pa -441 -351}\special{pa -441 -344}\special{pa -441 -337}%
+\special{pa -440 -330}\special{pa -439 -323}\special{pa -437 -316}\special{pa -435 -309}%
+\special{pa -433 -302}\special{pa -430 -296}\special{pa -427 -289}\special{pa -423 -282}%
+\special{pa -419 -275}\special{pa -415 -269}\special{pa -410 -262}\special{pa -405 -256}%
+\special{pa -399 -250}\special{pa -393 -244}\special{pa -386 -237}\special{pa -379 -231}%
+\special{pa -372 -225}\special{pa -365 -220}\special{pa -357 -214}\special{pa -348 -208}%
+\special{pa -340 -203}\special{pa -331 -198}\special{pa -321 -193}\special{pa -312 -188}%
+\special{pa -302 -183}%
+\special{fp}%
+\special{pa -321 -94}\special{pa -310 -89}\special{pa -299 -84}\special{pa -287 -80}%
+\special{pa -275 -75}\special{pa -263 -71}\special{pa -251 -67}\special{pa -238 -63}%
+\special{pa -226 -60}\special{pa -213 -56}\special{pa -199 -53}\special{pa -186 -50}%
+\special{pa -172 -47}\special{pa -159 -44}\special{pa -145 -42}\special{pa -131 -40}%
+\special{pa -116 -38}\special{pa -102 -36}\special{pa -88 -35}\special{pa -73 -34}%
+\special{pa -59 -33}\special{pa -44 -32}\special{pa -29 -31}\special{pa -15 -31}%
+\special{pa 0 -31}\special{pa 15 -31}\special{pa 30 -31}\special{pa 44 -32}%
+\special{pa 59 -33}\special{pa 73 -34}\special{pa 88 -35}\special{pa 102 -36}%
+\special{pa 117 -38}\special{pa 131 -40}\special{pa 145 -42}\special{pa 159 -45}%
+\special{pa 173 -47}\special{pa 186 -50}\special{pa 200 -53}\special{pa 213 -56}%
+\special{pa 226 -60}\special{pa 239 -63}\special{pa 251 -67}\special{pa 263 -71}%
+\special{pa 276 -75}\special{pa 287 -80}\special{pa 299 -84}\special{pa 310 -89}%
+\special{pa 321 -94}\special{pa 331 -99}\special{pa 342 -105}\special{pa 352 -110}%
+\special{pa 361 -116}\special{pa 370 -121}\special{pa 379 -127}\special{pa 388 -133}%
+\special{pa 396 -139}\special{pa 403 -146}\special{pa 411 -152}\special{pa 418 -159}%
+\special{pa 424 -165}\special{pa 430 -172}\special{pa 436 -179}\special{pa 441 -186}%
+\special{pa 446 -193}\special{pa 450 -200}\special{pa 454 -207}\special{pa 457 -214}%
+\special{pa 460 -221}\special{pa 463 -228}\special{pa 465 -236}\special{pa 466 -243}%
+\special{pa 468 -250}\special{pa 468 -258}\special{pa 469 -265}\special{pa 468 -272}%
+\special{pa 468 -280}\special{pa 466 -287}\special{pa 465 -294}\special{pa 463 -302}%
+\special{pa 460 -309}\special{pa 457 -316}\special{pa 454 -323}\special{pa 450 -330}%
+\special{pa 446 -337}\special{pa 441 -344}\special{pa 436 -351}\special{pa 430 -358}%
+\special{pa 424 -365}\special{pa 417 -371}\special{pa 410 -378}\special{pa 403 -384}%
+\special{pa 395 -391}\special{pa 387 -397}\special{pa 379 -403}\special{pa 370 -409}%
+\special{pa 361 -414}\special{pa 351 -420}\special{pa 341 -425}\special{pa 331 -431}%
+\special{pa 321 -436}\special{pa 310 -441}\special{pa 299 -445}\special{pa 287 -450}%
+\special{pa 275 -454}\special{pa 263 -459}\special{pa 251 -463}\special{pa 238 -467}%
+\special{pa 226 -470}\special{pa 213 -474}\special{pa 199 -477}\special{pa 186 -480}%
+\special{pa 172 -483}\special{pa 159 -485}\special{pa 145 -488}\special{pa 131 -490}%
+\special{pa 116 -492}\special{pa 102 -494}\special{pa 88 -495}\special{pa 73 -496}%
+\special{pa 59 -497}\special{pa 44 -498}\special{pa 29 -499}\special{pa 15 -499}%
+\special{pa -0 -499}\special{pa -15 -499}\special{pa -30 -499}\special{pa -44 -498}%
+\special{pa -59 -497}\special{pa -73 -496}\special{pa -88 -495}\special{pa -102 -494}%
+\special{pa -117 -492}\special{pa -131 -490}\special{pa -145 -488}\special{pa -159 -485}%
+\special{pa -173 -483}\special{pa -186 -480}\special{pa -200 -477}\special{pa -213 -474}%
+\special{pa -226 -470}\special{pa -239 -467}\special{pa -251 -463}\special{pa -263 -459}%
+\special{pa -276 -454}\special{pa -287 -450}\special{pa -299 -445}\special{pa -310 -441}%
+\special{pa -321 -436}\special{pa -331 -431}\special{pa -342 -425}\special{pa -352 -420}%
+\special{pa -361 -414}\special{pa -370 -408}\special{pa -379 -403}\special{pa -388 -397}%
+\special{pa -396 -390}\special{pa -403 -384}\special{pa -411 -378}\special{pa -418 -371}%
+\special{pa -424 -365}\special{pa -430 -358}\special{pa -436 -351}\special{pa -441 -344}%
+\special{pa -446 -337}\special{pa -450 -330}\special{pa -454 -323}\special{pa -457 -316}%
+\special{pa -460 -309}\special{pa -463 -301}\special{pa -465 -294}\special{pa -466 -287}%
+\special{pa -468 -280}\special{pa -468 -272}\special{pa -469 -265}\special{pa -468 -257}%
+\special{pa -468 -250}\special{pa -466 -243}\special{pa -465 -235}\special{pa -463 -228}%
+\special{pa -460 -221}\special{pa -457 -214}\special{pa -454 -207}\special{pa -450 -199}%
+\special{pa -446 -192}\special{pa -441 -185}\special{pa -436 -179}\special{pa -430 -172}%
+\special{pa -424 -165}\special{pa -417 -158}\special{pa -410 -152}\special{pa -403 -146}%
+\special{pa -395 -139}\special{pa -387 -133}\special{pa -379 -127}\special{pa -370 -121}%
+\special{pa -361 -116}\special{pa -351 -110}\special{pa -341 -105}\special{pa -331 -99}%
+\special{pa -321 -94}%
+\special{fp}%
+\special{pa -339 -1}\special{pa -328 5}\special{pa -316 10}\special{pa -304 15}%
+\special{pa -291 19}\special{pa -279 24}\special{pa -266 28}\special{pa -252 32}%
+\special{pa -239 36}\special{pa -225 40}\special{pa -211 43}\special{pa -197 46}%
+\special{pa -182 49}\special{pa -168 52}\special{pa -153 55}\special{pa -138 57}%
+\special{pa -123 59}\special{pa -108 61}\special{pa -93 62}\special{pa -77 64}%
+\special{pa -62 65}\special{pa -47 66}\special{pa -31 66}\special{pa -15 67}%
+\special{pa 0 67}\special{pa 16 67}\special{pa 31 66}\special{pa 47 66}%
+\special{pa 62 65}\special{pa 78 64}\special{pa 93 62}\special{pa 108 61}%
+\special{pa 124 59}\special{pa 139 57}\special{pa 153 54}\special{pa 168 52}%
+\special{pa 183 49}\special{pa 197 46}\special{pa 211 43}\special{pa 225 40}%
+\special{pa 239 36}\special{pa 253 32}\special{pa 266 28}\special{pa 279 24}%
+\special{pa 292 19}\special{pa 304 15}\special{pa 316 10}\special{pa 328 5}%
+\special{pa 340 -1}\special{pa 351 -6}\special{pa 362 -12}\special{pa 372 -17}%
+\special{pa 382 -23}\special{pa 392 -29}\special{pa 401 -36}\special{pa 410 -42}%
+\special{pa 419 -49}\special{pa 427 -55}\special{pa 435 -62}\special{pa 442 -69}%
+\special{pa 449 -76}\special{pa 455 -83}\special{pa 461 -90}\special{pa 467 -97}%
+\special{pa 472 -105}\special{pa 476 -112}\special{pa 481 -120}\special{pa 484 -127}%
+\special{pa 487 -135}\special{pa 490 -143}\special{pa 492 -150}\special{pa 494 -158}%
+\special{pa 495 -166}\special{pa 496 -174}\special{pa 496 -181}\special{pa 496 -189}%
+\special{pa 495 -197}\special{pa 494 -205}\special{pa 492 -213}\special{pa 490 -220}%
+\special{pa 487 -228}\special{pa 484 -236}\special{pa 480 -243}\special{pa 476 -251}%
+\special{pa 472 -258}\special{pa 467 -265}\special{pa 461 -273}\special{pa 455 -280}%
+\special{pa 449 -287}\special{pa 442 -294}\special{pa 435 -301}\special{pa 427 -308}%
+\special{pa 419 -314}\special{pa 410 -321}\special{pa 401 -327}\special{pa 392 -333}%
+\special{pa 382 -340}\special{pa 372 -345}\special{pa 361 -351}\special{pa 351 -357}%
+\special{pa 339 -362}\special{pa 328 -367}\special{pa 316 -373}\special{pa 304 -377}%
+\special{pa 291 -382}\special{pa 279 -387}\special{pa 266 -391}\special{pa 252 -395}%
+\special{pa 239 -399}\special{pa 225 -402}\special{pa 211 -406}\special{pa 197 -409}%
+\special{pa 182 -412}\special{pa 168 -415}\special{pa 153 -417}\special{pa 138 -420}%
+\special{pa 123 -422}\special{pa 108 -423}\special{pa 93 -425}\special{pa 77 -426}%
+\special{pa 62 -427}\special{pa 47 -428}\special{pa 31 -429}\special{pa 15 -429}%
+\special{pa -0 -429}\special{pa -16 -429}\special{pa -31 -429}\special{pa -47 -428}%
+\special{pa -62 -427}\special{pa -78 -426}\special{pa -93 -425}\special{pa -108 -423}%
+\special{pa -124 -422}\special{pa -139 -420}\special{pa -153 -417}\special{pa -168 -415}%
+\special{pa -183 -412}\special{pa -197 -409}\special{pa -211 -406}\special{pa -225 -402}%
+\special{pa -239 -399}\special{pa -253 -395}\special{pa -266 -391}\special{pa -279 -386}%
+\special{pa -292 -382}\special{pa -304 -377}\special{pa -316 -372}\special{pa -328 -367}%
+\special{pa -340 -362}\special{pa -351 -357}\special{pa -362 -351}\special{pa -372 -345}%
+\special{pa -382 -339}\special{pa -392 -333}\special{pa -401 -327}\special{pa -410 -321}%
+\special{pa -419 -314}\special{pa -427 -308}\special{pa -435 -301}\special{pa -442 -294}%
+\special{pa -449 -287}\special{pa -455 -280}\special{pa -461 -273}\special{pa -467 -265}%
+\special{pa -472 -258}\special{pa -476 -251}\special{pa -481 -243}\special{pa -484 -235}%
+\special{pa -487 -228}\special{pa -490 -220}\special{pa -492 -212}\special{pa -494 -205}%
+\special{pa -495 -197}\special{pa -496 -189}\special{pa -496 -181}\special{pa -496 -174}%
+\special{pa -495 -166}\special{pa -494 -158}\special{pa -492 -150}\special{pa -490 -142}%
+\special{pa -487 -135}\special{pa -484 -127}\special{pa -480 -120}\special{pa -476 -112}%
+\special{pa -472 -105}\special{pa -467 -97}\special{pa -461 -90}\special{pa -455 -83}%
+\special{pa -449 -76}\special{pa -442 -69}\special{pa -435 -62}\special{pa -427 -55}%
+\special{pa -419 -48}\special{pa -410 -42}\special{pa -401 -36}\special{pa -392 -29}%
+\special{pa -382 -23}\special{pa -372 -17}\special{pa -361 -12}\special{pa -351 -6}%
+\special{pa -339 -1}%
+\special{fp}%
+\special{pa -358 98}\special{pa -346 103}\special{pa -334 109}\special{pa -321 114}%
+\special{pa -308 119}\special{pa -294 124}\special{pa -280 128}\special{pa -266 132}%
+\special{pa -252 136}\special{pa -238 140}\special{pa -223 144}\special{pa -208 147}%
+\special{pa -193 150}\special{pa -177 153}\special{pa -162 156}\special{pa -146 158}%
+\special{pa -130 161}\special{pa -114 162}\special{pa -98 164}\special{pa -82 166}%
+\special{pa -65 167}\special{pa -49 168}\special{pa -33 168}\special{pa -16 169}%
+\special{pa 0 169}\special{pa 17 169}\special{pa 33 168}\special{pa 49 168}%
+\special{pa 66 167}\special{pa 82 165}\special{pa 98 164}\special{pa 114 162}%
+\special{pa 130 160}\special{pa 146 158}\special{pa 162 156}\special{pa 178 153}%
+\special{pa 193 150}\special{pa 208 147}\special{pa 223 144}\special{pa 238 140}%
+\special{pa 252 136}\special{pa 267 132}\special{pa 281 128}\special{pa 294 123}%
+\special{pa 308 119}\special{pa 321 114}\special{pa 334 109}\special{pa 346 103}%
+\special{pa 359 98}\special{pa 370 92}\special{pa 382 86}\special{pa 393 80}%
+\special{pa 404 74}\special{pa 414 67}\special{pa 424 61}\special{pa 433 54}%
+\special{pa 442 47}\special{pa 451 40}\special{pa 459 33}\special{pa 467 26}%
+\special{pa 474 18}\special{pa 481 11}\special{pa 487 3}\special{pa 493 -4}%
+\special{pa 498 -12}\special{pa 503 -20}\special{pa 507 -28}\special{pa 511 -36}%
+\special{pa 514 -44}\special{pa 517 -52}\special{pa 520 -60}\special{pa 521 -69}%
+\special{pa 523 -77}\special{pa 523 -85}\special{pa 524 -93}\special{pa 523 -101}%
+\special{pa 523 -110}\special{pa 521 -118}\special{pa 519 -126}\special{pa 517 -134}%
+\special{pa 514 -142}\special{pa 511 -150}\special{pa 507 -158}\special{pa 503 -166}%
+\special{pa 498 -174}\special{pa 493 -182}\special{pa 487 -190}\special{pa 480 -197}%
+\special{pa 474 -205}\special{pa 466 -212}\special{pa 459 -219}\special{pa 451 -226}%
+\special{pa 442 -233}\special{pa 433 -240}\special{pa 424 -247}\special{pa 414 -254}%
+\special{pa 403 -260}\special{pa 393 -266}\special{pa 382 -272}\special{pa 370 -278}%
+\special{pa 358 -284}\special{pa 346 -290}\special{pa 334 -295}\special{pa 321 -300}%
+\special{pa 308 -305}\special{pa 294 -310}\special{pa 280 -314}\special{pa 266 -318}%
+\special{pa 252 -323}\special{pa 238 -326}\special{pa 223 -330}\special{pa 208 -333}%
+\special{pa 193 -337}\special{pa 177 -339}\special{pa 162 -342}\special{pa 146 -345}%
+\special{pa 130 -347}\special{pa 114 -349}\special{pa 98 -350}\special{pa 82 -352}%
+\special{pa 65 -353}\special{pa 49 -354}\special{pa 33 -354}\special{pa 16 -355}%
+\special{pa -0 -355}\special{pa -17 -355}\special{pa -33 -354}\special{pa -49 -354}%
+\special{pa -66 -353}\special{pa -82 -352}\special{pa -98 -350}\special{pa -114 -349}%
+\special{pa -130 -347}\special{pa -146 -344}\special{pa -162 -342}\special{pa -178 -339}%
+\special{pa -193 -336}\special{pa -208 -333}\special{pa -223 -330}\special{pa -238 -326}%
+\special{pa -252 -322}\special{pa -267 -318}\special{pa -281 -314}\special{pa -294 -310}%
+\special{pa -308 -305}\special{pa -321 -300}\special{pa -334 -295}\special{pa -346 -289}%
+\special{pa -359 -284}\special{pa -370 -278}\special{pa -382 -272}\special{pa -393 -266}%
+\special{pa -404 -260}\special{pa -414 -253}\special{pa -424 -247}\special{pa -433 -240}%
+\special{pa -442 -233}\special{pa -451 -226}\special{pa -459 -219}\special{pa -467 -212}%
+\special{pa -474 -204}\special{pa -481 -197}\special{pa -487 -189}\special{pa -493 -182}%
+\special{pa -498 -174}\special{pa -503 -166}\special{pa -507 -158}\special{pa -511 -150}%
+\special{pa -514 -142}\special{pa -517 -134}\special{pa -520 -126}\special{pa -521 -118}%
+\special{pa -523 -109}\special{pa -523 -101}\special{pa -524 -93}\special{pa -523 -85}%
+\special{pa -523 -77}\special{pa -521 -68}\special{pa -519 -60}\special{pa -517 -52}%
+\special{pa -514 -44}\special{pa -511 -36}\special{pa -507 -28}\special{pa -503 -20}%
+\special{pa -498 -12}\special{pa -493 -4}\special{pa -487 3}\special{pa -480 11}%
+\special{pa -474 18}\special{pa -466 26}\special{pa -459 33}\special{pa -451 40}%
+\special{pa -442 47}\special{pa -433 54}\special{pa -424 61}\special{pa -414 67}%
+\special{pa -403 74}\special{pa -393 80}\special{pa -382 86}\special{pa -370 92}%
+\special{pa -358 98}%
+\special{fp}%
+\special{pa -377 201}\special{pa -364 207}\special{pa -351 212}\special{pa -338 218}%
+\special{pa -324 223}\special{pa -310 228}\special{pa -295 233}\special{pa -280 237}%
+\special{pa -265 242}\special{pa -250 246}\special{pa -235 249}\special{pa -219 253}%
+\special{pa -203 256}\special{pa -187 259}\special{pa -170 262}\special{pa -154 265}%
+\special{pa -137 267}\special{pa -120 269}\special{pa -103 271}\special{pa -86 272}%
+\special{pa -69 273}\special{pa -52 274}\special{pa -34 275}\special{pa -17 275}%
+\special{pa 0 276}\special{pa 18 275}\special{pa 35 275}\special{pa 52 274}%
+\special{pa 69 273}\special{pa 86 272}\special{pa 103 271}\special{pa 120 269}%
+\special{pa 137 267}\special{pa 154 265}\special{pa 171 262}\special{pa 187 259}%
+\special{pa 203 256}\special{pa 219 253}\special{pa 235 249}\special{pa 250 246}%
+\special{pa 266 241}\special{pa 281 237}\special{pa 296 233}\special{pa 310 228}%
+\special{pa 324 223}\special{pa 338 218}\special{pa 351 212}\special{pa 365 207}%
+\special{pa 377 201}\special{pa 390 195}\special{pa 402 189}\special{pa 414 182}%
+\special{pa 425 176}\special{pa 436 169}\special{pa 446 162}\special{pa 456 155}%
+\special{pa 465 148}\special{pa 475 140}\special{pa 483 133}\special{pa 491 125}%
+\special{pa 499 117}\special{pa 506 109}\special{pa 513 101}\special{pa 519 93}%
+\special{pa 524 85}\special{pa 529 77}\special{pa 534 68}\special{pa 538 60}%
+\special{pa 541 52}\special{pa 544 43}\special{pa 547 34}\special{pa 549 26}%
+\special{pa 550 17}\special{pa 551 9}\special{pa 551 -0}\special{pa 551 -9}%
+\special{pa 550 -17}\special{pa 549 -26}\special{pa 547 -35}\special{pa 544 -43}%
+\special{pa 541 -52}\special{pa 538 -60}\special{pa 534 -69}\special{pa 529 -77}%
+\special{pa 524 -85}\special{pa 519 -93}\special{pa 512 -102}\special{pa 506 -110}%
+\special{pa 499 -117}\special{pa 491 -125}\special{pa 483 -133}\special{pa 474 -140}%
+\special{pa 465 -148}\special{pa 456 -155}\special{pa 446 -162}\special{pa 435 -169}%
+\special{pa 425 -176}\special{pa 413 -182}\special{pa 402 -189}\special{pa 390 -195}%
+\special{pa 377 -201}\special{pa 364 -207}\special{pa 351 -212}\special{pa 338 -218}%
+\special{pa 324 -223}\special{pa 310 -228}\special{pa 295 -233}\special{pa 280 -237}%
+\special{pa 265 -242}\special{pa 250 -246}\special{pa 235 -249}\special{pa 219 -253}%
+\special{pa 203 -256}\special{pa 187 -259}\special{pa 170 -262}\special{pa 154 -265}%
+\special{pa 137 -267}\special{pa 120 -269}\special{pa 103 -271}\special{pa 86 -272}%
+\special{pa 69 -273}\special{pa 52 -274}\special{pa 34 -275}\special{pa 17 -275}%
+\special{pa -0 -276}\special{pa -18 -275}\special{pa -35 -275}\special{pa -52 -274}%
+\special{pa -69 -273}\special{pa -86 -272}\special{pa -103 -271}\special{pa -120 -269}%
+\special{pa -137 -267}\special{pa -154 -265}\special{pa -171 -262}\special{pa -187 -259}%
+\special{pa -203 -256}\special{pa -219 -253}\special{pa -235 -249}\special{pa -250 -246}%
+\special{pa -266 -241}\special{pa -281 -237}\special{pa -296 -233}\special{pa -310 -228}%
+\special{pa -324 -223}\special{pa -338 -218}\special{pa -351 -212}\special{pa -365 -207}%
+\special{pa -377 -201}\special{pa -390 -195}\special{pa -402 -189}\special{pa -414 -182}%
+\special{pa -425 -176}\special{pa -436 -169}\special{pa -446 -162}\special{pa -456 -155}%
+\special{pa -465 -148}\special{pa -475 -140}\special{pa -483 -133}\special{pa -491 -125}%
+\special{pa -499 -117}\special{pa -506 -109}\special{pa -513 -101}\special{pa -519 -93}%
+\special{pa -524 -85}\special{pa -529 -77}\special{pa -534 -68}\special{pa -538 -60}%
+\special{pa -541 -52}\special{pa -544 -43}\special{pa -547 -34}\special{pa -549 -26}%
+\special{pa -550 -17}\special{pa -551 -9}\special{pa -551 0}\special{pa -551 9}%
+\special{pa -550 17}\special{pa -549 26}\special{pa -547 35}\special{pa -544 43}%
+\special{pa -541 52}\special{pa -538 60}\special{pa -534 69}\special{pa -529 77}%
+\special{pa -524 85}\special{pa -519 93}\special{pa -512 102}\special{pa -506 110}%
+\special{pa -499 117}\special{pa -491 125}\special{pa -483 133}\special{pa -474 140}%
+\special{pa -465 148}\special{pa -456 155}\special{pa -446 162}\special{pa -435 169}%
+\special{pa -425 176}\special{pa -413 182}\special{pa -402 189}\special{pa -390 195}%
+\special{pa -377 201}%
+\special{fp}%
+\settowidth{\Width}{ワイヤーフレームモデル}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{ワイヤーフレームモデル}\settodepth{\Depth}{ワイヤーフレームモデル}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.4285714,-1.5000000){\hspace*{\Width}\raisebox{\Height}{ワイヤーフレームモデル}}%
+%
+\settowidth{\Width}{サーフェスモデル}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{サーフェスモデル}\settodepth{\Depth}{サーフェスモデル}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.5714286,-1.5000000){\hspace*{\Width}\raisebox{\Height}{サーフェスモデル}}%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex
new file mode 100644
index 00000000000..13fbd5890be
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex
@@ -0,0 +1,30 @@
+%%% /Users/hannya/Desktop/fig/wire01.tex
+%%% Generator=template3D.cdy
+{\unitlength=8mm%
+\begin{picture}%
+(3.57,3.27)(-1.77,-0.91)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+\special{pa 494 -130}\special{pa -494 130}%
+\special{fp}%
+\special{pa -391 -164}\special{pa 391 164}%
+\special{fp}%
+\special{pa 0 287}\special{pa 0 -594}%
+\special{fp}%
+\special{pa -442 -17}\special{pa 0 -149}%
+\special{fp}%
+\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex
new file mode 100644
index 00000000000..ca0a12c55a0
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex
@@ -0,0 +1,30 @@
+%%% /Users/hannya/Desktop/fig/wire02.tex
+%%% Generator=template3D.cdy
+{\unitlength=8mm%
+\begin{picture}%
+(3.57,3.27)(-1.77,-0.91)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+\special{pa 494 -130}\special{pa -494 130}%
+\special{fp}%
+\special{pa -391 -164}\special{pa 391 164}%
+\special{fp}%
+\special{pa 0 287}\special{pa 0 -594}%
+\special{fp}%
+\special{pa -442 -17}\special{pa 442 -280}%
+\special{fp}%
+\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex
new file mode 100644
index 00000000000..bd61a8b728f
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex
@@ -0,0 +1,30 @@
+%%% /Users/hannya/Desktop/fig/wire03.tex
+%%% Generator=template3D.cdy
+{\unitlength=8mm%
+\begin{picture}%
+(3.57,3.27)(-1.77,-0.91)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+\special{pa 494 -130}\special{pa -494 130}%
+\special{fp}%
+\special{pa -391 -164}\special{pa 391 164}%
+\special{fp}%
+\special{pa 0 287}\special{pa 0 -594}%
+\special{fp}%
+\special{pa -442 -17}\special{pa 145 -68}%
+\special{fp}%
+\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex
new file mode 100644
index 00000000000..8c69fb66dc3
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex
@@ -0,0 +1,30 @@
+%%% /Users/hannya/Desktop/fig/wire04.tex
+%%% Generator=template3D.cdy
+{\unitlength=8mm%
+\begin{picture}%
+(3.57,3.27)(-1.77,-0.91)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+\special{pa 494 -130}\special{pa -494 130}%
+\special{fp}%
+\special{pa -391 -164}\special{pa 391 164}%
+\special{fp}%
+\special{pa 0 287}\special{pa 0 -594}%
+\special{fp}%
+\special{pa -442 -17}\special{pa -247 -84}%
+\special{fp}%
+\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
index e3b86464ef9..654d4da88c3 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
@@ -156,19 +156,20 @@ Hide coordinate axes.
\itemket{Description}Generic function to set the style of axis.
\itemket{Details}Parameters are:\\
1. Style of axis ("l" ; line(default), "a" : arrow)\\
-\hspace*{10mm}Rem)Write like \verb|"a0.5"| when setting the size.\\
-2. Name of horizontal ax ( default is \verb|"x"|)\\
-3. Posion of horizontal name (default is \verb|"e"|)\\
-4. Name of horizontal ax ( default is \verb|"y"|)\\
-5. Posion of horizontal name (default is \verb|"n"|)\\
-6. Name of origin (default is \verb|"O"|)\\
-7. Position of origin (default is \verb|"sw"|)\\
-8. Line style\\
+2. Name of horizontal ax ( default is x)\\
+3. Posion of horizontal name (default is "e")\\
+4. Name of horizontal ax ( default is y)\\
+5. Posion of horizontal name (default is "n")\\
+6. Name of origin (default is O)\\
+7. Position of origin (default is "sw")\\
+8. Linestyle\\
9. Color of axes\\
10. Color of labels\\
+
\itemket{Examples}\mbox{}
\verb|Setax(["a","","","","","","nw"]);|\\
+\verb|Setax(["","","","","","","","do","red"]);|\\
\verb|Setax([7,"nw"]);|\\
\verb|Setax(["a","\theta","","x","w"]);|
@@ -192,10 +193,10 @@ To draw a point in the void mode.
\verb|Setax([7,"se"]);|\\
\verb|Setpt(8);|\\
-\verb|Drwpt([-pi,0],0);|\\
+\verb|Pointdata("1",[[-pi,0]],["Inside=0"]);|\\
\verb|Drwxy();|\\
\verb|Plotdata("1","sin(x)","x",["dr","Num=300"]);|\\
-\verb|Drwpt([pi,0],0);|
+\verb|Pointdata("2",[[pi,0]],["Inside=0"]);|
\begin{center}
\input{Fig/drwxy}
@@ -322,7 +323,7 @@ $f(x)=\left\{\begin{array}{l}1 (x\geq 0)\\ -1 (x<0)\\ \end{array}\right.$
\itemket{Usage}Setpt(ratio);
\itemket{Description}Generic funtion to set the size of points.
\itemket{Details}"ratio" is the ratio from the standard size.\\
-Size can be change as a option of ``Pointdata".
+Size can be change as a option of "Pointdata".
\itemket{Examples}\mbox{}
\verb|Pointdata("1",A,["Size=1"]);|\\
@@ -333,6 +334,13 @@ Size can be change as a option of ``Pointdata".
\hspace{20mm}\input{Fig/pointsize}
\end{cmd}
+%------------Setarrow--------------------------------
+\begin{cmd}{Setarrow}{setarrow}
+\itemket{Usage}Setarrow(size,angle,position,cut,segstyle)
+\itemket{Description}Generic function to set the arrow.
+\itemket{Details} Set the style of arrow. Same as options of \hyperlink{arrowdata}{Arrowdata()} .\\
+\end{cmd}
+
%------------Setmarklen--------------------------------
\begin{cmd}{Setmarklen}{setmarklen}
@@ -363,7 +371,7 @@ The coordinate of apparent origin is $(3,2)$ but we use the original coordinate
Left figure is Euclidean view, right figure is the result of \TeX.
\begin{center}
-\includegraphics[bb=0 0 227 205 , width=4cm]{Fig/setorigin.pdf}\hspace{10mm}%
+\includegraphics[bb=0 0 299.02 250.01 , width=4cm]{Fig/setorigin.pdf}\hspace{10mm}%
\input{Fig/setorigin}
\end{center}
@@ -480,13 +488,13 @@ In addition, there are options specific to each function.
\begin{cmd}{Pointdata}{pointdata}
\itemket{Usage}Pointdata(name, point list, options)
\itemket{Description}Generic function to make a point data.
-\itemket{Detailse}Options are "Size=", "Color=", "notex/nodisp".
+\itemket{Detailse}Options are "Size=", "Color=", "Inside=","notex/nodisp".
\itemket{Examples}\mbox{}
\verb|Pointdata("1",[[1,2],[-2,3]]); | // make 2 points (1,2),(-2,3)\\
\verb|Pointdata("2",[A,B]); | // A and B are draw by drawing tool.\\
\verb|Pointdata("3",A,["size=4"]); | // size of point A is 4.\\
-\verb|Pointdata("4",[A,B],[0]); | // white circles\\
+\verb|Pointdata("4",[A,B],["Inside=0"]); | // white circles\\
\verb|Pointdata("5",[[3,4],[5,6]],["notex"]); | //not draw in the \TeX file.\\
\verb|Pointdata("6",[[3,4],[5,6]],["nodisp"]);| //not draw \TeX file and Euclidean view.\\
@@ -505,38 +513,38 @@ Draw node of tree.
\end{cmd}
%---------Drwpt -----------------------------------
-\begin{cmd}{Drwpt}{drwpt}
-\itemket{Usage}Drwpt(point, option) or Drawpoint(point, options)
-\itemket{Description}Draw a point.
-\itemket{Details}
-The position of point is specified via its coordinate or the name of geometric object.
-When the point is to be displayed not only on \TeX\ final output but also on the Euclidean view, you should generate geometric point on the screen.
-Also \verb|Pointdata()| or \verb|Putpoint()| can be used.
-When several points are to be generated,
-the list of them should be given as the argument.
-When 0 is input as the option, the point is displayed in a solid-white manner.
-\itemket{Examples}\mbox{}
+%\begin{cmd}{Drwpt}{drwpt}
+%\itemket{Usage}Drwpt(point, option) or Drawpoint(point, options)
+%\itemket{Description}Draw a point.
+%\itemket{Details}
+%The position of point is specified via its coordinate or the name of geometric object.
+%When the point is to be displayed not only on \TeX\ final output but also on the Euclidean view, you should generate geometric point on the screen.
+%Also \verb|Pointdata()| or \verb|Putpoint()| can be used.
+%When several points are to be generated,
+%the list of them should be given as the argument.
+%When 0 is input as the option, the point is displayed in a solid-white manner.
+%\itemket{Examples}\mbox{}
-Draw the points $(1,1)$ and $(4,3)$.
+%Draw the points $(1,1)$ and $(4,3)$.
-\verb| Drwpt([[1,1],[4,3]]);|\\
+%\verb| Drwpt([[1,1],[4,3]]);|\\
-After generating points A, B, and C on the Euclidean view, display their image on \TeX\ document.
+%After generating points A, B, and C on the Euclidean view, display their image on \TeX\ document.
-\verb| Drwpt([A,B,C]);|\\
+%\verb| Drwpt([A,B,C]);|\\
-The endpoint B of segment AB in a solid-white manner.
+%The endpoint B of segment AB in a solid-white manner.
-\verb| Ptsize(5);|\\
-\verb| Listplot([A,B]);|\\
-\verb| Drawpoint(B,0);|
-\begin{center}
-\input{Fig/drawpoint}
-\end{center}
+%\verb| Ptsize(5);|\\
+%\verb| Listplot([A,B]);|\\
+%\verb| Drawpoint(B,0);|
+%\begin{center}
+%\input{Fig/drawpoint}
+%\end{center}
-\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points}
+%\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points}
-\end{cmd}
+%\end{cmd}
%--------------Putpoint------------------------------
\begin{cmd}{Putpoint}{putpoint}
@@ -1480,10 +1488,9 @@ Draw discontinuity accurately by "Dis" option.
Draw floor function.
\verb| Plotdata("1","floor(x)","x",["Num=100","Dis=0.9"]); |\\
-\verb| Ptsize(3); |\\
\verb| Drwxy(); |\\
\verb| repeat(7,s,start -> -2, |\\
-\verb| Drwpt([s+1,s],0); |\\
+\verb| Pointdata(text(s+3),[s+1,s],["Inside=0","Size=3"]);|\\
\verb| ); |
\vspace{\baselineskip}
@@ -1679,7 +1686,7 @@ The option "nth" is used to set the number when plotting data has multi intersec
%-----------Letter---------------------------------
\begin{cmd}{Letter}{letter}
-\itemket{Usage}Letter([position, direction, string])
+\itemket{Usage}Letter([position, direction, string],options)
\itemket{Description}Display the string.
\itemket{Details}
Write the string at the position specified by position (or coordinates) and direction. \\
@@ -1689,6 +1696,7 @@ The distance from the specified position can also be given as a numerical value.
Multiple strings can be passed in the form of a list. \\
\itemket{Remark}\mbox{}
The derivative symbol $'$ uses \$ $'$ \$ (single quart) in mathematical mode (interleaved with two \$ s).
+Option is size of font. For example, ["size=32"]
\item[Example]\mbox{}
\verb|Letter([[2,1] ,"se","P"]); | // Display P in the southeast of the coordinates (2, 1). \\
@@ -2615,6 +2623,28 @@ Gets the points at both ends of the graph with limited domain and draw the line
\begin{center} \input{Fig/ptstart} \end{center}
\end{cmd}
+%------------Readcsv--------------------------------
+\begin{cmd}{Readcsv}{readcsv}
+
+\itemket{Usage}Readcsv(path,filename,option)
+\itemket{Description}read an external data file in csv format. The return value is a list of the data.
+\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig).
+If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\
+option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ).
+\itemket{Examples} \mbox{}
+Examples can be found in the command Boxplot().
+\end{cmd}
+
+%------------Readlines--------------------------------
+\begin{cmd}{Readlines}{readlines}
+
+\itemket{Usage}Readlines(path,filename,option)
+\itemket{Description}read a text file line by line. The return value is a list of strings.
+\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig).
+If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\
+option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ).
+\end{cmd}
+
%----------ReadOutData----------------------------------
\begin{cmd}{ReadOutData}{readoutdata}
\itemket{Usage}ReadOutdata(filename);
@@ -3531,27 +3561,6 @@ Example2
\end{cmd}
-%------------Readcsv--------------------------------
-\begin{cmd}{Readcsv}{readcsv}
-
-\itemket{Usage}Readcsv(path,filename,option)
-\itemket{Description}read an external data file in csv format. The return value is a list of the data.
-\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig).
-If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\
-option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ).
-\itemket{Examples} \mbox{}
-Examples can be found in the command Boxplot().
-\end{cmd}
-
-%------------Readlines--------------------------------
-\begin{cmd}{Readlines}{readlines}
-
-\itemket{Usage}Readlines(path,filename,option)
-\itemket{Description}read a text file line by line. The return value is a list of strings.
-\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig).
-If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\
-option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ).
-\end{cmd}
%------------Scatterplot--------------------------------
\begin{cmd}{Scatterplot}{scatterplot}
@@ -4135,11 +4144,29 @@ Meanings and defaults of options are\\
\end{cmd}
\newpage
-%=== 3D =========
+%========== 3D =========
\section{\ketcindy 3D}
+\subsection{Screen}
+The screen of KETCindy3D is structured as follows.
+
+There are two areas surrounded by a white rectangle on the drawing surface of Cinderella. The area on the left side where the NE and the SW are diagonal is referred to as the main screen, and the area on the right side is referred to as the sub screen.
+
+\vspace{\baselineskip}
+\begin{center}
+ \includegraphics[bb=0 0 879.05 447.02 , width=8cm]{Fig/3dstart.pdf}
+\end{center}
+As in the case of a flat surface, the main screen shows the range output to TeX and it can be changed by dragging two points of NE and SW. The viewpoint can be moved with the slider below the main screen, and the axis rotates on the main screen. You can think of the sub screen as a viewpoint placed on the xy plane.
+
+When you draw points and line segments with Cinderella's drawing tool on the main screen, points corresponding to the secondary screen are drawn. You can change the x, y coordinates by dragging the point on the main screen, and drag the point on the sub screen to change the z coordinate.
+
+\vspace{\baselineskip}
+\begin{center}
+ \includegraphics[bb=0.00 0.00 863.04 378.52 , width=10cm]{Fig/3dscreen.pdf}
+\end{center}
+KeTCindy3D performs hidden line processing on lines and surfaces. Hidden line processing speeds up processing in cooperation with C language.
+It is necessary to develop an environment that uses C language, but now it is standardized. If you can not use C language, you will use a function to compute with R, but in that case it will take quite a while.
-%====================================
\subsection{Setting and Defining}
%------------Ketinit3d--------------------------------
\begin{cmd}{Ketinit3d}{ketinit3D}
@@ -4148,11 +4175,10 @@ Meanings and defaults of options are\\
\itemket{Details}Euclidean view of Cinderella becomes 3D mode. Two sliders are created to indicate the viewing angle TH($\theta$), FI($\phi$). The initial values are $\mathrm{TH}=0$ and $\mathrm{FI}=0$.\\
\textcolor{red}{Caution}
This funcition and Ketinit() have to write on Initializaiton slot.
-\itemket{Remark}If \verb|Ketinit3d(0)| is used, the subscreen is not displayed.
+\itemket{Remark}If \verb|Ketinit3d(0)| is used, the subscreen is not displayed. Ketinit () is also placed in the Initialization Slot, unlike 2D.
\end{cmd}
%------------Start3d--------------------------------
-
\begin{cmd}{Start3d}{start3d}
\itemket{Usage}Start3d(option)
\itemket{Description}3d function to initialize limited variables.
@@ -4160,12 +4186,12 @@ Meanings and defaults of options are\\
This funcition should be written at the beginning of Draw slot.\\
The option is a list of geometric points which are not regarded as 3D points.
\itemket{Example}\mbox{}\\
+If option is given a list of exclusion points, that point is not a point of space. (The position does not change even if moving the viewpoint with the slider)
+
\verb|Start3d([A,B,C]);|\\
-\verb|Slider("A-C-B");| // A,C,B should not be 3D points.
-\end{cmd}
+\verb|Slider("A-C-B");| // A,C,B should not be 3D points.\end{cmd}
%--------------Startsurf------------------------------
-
\begin{cmd}{Startsurf}{startsurf}
\itemket{Usage}Startsurf(options)
\itemket{Description}Defines values related to surface rendering.
@@ -4178,33 +4204,143 @@ Drawing of a curved surface with hidden line processing is performed in the foll
%\itemket{Examples} \mbox{}
\end{cmd}
-%--------------Isangle------------------------------
-\begin{cmd}{Isangle}{isangle}
+%-------------Xyzax3data-------------------------------
+\begin{cmd}{Xyzax3data}{xyzax3data}
-\itemket{Usage}Isangle()
-\itemket{Description}Decide the selection of the angle slider.
-\itemket{Details}Returns ``true" if select slider, and ``false" if not.\\
-In drawing including hidden line processing, reaction is bad when recalculating while moving the viewpoint. With this function, you can write code that does not recalculate while moving the viewpoint.
+\itemket{Usage} Xyzax3data(name, range of x, range of y, range of z, options)
+\itemket{Description}Generic function to draw the coordinate axis.
+\itemket{Details}Name can be null string.\\
+Options are the followings.\\
+"an": arrowhead, n is size.\\
+"Onesw": origin and its position.
+\itemket{Examples} \mbox{}
-\itemket{Examples} \mbox{}
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");|\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");| //arrowhead\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);| //big arrowhead\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);|\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a","Oe2n2"]);| //set origin upper right
-\verb| fd=[ |\\
-\verb| "z=4-(x^2+y^2)",|\\
-\verb| "x=R*cos(T)","y=R*sin(T)",|\\
-\verb| "R=[0,2]","T=[0,2*pi]","e" \verb| ];|\\
-\verb| if(Isangle(),|\\
-\verb| Sf3data("1",fd);|\\
-\verb| ,|\\
-\verb| Startsurf();|\\
-\verb| Sfbdparadata("1",fd);|\\
-\verb| Crvsfparadata("1","ax3d","sfbd3d1",fd);|\\
-\verb| ExeccmdC("1");|\\
-\verb| );|
+\end{cmd}
+
+\newpage
+%================== 3D Drawing ===============
+
+\subsection{Command for Drawing}
+\subsubsection{Point and line}
+%--------------Drawpoint3d------------------------------
+
+\begin{cmd}{Drawpoint3d}{drawpoint3d}
+
+\itemket{Usage}Drawpoint3d(list of coordinates)
+\itemket{Description}Generic function to draw 3D-points.
+\itemket{Details}These points are not geometric point.
+To convert the geometric point, use \hyperlink{putpoint3d}{Putpoint3d()}.
+To output in the \TeX file, use \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}.
+\itemket{Examples} \mbox{}
+
+\verb| Drawpoint3d([1,1,1]); |\\
+\verb| Drawpoint3d([[1,1,1],[0,1,0]]); |
+
+\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points}
\end{cmd}
-\subsection{Command for Drawing}
+%--------------Pointdata3d------------------------------
+\begin{cmd}{Pointdata3d}{pointdata3d}
+
+\itemket{Usage}Pointdata3d(name, point list, options)
+\itemket{Description}Generic function to generate data of the point list.
+\itemket{Details}Options are "Size=","Color=".
+\itemket{Examples} \verb|Pointdata3d("1",[[0,1,0],[1,1,2]],["Size=2","Color=red"]);|
+\end{cmd}
+%---------------Putpoint3d-----------------------------
+\begin{cmd}{Putpoint3d}{putpoint3d}
+
+\itemket{Usage}Putpoint3d(list of 3D-points, option)
+\itemket{Description}Generic function to draw the geometric point in the space.
+\itemket{Details}Option is "free" or "fix"(default).
+\itemket{Examples} \mbox{}
+
+\verb|Putpoint3d(["A",[2,1,3]]);|\\
+\verb|Putpoint3d(["A",[2,1,3]],"free");| \\
+\verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]]);|\\
+
+These points don't output in the \TeX file. To output in the \TeX file use the following \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}
+
+In the 3D-drawings the coordinate of the point name A is A3d.
+
+\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points}
+
+\end{cmd}
+
+%-----------------Putaxes3d---------------------------
+\begin{cmd}{Putaxes3d}{putaxes3d}
+
+\itemket{Usage}Putaxes3d([x,y,z])
+\itemket{Description}Generic function to make the geometric points on the coordinate axis.
+\itemket{Details}For the argument [x,y,x] we get the four geometric points X(x,0,0), Y(0,y,0), Z(0,0,z) and O(0,0,0).
+\itemket{Examples} \mbox{}
+
+\verb|Putaxes3d([1,2,3]);|\\
+\verb|Putaxes3d(a);| //this equals to \verb|Putaxes3d([a,a,a]);|
+
+\end{cmd}
+
+%--------------PutonCurve3d------------------------------
+\begin{cmd}{PutonCurve3d}{putonCurve3d}
+
+\itemket{Usage} PutonCurve3d(name, PD)
+\itemket{Description}Generic function to make the geometric point on the 3D-curve.
+\itemket{Details}This point moves along the curve by mouse dragging.
+\itemket{Examples} \mbox{}
+
+Make reference to \hyperlink{partcrv3d}{Partcrv3d()}
+\end{cmd}
+%----------------Putonseg3d----------------------------
+\begin{cmd}{Putonseg3d}{putonseg3d}
+
+\itemket{Usage}Putonseg3d(name, point1, point2)
+\itemket{Description}Generic function to make the geometric point on the 3D-segment.
+\itemket{Details}We get the middle point between the two points. This point moves along the segment by mouse dragging.
+\itemket{Examples} \mbox{}
+
+\verb|Putonseg3d("C",A,B);| //Put C on the center of A and B.\\
+\verb|Putonseg3d("C",[A,B]);| //same as above
+\end{cmd}
+%--------------Spaceline------------------------------
+\begin{cmd}{Spaceline}{spaceline}
+
+\itemket{Usage} Spaceline(name, list)
+\itemket{Description}Generic function to draw the space polygonal lines.
+\itemket{Details}Options are line type: "dr" or "da" or "do".
+\itemket{Examples} \mbox{}
+
+\verb|Spaceline("1",[[2,5,1],[4,2,3]]);| //draw the line between two points\\
+\verb|Spaceline("2",[A,B,C,A]);| //draw the triangle ABC\\
+
+\begin{layer}{150}{0}
+\putnotese{100}{-5}{ \input{Fig/oresenex01}}
+\end{layer}
+
+\verb|pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; |\\
+\verb|Spaceline("1",pt); |\\
+\verb|Pointdata3d("1",pt,["Size=3"]);|
+
+\vspace{30mm}
+\end{cmd}
+%-------------Spacecurve-------------------------------
+\begin{cmd}{Spacecurve}{spacecurve}
+
+\itemket{Usage}Spacecurve(name, formula, domain, options)
+\itemket{Description}Generic function to draw the space curve.
+\itemket{Examples} \mbox{}
+\verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);|\\
+option=["Num=100"]: division number of the interval "t=[0,4*pi]"
+ \begin{center} \input{Fig/rasen} \end{center}
+\end{cmd}
+
%-------------Bezier3d}-------------------------------
\begin{cmd}{Bezier3d}{bezier3d}
@@ -4219,27 +4355,66 @@ In drawing including hidden line processing, reaction is bad when recalculating
\begin{center} \input{Fig/bezier3d1} \end{center}
\end{cmd}
-%----------Changestyle3d----------------------------------
-\begin{cmd}{Changestyle3d}{changestyle3d}
-\itemket{Usage} Changestyle3d(PD,option)
-\itemket{Description}Change the attribute of PD.
-\itemket{Details}Change the attribute of PD to one with option specification. PD is a plotting data or a list of plotting data.
+%---------Mkbezierptcrv3d-----------------------------------
+\begin{cmd}{Mkbezierptcrv3d}{mkbezierptcrv3d}
+\itemket{Usage}Mkbezierptcrv3d(list)
+\itemket{Description}Draw a cubic B\'ezier curve from nodes.
+\itemket{Details}Arrange the control points automatically.
+After that, move the nodes and the control points and correct the cubic B\'ezier curve to what you want to draw. See the function {\tt \hyperlink{bezier}{Bezier3d}}.
\itemket{Examples} \mbox{}
-Make a tetrahedron by four points of space.\\
-\verb|Spaceline("1",[A,B]);|\\
-\verb|Spaceline("2",[A,C]);|\\
-\verb|Spaceline("3",[B,C]);|\\
-\verb|Spaceline("4",[A,D]);|\\
-\verb|Spaceline("5",[B,D]);|\\
-\verb|Spaceline("6",[C,D]);|\\
-then\\
-\verb|Changestyle3d("sl3d1",["dr,3"]);| // one edge become thick.\\
-or\\
-\verb|edges=apply(1..6,"sl3d"+text(#));|\\
-\verb|Changestyle3d(edges,["notex"]);| // all edges become ``notex".\\
+\verb|Mkbezierptcrv3d(["A","B","C","D"]);|
\end{cmd}
+%-------------Skeletonparadata-------------------------------
+\begin{cmd}{Skeletonparadata}{skeletonparadata}
+
+\itemket{Usage}Skeletonparadata(name, PDlist, PDlist, option)
+\itemket{Description}Generic function to draw the lines by performing hidden line processing.
+\itemket{Details}This function draw the second argument(the list of the lines) by performing hidden line processing which are hidden by the third argument(the list of the lines). If both arguments are omitted the function draw all lines by performing hidden line processing.
+
+Options:\\
+\hspace*{5mm}\verb|real number| gap of line\\
+\hspace*{5mm}\verb|"No=pointlist"| not executed when any point is selected\\
+\hspace*{5mm}\verb|"File=y/m/n(default:n)"| whether to make data file or not\\
+\hspace*{5mm}\verb|"Check=pointlist"| data file updated if any point is changed
+
+\itemket{Examples} \mbox{}
+
+\verb| Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");| //Data name is "ax3d".\\
+\verb| Putpoint3d(["A",[0,-2,-2]]);|\\
+\verb| Putpoint3d(["B",[-1,1,3]]);|\\
+\verb| Spaceline([A,B]);| //Data name is "AB3d".\\
+\verb| Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);| //Data name is "sc3d1".\\
+
+\verb|Skeletonparadata("1");| //(left figure)\\
+\verb|Skeletonparadata("1",[2]);| //option\verb|=[2]|: gap of lines\verb|=2| (center figure)\\
+\verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);| //(right figure)
+\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02}
+ \input{Fig/skeletonparadata03} \end{center}
+
+\end{cmd}
+
+%================== 3D polyhedron ===============
+\subsubsection{Polyhedron}
+
+ The description of polyhedron drawing will be explained by taking the case of tetrahedron as an example.
+
+The tetrahedron is composed of four sides. Letting the vertices be A, B, C, D, the four faces are
+
+\hspace{20mm}$\triangle\mathrm{ABC}$, $\triangle\mathrm{ABD}$, $\triangle\mathrm{ACD}$, $\triangle\mathrm{BCD}$
+
+\begin{center} \input{Fig/concatobj} \end{center}
+
+If numbers are given to the vertex list [A, B, C, D] in order from A, the vertex order of each face is [1, 2, 3], [1, 2, 4], [1, 3 , 4], [2, 3, 4].
+
+[A, B, C, D], [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2 , 3, 4]]] is called "surface data". VertexEdgeFace () draws a polyhedron using this surface data.
+
+There are two kinds of hidden line processing of polyhedron. The first method is to treat polyhedron as a line drawing, and to process only the hidden part, using Skeletonparadata ().
+
+The other is to use Phparadata () as a way to draw a part hidden in the surface with a dotted line or hide it, considering it as a surface.
+
+\vspace{\baselineskip}
%------------Concatobj--------------------------------
\begin{cmd}{Concatobj}{concatobj}
@@ -4250,90 +4425,269 @@ or\\
A tetrahedron by four vertecies A,B,C,D.\\
The tetrahedron consists of four planes $\triangle\mathrm{ABC}$, $\triangle\mathrm{ABD}$, $\triangle\mathrm{ACD}$, $\triangle\mathrm{BCD}$.\\
+
+\verb| Putpoint3d("A",2*[0,0,sqrt(3)]); |\\
+\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\
+\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\
+\verb| Putpoint3d("D",2*[-1,-1/sqrt(3),0]);|\\
+\verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\
+\verb| VertexEdgeFace("1",phd);|\\
+\verb| Skeletonparadata("1");|\\
+\verb| Letter3d([A3d,"ne","A",B3d,"sw","B",C3d,"se","C",D3d,"e","D"]);|\\
+
\begin{center} \input{Fig/concatobj} \end{center}
-\verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\
-makes [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]]
-This data is used to drawing tetrahedron.
-For example code, see \hyperlink{vertexedgeface}{VertexEdgeFace()}.
+
+If you are drawing tetrahedrons without creating geometric points, you can do as follows.
+
+\verb| a=2*[-1,-1/sqrt(3),0];|\\
+\verb| b=2*[1,-1/sqrt(3),0];|\\
+\verb| c=2*[0,sqrt(3)-1/sqrt(3),0];|\\
+\verb| d=2*[0,0,sqrt(3)];|\\
+\verb| phd=Concatobj([[a,b,c],[a,b,d],[a,c,d],[b,c,d]]);|\\
+
+In the case of a convex polygon such as a tetrahedron, we can use CindyScript 's convexhull 3 d () function as follows. You can save time and effort by simply providing a vertex list instead of a surface list.
+
+\verb| a=2*[0,0,sqrt(3)];|\\
+\verb| b=2*[1,-1/sqrt(3),0];|\\
+\verb| c=2*[0,sqrt(3)-1/sqrt(3),0];|\\
+\verb| d=2*[-1,-1/sqrt(3),0];|\\
+\verb| phd=convexhull3d([a,b,c,d]);|\\
+
\end{cmd}
-%-------------Crvsfparadata-------------------------------
-\begin{cmd}{Crvsfparadata}{crvsfparadata}
-\itemket{Usage}Crvsfparadata(name,PD1,PD2,formula)
-\itemket{Description}Remove curves hidden by curved face.
-%\itemket{Details}
+%-------------Vertexedgeface-------------------------------
+\begin{cmd}{Vertexedgeface}{vertexedgeface}
+
+\itemket{Usage} VertexEdgeFace(name, list, options)
+\itemket{Description}Generic function to draw the polyhedron.
+\itemket{Details}We use the faces data of the polyhedron.\\
+The second argument is the list of vertexes list and the faces list.\\
+For example, the faces data of the tetrahedron is [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]].\\
+
+The generated data is as follows.
+
+phv3d: list of vertices
+
+phe3d: list of edges
+
+phf3d: Surface list
+
+Each name is appended to the end.
+
\itemket{Examples} \mbox{}
-For example code, see \hyperlink{execcmdc}{ExeccmdC()}.
+\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]); |\\
+\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]); |\\
+\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); |\\
+\verb| Putpoint3d("D",2*[0,0,sqrt(3)]); |\\
+\verb| phd=[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]];|\\
+\verb| VertexEdgeFace("1",phd); |\\
+ //Three data lists are made, phv3d1:vertex, phe3d1:edge and phf3d1:face.
+ \begin{center} \input{Fig/vertex01} \end{center}
\end{cmd}
-%--------------Datalist2d------------------------------
-
-\begin{cmd}{Datalist2d}{datalist2d}
+%--------------Phparadata------------------------------
+\begin{cmd}{Phparadata}{phparadata}
-\itemket{Usage}Datalist2d()
-\itemket{Description} Generic function to get a list of 2D-plotting data on the screen.
+\itemket{Usage}Phparadata(name, name2, list of options)
+\itemket{Description}Generic function to draw the polyhedron by performing hidden line processing.
+\itemket{Details}Make polyhedral plot data with VertexEdgeFace (). For this plot data, hidden surfaces (sides) are hidden-line processed and displayed. The second argument name2 is the same as the name given by VertexEdgeFace (). The hidden line type is specified by the option "Hidden = line type". Hidden lines are not displayed by default setting.
\itemket{Examples} \mbox{}
-We execute the following program then the computer will display "PD=[ax2d,AB2d]" on the console.\\
+\begin{layer}{150}{0}
+\putnotese{100}{0}{ \input{Fig/phparadata04}}
+\end{layer}
-\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
-\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
-\verb| Spaceline("1",[A,B]); |\\
-\verb| println("PD="+Datalist2d());|
+Draw a tetrahedron.
+
+\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]);|\\
+\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\
+\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\
+\verb| Putpoint3d("D",2*[0,0,sqrt(3)]);|\\
+\verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\
+\verb| VertexEdgeFace("1",phd);|\\
+\verb| Phparadata("1","1",["Hidden=do"]);|\\
+
+A tetrahedron is drawn by VertexEdgeFace (), but it is hidden by Phparadata (). Since it is correctly output if it is drawn with the figure button, it is good to execute Phparadata () after confirming it by displaying it on the screen before executing Phparadata ().
+
+\vspace{\baselineskip}
+Draw a truncated icosahedron of s06 (soccer ball type) using polyhedron data \verb|polyhedrons_obj| by Kobayashi, Suzuki, Mitani.
+\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj");| //Many polyhedron data exist in this directory.\\
+\verb|phd=Readobj("s06.obj",["size=3"]);| //"s06" is the name of truncated icosahedron data.\\
+\verb|Setdirectory(Dirwork);| //Chage work space.\\
+\verb|VertexEdgeFace("s06",phd);|\\
+\verb|Phparadata("1","s06");| //default usage, left figure\\
+
+The last two lines we can write the following.\\
+\verb|VertexEdgeFace("1",phd);|\\
+\verb|Phparadata("1","1");|
+\begin{center}
+ \includegraphics[bb=0 0 726.04 365.02 , width=10cm]{Fig/phparadata01.pdf}
+\end{center}
+
+\verb|Phparadata("1","s06",["dr,2","Hidden=do"]);| //right figure
+ \begin{center} \input{Fig/phparadata02} \input{Fig/phparadata03} \end{center}
\end{cmd}
-%--------------Datalist3d------------------------------
-\begin{cmd}{Datalist3d}{datalist3d}
+%--------------Nohiddenbyfaces------------------------------
+\begin{cmd}{Nohiddenbyfaces}{nohiddenbyfaces}
-\itemket{Usage}Datalist3d()
-\itemket{Details}Generic function to get a list of 3D-plotting data.
+\itemket{Usage}Nohiddenbyfaces(name,PD1,PD2,option1,option2)
+\itemket{Description}Generic function to draw hidden lines by the surfaces.
+\itemket{Details}PD1 are hidden lines, PD2 are surfaces.\\
+If we omit PD1 then all lines are processing objects.\\
+By default, hidden lines are drawn with dotted lines.\\
+Option1=line type of PD2 and option2=line type of hidden lines.\\
+If we specify only option2 then option1 must be null list:[].\\
\itemket{Examples} \mbox{}
-We execute the following program then the computer will display "PD=[ax3d,AB3d]" on the console.\\
+\begin{verbatim}
+Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
+Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
+Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+Putpoint3d("D",2*[0,0,2*sqrt(6)/3]);
+phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
+VertexEdgeFace("1",phd);
+Nohiddenbyfaces("1","phf3d1");
+\end{verbatim}
+(left figure)
-\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
-\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
-\verb| Spaceline("1",[A,B]); |\\
-\verb| println("PD="+Datalist3d()); |
+\verb|Nohiddenbyfaces("1","phe3d1","phf3d1",["dr,2"],["da"]); |
+(right figure)
+
+\begin{center} \input{Fig/nohiddenbyfaces1} \input{Fig/nohiddenbyfaces2} \end{center}
+
+We draw hidden axes with broken line in the following example.\\
+\verb|Nohiddenbyfaces("1","ax3d","phf3d1",[],["da"]);|
\end{cmd}
-%--------------Dist3d------------------------------
+%================== 3D Surface ===============
+\subsubsection{Surface}
-\begin{cmd}{Dist3d}{dist3d}
+There are wire frame models and surface models for drawing curved surfaces. The wire frame model represents a curved surface with stitches, and the surface model draws its contour as a stitch-free surface.
-\itemket{Usage}Dist3d(a1,a2)
-\itemket{Description}Generic function to get the 3D-distance of two points.
+In KeTCindy, each drawing is done using the following function.
+\begin{tabbing}
+1234567890123456789012345678901234567890\=\kill
+Wire frame model without hidden wire \>Sf3data(name,form,options)\\
+Surface model\>Sfbdparadata(name,form,options)\\
+Hidden-line wireframe model \>Wireparadata(name,PD,form,n1,n2,options)
+\end{tabbing}
+
+However, in order to do hidden line processing, surface data is necessary, so after drawing with Sfbdparadata (), draw hidden lines with ireparadata ().
+
+Also, in the drawing of the surface model, it takes time to process the hidden line, so it is assumed to use the C language. Therefore, ExeccmdC () which draws using C language is used together.
+
+ \begin{center} \input{Fig/surfacemodel} \end{center}
+
+The form of the argument is an equation and a list of character strings for the domain of the variable. There are three patterns of equations as follows.
+
+\vspace{\baselineskip}
+(1) $z=f(x,y)$
+
+ \hspace{5mm} ã€Example】formula : $z=x^2-y^2$
+
+ \hspace{15mm} range : $x=(-2,2) , y=(-2,2)$
+
+(2) $z=f(x,y),x=g(r,t),y=h(r,t)$
+
+ \hspace{5mm} ã€Example】formula : $z=4-(x^2+y^2) , x=r\cos t , y=r\sin t$
+
+\hspace{15mm} range : $r=(0,2) , t=(0,2\pi)$
+
+(3) $x=f(u,v),y=g(u,v),z=h(u,v),$
+
+\hspace{5mm} ã€Example】formula : $x=2\sin u \cos v , y=2\sin u \sin v , z=2\cos u $
+
+\hspace{15mm} range : $u=(0,\pi) , v=(0,2\pi)$
+
+\vspace{\baselineskip}
+
+Here, (2) and (3) are parametric types, each consisting of expressions of $ x, y, z $ and two domain of parametric variables. Since it is indistinguishable as it is, when giving it as an argument, "p" is added to the type of (3) as the identification character at the beginning.
+
+Regarding the domain of definition, there are cases where it is taken in the open section and in the closed section. The distinction is indicated by "ewsn" as boundary designation (both are closed segments). I think the meaning of "ewsn" as follows.
+
+\vspace{\baselineskip}
+For variable $u,v$ , $a \leq u \leq b,c \leq v \leq d$
+
+ \begin{center} \input{Fig/ewsn} \end{center}
+
+This boundary designation is added at the end, but it can be omitted, and if omitted, it is the initial value "ewsn" (closed interval).
+
+To make both open segments, add "". However, do not perform hidden line processing
+Sf3data () draws a line also on the boundary, so you can omit this specification.
+
+\vspace{\baselineskip}
+\verb|fd=["p","x=r*cos(t)","y=r*sin(t)","z=2*(2-r)","r=[1,2]","t=[0,2*pi]","ew"]|
+
+\vspace{\baselineskip}
+If this is "e", $ 1 <r \leq 2 $ is obtained, and the top face is not displayed.
+
+Also, if this is set to "w", $ 1 \leq r <2 $ and the bottom is not displayed.
+
+Furthermore, if you specify "ewn" or "ews" or abbreviate the initial value "ewsn", it will contain either the left or right value of $ t = (0, 2 \ pi) $, A border appears.
+
+\vspace{\baselineskip}
+\hspace{12mm}"ew" \hspace{25mm}"e" \hspace{25mm}"w" \hspace{25mm}"ewn"
+
+\input{Fig/frustumew} \input{Fig/frustume} \input{Fig/frustumw} \input{Fig/frustumewn}
+
+%--------------Sf3data------------------------------
+\begin{cmd}{Sf3data}{sf3data}
+
+\itemket{Usage}Sf3data(name, list, list of options)
+\itemket{Description}Generic function to draw the wire frame model of the surface.
+\itemket{Details}Second argument is the list of equations and ranges. \\
+Options are the followings.\\
+"Num=[a,b]": x- and y-division number, default(or initial values) are a=b=25.\\
+"Wire=[a,b]": x- and y-wire number, default(or initial values) are a=b=20.\\
+"ewsn": From east to south, this indicates the boundary.
\itemket{Examples} \mbox{}
-Following three programs return the same result.\\
+\verb|Sf3data("1",["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]);|\\
+\ \ //This is the first expression of the equation for the surface. Second argument is the list of equation, x-range and y-range.
+\begin{center} \input{Fig/saddle1} \end{center}
-\verb| Dist3d("A","B"); |\\
-\verb| Dist3d(A,B); |\\
-\verb| Dist3d(A3d,B3d); |
+\verb|fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]"];|\\
+\verb|Sf3data("1",fd);| //fd is the second argument.\\
+(left figure)\\
+
+\verb|fd=["z=sin(sqrt(abs(x^2+y^2)))","x=r*cos(t)","y=r*sin(t)",|\\
+\verb|"r=[0,3]","t=[0,2*pi]"];|\\
+\verb|Sf3data("1",fd);|\\
+(right figure)
+\begin{center} \input{Fig/parabola} \input{Fig/sf3ddata3} \end{center}
+
+\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)",|\\
+\verb|"u=[0,pi]","v=[0,2*pi]"];| //"p" indicates the 3D-parameter expression.\\
+\verb|Sf3data("1",fd);|
+\begin{center} \input{Fig/sf3ddata4} \end{center}
\end{cmd}
-%--------------Drawpoint3d------------------------------
-\begin{cmd}{Drawpoint3d}{drawpoint3d}
+%-------------Sfbdparadata-------------------------------
+\begin{cmd}{Sfbdparadata}{sfbdparadata}
-\itemket{Usage}Drawpoint3d(list of coordinates)
-\itemket{Description}Generic function to draw 3D-points.
-\itemket{Details}These points are not geometric point.
-To convert the geometric point, use \hyperlink{putpoint3d}{Putpoint3d()}.
-To output in the \TeX file, use \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}.
-\itemket{Examples} \mbox{}
+\itemket{Usage}Sfbdparadata(name, list, list of options)
+\itemket{Description}Generic function to make the surface by performing hidden line processing.
+\itemket{Details}Second argument is the list of equations and ranges same as the function "Sf3data". \\
+options1=no option or " "(space) or "r" or "m" and "Wait=integer". Default value of Wait is 20.\\
+No option or " "(space) means\\
+(1) If there exist no deta then it make a new data file.\\
+(2) If there exist deta then it read the data file.\\
+"m" means that it remake the new data file.\\
+"r" means that it reread the existing data file.\\
-\verb| Drawpoint3d([1,1,1]); |\\
-\verb| Drawpoint3d([[1,1,1],[0,1,0]]); |
+option2="nodisp" or line type of hidden line. Default is "nodisp".
-\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points}
+If we specify only option2 then we denote that option1 is empty list:[].
\end{cmd}
-%--------------ExeccmdC------------------------------
+%--------------ExeccmdC------------------------------
\begin{cmd}{ExeccmdC}{execcmdc}
\itemket{Usage}ExeccmdC(name,options1,options2)
@@ -4350,6 +4704,146 @@ option2="nodisp" or line type of hidden line. Default is "do".\\
If we specify only option2 then we denote that option1 is empty list:[].
\itemket{Examples} \mbox{}
+\begin{layer}{150}{0}
+\putnotese{95}{0}{ \input{Fig/sfbdpara01}}
+\putnotese{95}{45}{ \input{Fig/sfbdpara02}}
+\end{layer}
+
+Delete hidden lines and display
+
+\verb| fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];|\\
+\verb| if(Isangle(),|\\
+\verb| Sf3data("1",fd);|\\
+\verb| ,|\\
+\verb| Startsurf();|\\
+\verb| Sfbdparadata("1",fd);|\\
+\verb| ExeccmdC("1",[],["nodisp"]);|\\
+\verb| );|\\
+
+Make the whole thick with a solid line and
+
+ display the hidden line with a dotted line.
+
+\verb| ExeccmdC("1",["dr,2"]);|
+
+\vspace{10mm}
+
+Paraboloid
+
+\verb| fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];|\\
+
+Delete hidden line ( left figure):\verb|ExeccmdC("1",[],["nodisp"]);|
+
+Hidden lines are indicated by broken lines ( right figure ):\verb|ExeccmdC("1",[],["da"]);|
+
+ \begin{center} \input{Fig/sfbdpara03} \input{Fig/sfbdpara04} \end{center}
+
+When displaying two curved surfaces, name of Sfbdparadata () is set to "1" and "2", but it can be displayed together as \verb | ExeccmdC ("1") |.
+
+\verb| fd=[|\\
+\verb| "p",|\\
+\verb| "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",|\\
+\verb| "r=[1,2]","t=[0,2*pi]","ew"|\\
+\verb| ];|\\
+\verb| fd2=[|\\
+\verb| "p",|\\
+\verb| "x=r*cos(t)-3","y=r*sin(t)+3","z=2*(2-r)",|\\
+\verb| "r=[0,2]","t=[0,2*pi]","ew"|\\
+\verb| ];|\\
+\verb| if(!ptselected(),|\\
+\verb| Startsurf(); |\\
+\verb| Sfbdparadata("1",fd);|\\
+\verb| Sfbdparadata("2",fd2);|\\
+\verb| ExeccmdC("1");|\\
+\verb| );|\\
+
+\begin{center} \input{Fig/sfbdpara05} \end{center}
+
+\end{cmd}
+%-------------Wireparadata-------------------------------
+\begin{cmd}{Wireparadata}{wireparadata}
+
+\itemket{Usage} Wireparadata(name, PD, formula, integer, integer, options)
+\itemket{Description}Generic function to draw the surface by wire frame data with performing hidden line processing.
+\itemket{Details}The second argument PD is the surface data made by Sfbdparadata function.\\
+options=no option or " "(space) or "r" or "m" and "Wait=integer". Default value of Wait is 30.\\
+No option or " "(space) means\\
+(1) If there exist no deta then it make a new data file.\\
+(2) If there exist deta then it read the data file.\\
+"m" means that it remake the new data file.\\
+"r" means that it reread the existing data file.\\
+
+\itemket{Examples} \mbox{}
+
+\verb|fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]; |\\
+\verb|if(Isangle(), |\\
+\verb| Sf3data("1",fd); |\\
+\verb| , |\\
+\verb| Startsurf(); |\\
+\verb| Sfbdparadata("1",fd); | //We get the data named as "sfbd3d1".\\
+\verb| Wireparadata("1","sfbd3d1",fd,4,5,[""]); | //number of wires are 4 and 5.\\
+\verb| ExeccmdC("1"); | //draw the wires\\
+\verb|); |
+
+\begin{center}
+\input{Fig/wirepara1}
+\end{center}
+
+Change the following code.
+
+\verb|fd=["z=4-(x^2+y^2)","x=r*cos(t)","y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"];|\\
+\verb|Wireparadata("1","sfbd3d1",fd,5,7,[""]);|
+
+\begin{center}
+\input{Fig/wirepara2}
+\end{center}
+
+\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]", |\\
+\verb| "v=[0,2*pi]","s"]; |\\
+\verb|Wireparadata("1","sfbd3d1",fd,12,12,[""]); |
+
+\begin{center}
+\input{Fig/wirepara3}
+\end{center}
+
+\begin{layer}{150}{0}
+\putnotese{90}{15}{ \input{Fig/wirepara4}}
+\end{layer}
+
+\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]",|\\
+\verb| "v=[0,2*pi]","s"];|\\
+\verb|if(Isangle(),|\\
+\verb| Sf3data("1",fd);|\\
+\verb| ,|\\
+\verb| Startsurf();|\\
+\verb| Sfbdparadata("1",fd);|\\
+\verb| Wireparadata("1","sfbd3d1",fd,12,12,[""]);|\\
+\verb| Crvsfparadata("1","ax3d","sfbd3d1",fd);|\\
+\verb| ret=ExeccmdC("1");|\\
+\verb| forall(1..length(ret),|\\
+\verb| if(indexof(ret_#,"wireh")>0,|\\
+\verb| Changestyle3d([ret_#],["nodisp"]);|\\
+\verb| );|\\
+\verb| );|\\
+\verb|);|
+
+\vspace{\baselineskip}
+\verb|fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",|\\
+\verb| "u=[0,2*pi]","v=[0,2*pi]","s"];|\\
+\verb|Sfbdparadata("1",fd);|\\
+\verb|Wireparadata("1","sfbd3d1",fd,12,12,[""]); |
+
+\begin{center} \input{Fig/wirepara5} \end{center}
+
+\end{cmd}
+%-------------Crvsfparadata-------------------------------
+
+\begin{cmd}{Crvsfparadata}{crvsfparadata}
+\itemket{Usage}Crvsfparadata(name,PD1,PD2,formula)
+\itemket{Description}Remove curves hidden by curved face.
+%\itemket{Details}
+\itemket{Examples} \mbox{}
+
left figure
\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
@@ -4376,64 +4870,65 @@ The same as the return value is displayed as "readoutdata from template3D1.txt:"
\hspace{20mm} \input{Fig/execcmdc1}
-In addition, please refer to the next. \hyperlink{sfbdparadata}{Sfbdparadata()},\hyperlink{wireparadata}{Wireparadata()}
+\end{cmd}
+
+%================== 3D Using Plot data ===============
+\subsection{Using Plot data}
+
+%--------------Datalist2d------------------------------
+
+\begin{cmd}{Datalist2d}{datalist2d}
+
+\itemket{Usage}Datalist2d()
+\itemket{Description} Generic function to get a list of 2D-plotting data on the screen.
+\itemket{Examples} \mbox{}
+
+We execute the following program then the computer will display "PD=[ax2d,AB2d]" on the console.\\
+
+\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
+\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
+\verb| Spaceline("1",[A,B]); |\\
+\verb| println("PD="+Datalist2d());|
\end{cmd}
-%--------------Embed------------------------------
+%--------------Datalist3d------------------------------
-\begin{cmd}{Embed}{embed}
-\itemket{Usage}Embed(name,PDlist,formula,varlist)
-\itemket{Description}Embed plotting data of 2D in plane of 3D.
-\itemket{Details}PDlist is list of plotting data of 2D. Plane of 3D is given by formula and varlist.
+\begin{cmd}{Datalist3d}{datalist3d}
+
+\itemket{Usage}Datalist3d()
+\itemket{Details}Generic function to get a list of 3D-plotting data.
\itemket{Examples} \mbox{}
-Embed an equilateral triangle and its circumscribed circle in a plane in 3D space.
+We execute the following program then the computer will display "PD=[ax3d,AB3d]" on the console.\\
-(1) \verb|vo|, \verb|vx|, \verb|vy| are defined with function {\tt \hyperlink{defvar}{Defvar}} that uses R.\\
-\verb|Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]);|\\
-\verb|Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]);|\\
-\verb|Defvar("vo=[3,3,3]");| // Defined in R\\
-\verb|Defvar("vx=[0,1,0]");| // Defined in R\\
-\verb|Defvar("vy=[0,0,1]");| // Defined in R\\
-\verb|Putpoint3d(["A",[3,3,3]]);|\\
-\verb|Circledata("1",[[0,0],[2,0]],["nodisp"]);|\\
-\verb|Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);|\\
-\verb|Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");|\\
-\verb|Ptsize(3);|\\
-\verb|Drawpoint(A);|
+\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
+\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
+\verb| Spaceline("1",[A,B]); |\\
+\verb| println("PD="+Datalist3d()); |
-Following view is as \verb|TH|=75,\verb|FI|=70.
- \begin{center} \input{Fig/embed01} \end{center}
+\end{cmd}
-(2) A, B, and C are defined instead of vo, vx, vy defined by Defvar. But, in this case, points B and C are not drawn in the plane. So, the figure may be difficult to understand.\\
-\verb|Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]);|\\
-\verb|Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");|\\
-\begin{center}
-\includegraphics[bb=0.00 0.00 477.02 383.02,width=8cm]{Fig/embed03.pdf}
-\end{center}
-To draw the B and C on the embedded figure, code changes as follows.
-\verb|Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]);|\\
-\verb|Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");|\\
+%----------Changestyle3d----------------------------------
-(3) The function {\tt \hyperlink{perpplane}{Perpplane}} is used in next.\\
-\verb|Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");|\\
-\verb|Putpoint3d(["O",[0,0,0],"P",[1,1,2]]);|\\
-\verb|Perpplane("E-F","P",P3d-O3d,"put");|\\
-\verb|vec1=3*(E3d-P3d);|\\
-\verb|vec2=3*(F3d-P3d);|\\
-\verb|Putpoint3d(["A",P3d+vec1+vec2]);|\\
-\verb|Putpoint3d(["B",P3d+vec1-vec2]);|\\
-\verb|Putpoint3d(["C",P3d-vec1-vec2]);|\\
-\verb|Putpoint3d(["D",P3d-vec1+vec2]);|\\
-\verb|Spaceline("1",[A,B,C,D,A]);|\\
-\verb|Circledata("1",[[0,0],[2,0]],["nodisp"]);|\\
-\verb|Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);|\\
-\verb|Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]");|\\
-\verb|Ptsize(3);|\\
-\verb|Drawpoint(P);|\\
-\verb|Skeletonparadata("1");|
- \begin{center} \input{Fig/embed02} \end{center}
+\begin{cmd}{Changestyle3d}{changestyle3d}
+\itemket{Usage} Changestyle3d(PD,option)
+\itemket{Description}Change the attribute of PD.
+\itemket{Details}Change the attribute of PD to one with option specification. PD is a plotting data or a list of plotting data.
+\itemket{Examples} \mbox{}
+
+Make a tetrahedron by four points of space.\\
+\verb|Spaceline("1",[A,B]);|\\
+\verb|Spaceline("2",[A,C]);|\\
+\verb|Spaceline("3",[B,C]);|\\
+\verb|Spaceline("4",[A,D]);|\\
+\verb|Spaceline("5",[B,D]);|\\
+\verb|Spaceline("6",[C,D]);|\\
+then\\
+\verb|Changestyle3d("sl3d1",["dr,3"]);| // one edge become thick.\\
+or\\
+\verb|edges=apply(1..6,"sl3d"+text(#));|\\
+\verb|Changestyle3d(edges,["notex"]);| // all edges become ``notex".\\
\end{cmd}
%------------Intersectcrvsf--------------------------------
@@ -4467,14 +4962,65 @@ To draw the B and C on the embedded figure, code changes as follows.
\begin{cmd}{IntersectsgpL}{intersectsgpL}
\itemket{Usage}IntersectsgpL(name,segment,plane,option)
\itemket{Description}Returns a intersection of a line segment and plane.
-\itemket{Details}Specify a line segment with two endpoints. Specify the plane as three points that it contains. Options are ``put" or ``draw", and if omitted select ``draw".\\
+\itemket{Details}Specify a line segment with two endpoints. Specify the plane as three points that it contains. Options are "put" or "I" or "e" .\\
+
+\hspace{10mm} put : Create geometric points
+
+\hspace{10mm} i : Draw a point if it is within a line segment
+
+\hspace{10mm} e : Draw a point if you meet on the plane
+
+\vspace{\baselineskip}
Following two programs return the same result.\\
\verb| IntersectsgpL("P","A-B","C-D-E"); |\\
\verb| IntersectsgpL("P",[A3d,B3d],[C3d,D3d,E3d]); |
+\vspace{\baselineskip}
+Return value is [pt,flag1,flag2,val1,val2]
+
+pt : The coordinates of the intersection of the straight line and the plane. If the straight line and the plane are parallel and the intersection does not exist, the empty list [].
+
+flag1 : True if the intersection is within the line segment, false otherwise
+
+flag2 : True if intersection is in plane, false otherwise
+
+val1,val2 :Parameter values for line segments, parameter values for planes
+
% \verb|IntersectsgpL("P",[p1,p2],[p3,p4,p5],"draw");|
\itemket{Examples} \mbox{}
+Presence or absence of intersection and return value.
+
+The return value of \verb | flag 1, flag 2 | when changing \verb | p2 | with the following script
+
+\verb| p1=[1,-1,0];|\\
+\verb| p2=[0,0,1/2];|\\
+\verb| p3=[0,1,0];|\\
+\verb| p4=[-1,0,0];|\\
+\verb| p5=[0,0,1];|\\
+\verb| Spaceline("1",[p1,p2]);|\\
+\verb| Spaceline("2",[p3,p4,p5,p3]);|\\
+\verb| ret=IntersectsgpL("P",[p1,p2],[p3,p4,p5],"put");|\\
+\verb| println("flag1="+ret_2+": flag2="+ret_3);|\\
+
+\begin{layer}{150}{0}
+\putnotese{10}{20}{ \input{Fig/wire01}}
+\putnotese{80}{20}{ \input{Fig/wire02}}
+\end{layer}
+
+\verb| p2=[0,0,1/2]; p2=[-1,1,1];|\\
+\verb| flag1=false : flag2=true flag1=true : flag2=true |\\
+
+\vspace{40mm}
+\begin{layer}{150}{0}
+\putnotese{10}{10}{ \input{Fig/wire03}}
+\putnotese{80}{10}{ \input{Fig/wire04}}
+\end{layer}
+\verb| p2=[1,2,1]; p2=[1,0,1/2];|\\
+\verb| flag1=true : flag2=false   flag1=false : flag2=false |\\
+
+\vspace{30mm}
+
cutcube
\verb| Hn=3; |\\
@@ -4505,146 +5051,28 @@ add next script (right figure)
\begin{center} \input{Fig/IntersectsgpL1} \input{Fig/IntersectsgpL2} \end{center}
\end{cmd}
-%-------------Invparapt-------------------------------
-
-\begin{cmd}{Invparapt}{invparapt}
-\itemket{Usage}Invparapt(coordinate,PD)
-\itemket{Description}Returns the point on the curve that is corresponding to the coordinates on the Euclidean view.
-\itemket{Details}Returns the 3D-coordinates of the point on the curve(\verb|PD|) from the \verb|coordinate| on the Euclidean view.
-\itemket{Examples} \mbox{}
-
-Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|tmp_2|, $\dots$) of the spiral curve and the space line. Draw a part of the spiral whose end points (\verb|p1| and \verb|p2|) are selected from the intersection points.\\
-\verb| Spaceline("1",[[-1,-1,-1],[1,2,3]]); |\\
-\verb| Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]);|\\
-\verb| tmp=Intersectcrvs("sl2d1","sc2d1");|\\
-\verb| p1=Invparapt(tmp_1,"sc3d1");|\\
-\verb| p2=Invparapt(tmp_2,"sc3d1");|\\
-\verb| Partcrv3d("1",p1,p2,"sc3d1"); |\\
-\begin{center} \input{Fig/invparapt} \end{center}
-\end{cmd}
-
-%---------Mkbezierptcrv3d-----------------------------------
-\begin{cmd}{Mkbezierptcrv3d}{mkbezierptcrv3d}
-\itemket{Usage}Mkbezierptcrv3d(list)
-\itemket{Description}Draw a cubic B\'ezier curve from nodes.
-\itemket{Details}Arrange the control points automatically.
-After that, move the nodes and the control points and correct the cubic B\'ezier curve to what you want to draw. See the function {\tt \hyperlink{bezier}{Bezier3d}}.
-\itemket{Examples} \mbox{}
-
-\verb|Mkbezierptcrv3d(["A","B","C","D"]);|
-\end{cmd}
-
-%--------------Nohiddenbyfaces------------------------------
-\begin{cmd}{Nohiddenbyfaces}{nohiddenbyfaces}
-
-\itemket{Usage}Nohiddenbyfaces(name,PD1,PD2,option1,option2)
-\itemket{Description}Generic function to draw hidden lines by the surfaces.
-\itemket{Details}PD1 are hidden lines, PD2 are surfaces.\\
-If we omit PD1 then all lines are processing objects.\\
-By default, hidden lines are drawn with dotted lines.\\
-Option1=line type of PD2 and option2=line type of hidden lines.\\
-If we specify only option2 then option1 must be null list:[].\\
-\itemket{Examples} \mbox{}
-
-\begin{verbatim}
-Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
-Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
-Putpoint3d("B",2*[1,-1/sqrt(3),0]);
-Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
-Putpoint3d("D",2*[0,0,2*sqrt(6)/3]);
-phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
-VertexEdgeFace("1",phd);
-Nohiddenbyfaces("1","phf3d1");
-\end{verbatim}
-(left figure)
-
-\verb|Nohiddenbyfaces("1","phe3d1","phf3d1",["dr,2"],["da"]); |
-(right figure)
-
-\begin{center} \input{Fig/nohiddenbyfaces1} \input{Fig/nohiddenbyfaces2} \end{center}
-
-We draw hidden axes with broken line in the following example.\\
-\verb|Nohiddenbyfaces("1","ax3d","phf3d1",[],["da"]);|
-
-\end{cmd}
-%-------------Parapt-------------------------------
-\begin{cmd}{Parapt}{parapt(coordinate)}
-
-\itemket{Usage}Parapt(3D-coordinate)
-\itemket{Description}Generic function to return the 2D-coordinate on the plane of projection for the 3D-point.
-\itemket{Examples} \mbox{}
+%-------------Sfcutparadatacdy-------------------------------
-\verb|println(Parapt([2,1,5]));|
-\end{cmd}
-%--------------Perpplane------------------------------
-\begin{cmd}{Perpplane}{perpplane}
-
-\itemket{Usage}Perpplane(name, point, vector, option)
-\itemket{Description}Generic function to return the two points on the plane which is passing through the point and orthogonal to the vector.
-\itemket{Details}The name is the two points name such as the form "A-B".\\
-Point is the name or the coordinate of the point through which the plane is passing.\\
-The vector is the normal of the plane.\\
-If option is "put" then the function draw two geometric points.
+\begin{cmd}{Sfcutparadatacdy}{sfcutparadatacdy}
+\itemket{Usage}Sfcutparadatacdy(name,string,list,options)
+\itemket{Description}Obtain a line of intersection between a plane and a curved surface.
+\itemket{Details}string is equation of plane, list is equation of a surface.
\itemket{Examples} \mbox{}
+Cross section of cone.
-Return the points A,B on the plane which is passing through the point P and orthogonal to the vector [1,1,1]\\.
-\verb|Perpplane("A-B","P",[1,1,1],"put");|\\
-
-Return the points A,B on the plane which is passing through the point P and orthogonal to the line segment OP. In this situation PA and PB is orthogonal and length of PA and PB are 1.\\.
-\verb|Perpplane("A-B","P",P3d-O3d);|\\
-
-Draw point A,B,C,D by draw tool of Cinderella.
-
-\begin{layer}{120}{0}
-\putnotese{100}{20}{ \input{Fig/perpplane}}
+\vspace{\baselineskip}
+\begin{layer}{150}{0}
+\putnotese{70}{0}{\input{Fig/sfcut}}
\end{layer}
-
-\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\
-\verb| Putpoint3d(["O",[0,0,0]]); |\\
-\verb| Putpoint3d(["P",[1,1,1]]); |\\
-\verb| Perpplane("E-F","P",P3d-O3d,"put"); |\\
-\verb| vec1=2*(E3d-P3d); |\\
-\verb| vec2=2*(F3d-P3d); |\\
-\verb| Putpoint3d(["A",P3d+vec1+vec2]); |\\
-\verb| Putpoint3d(["B",P3d+vec1-vec2]); |\\
-\verb| Putpoint3d(["C",P3d-vec1-vec2]); |\\
-\verb| Putpoint3d(["D",P3d-vec1+vec2]); |\\
-\verb| Spaceline("1",[A,B,C,D,A]); |\\
-\verb| Arrowdata([O,P],["dr,2"]); |\\
-\verb| Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); |\\
-\verb| Skeletonparadata("1"); |\\
-
-\end{cmd}
-%-------------Perppt-------------------------------
-\begin{cmd}{Perppt}{perppt}
-
-\itemket{Usage}Perppt(name, point, list of points, option)
-\itemket{Description}Generic function to get the foot of a perpendicular for the plane from the point.
-\itemket{Details}We specify the plane by the list of points.\\
-Option is the following.\\
-"draw": draw the point, don't make the geometric point(default).\\
-"put" : make the geometric point.\\
-"none": only make the data and don't draw.
-\itemket{Examples} \mbox{}
-
-We get the coordinate of the point H in the variable H3d for the following examples.\\
-\verb|Perppt("H","O","A-B-C","none");|\\
-\verb|Perppt("H","O","A-B-C");|\\
-\verb|Perppt("H","O","A-B-C","put");|\\
-
-Example
-
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\
-\verb|Putpoint3d("O",[0,0,0]); |\\
-\verb|Putpoint3d("A",[3,0,0]); |\\
-\verb|Putpoint3d("B",[0,3,0]); |\\
-\verb|Putpoint3d("C",[0,0,3]); |\\
-\verb|Perppt("H","O","A-B-C","put"); |\\
-\verb|Spaceline("1",[A,B,C,A]); |\\
-\verb|Spaceline("2",[O,H]); |\\
-\verb|Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]); |\\
-
-\begin{center} \input{Fig/perppt} \end{center}
+\verb|fd=[|\\
+\verb| "p",|\\
+\verb| "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",|\\
+\verb| "r=[0,2]","t=[0,2*pi]","e"|\\
+\verb|];|\\
+\verb|Startsurf(); |\\
+\verb|Sfbdparadata("1",fd);|\\
+\verb|Sfcutparadatacdy("1","y+2*z=3",fd);|\\
+\verb|ExeccmdC("1");|\\
\end{cmd}
%--------------Partcrv3d------------------------------
@@ -4669,130 +5097,6 @@ Example
\end{cmd}
-%--------------Phparadata------------------------------
-\begin{cmd}{Phparadata}{phparadata}
-
-\itemket{Usage}Phparadata(name, name2, list of options)
-\itemket{Description}Generic function to draw the polyhedron by performing hidden line processing.
-\itemket{Details}Name2 is the plotting data of polyhedron which we get form the function VertexEdgeFace().
-\itemket{Examples} \mbox{}
-
-\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj");| //Many polyhedron data exist in this directory.\\
-\verb|phd=Readobj("s06.obj",["size=3"]);| //"s06" is the name of truncated icosahedron data.\\
-\verb|Setdirectory(Dirwork);| //Chage work space.\\
-\verb|VertexEdgeFace("s06",phd);|\\
-\verb|Phparadata("1","s06");| //default usage, left figure\\
-
-The last two lines we can write the following.\\
-\verb|VertexEdgeFace("1",phd);|\\
-\verb|Phparadata("1","1");|
-\begin{center}
- \includegraphics[bb=0 0 1452 730 , width=10cm]{Fig/phparadata01.pdf}
-\end{center}
-
-\verb|Phparadata("1","s06",["dr,2","Hidden=do"]);| //right figure
- \begin{center} \input{Fig/phparadata02} \input{Fig/phparadata03} \end{center}
-\end{cmd}
-
-%--------------Phparadata------------------------------
-\begin{cmd}{Pointdata3d}{pointdata3d}
-
-\itemket{Usage}Pointdata3d(name, point list, options)
-\itemket{Description}Generic function to generate data of the point list.
-\itemket{Details}Options are "Size=","Color=".
-\itemket{Examples} \verb|Pointdata3d("1",[[0,1,0],[1,1,2]],["Size=2","Color=red"]);|
-\end{cmd}
-
-%---------------Projcoordpara-----------------------------
-\begin{cmd}{Projcoordpara}{projcoordpara}
-
-\itemket{Usage}Projcoordpara(3D-coordinate)
-\itemket{Description}Generic function to get the projection coordinate on the Euclidean view coordinate system.
-\itemket{Examples} \mbox{}
-
-\verb|println(Projcoordpara([3,1,2]));| //printed value is such as [-0.65, 1.7, 3.27] where the third element means the (signed) distance from the projection plane.
-\end{cmd}
-%-----------------Putaxes3d---------------------------
-\begin{cmd}{Putaxes3d}{putaxes3d}
-
-\itemket{Usage}Putaxes3d([x,y,z])
-\itemket{Description}Generic function to make the geometric points on the coordinate axis.
-\itemket{Details}For the argument [x,y,x] we get the four geometric points X(x,0,0), Y(0,y,0), Z(0,0,z) and O(0,0,0).
-\itemket{Examples} \mbox{}
-
-\verb|Putaxes3d([1,2,3]);|\\
-\verb|Putaxes3d(a);| //this equals to \verb|Putaxes3d([a,a,a]);|
-
-\end{cmd}
-%--------------PutonCurve3d------------------------------
-\begin{cmd}{PutonCurve3d}{putonCurve3d}
-
-\itemket{Usage} PutonCurve3d(name, PD)
-\itemket{Description}Generic function to make the geometric point on the 3D-curve.
-\itemket{Details}This point moves along the curve by mouse dragging.
-\itemket{Examples} \mbox{}
-
-Make reference to \hyperlink{partcrv3d}{Partcrv3d()}
-\end{cmd}
-%----------------Putonseg3d----------------------------
-\begin{cmd}{Putonseg3d}{putonseg3d}
-
-\itemket{Usage}Putonseg3d(name, point1, point2)
-\itemket{Description}Generic function to make the geometric point on the 3D-segment.
-\itemket{Details}We get the middle point between the two points. This point moves along the segment by mouse dragging.
-\itemket{Examples} \mbox{}
-
-\verb|Putonseg3d("C",A,B);| //Put C on the center of A and B.\\
-\verb|Putonseg3d("C",[A,B]);| //same as above
-\end{cmd}
-%---------------Putpoint3d-----------------------------
-\begin{cmd}{Putpoint3d}{putpoint3d}
-
-\itemket{Usage}Putpoint3d(list of 3D-points, option)
-\itemket{Description}Generic function to draw the geometric point in the space.
-\itemket{Details}Option is "free" or "fix"(default).
-\itemket{Examples} \mbox{}
-
-\verb|Putpoint3d(["A",[2,1,3]]);|\\
-\verb|Putpoint3d(["A",[2,1,3]],"free");| \\
-\verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]]);|\\
-
-These points don't output in the \TeX file. To output in the \TeX file use the following \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}
-
-In the 3D-drawings the coordinate of the point name A is A3d.
-
-\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points}
-
-\end{cmd}
-%-------------Readobj-------------------------------
-\begin{cmd}{Readobj}{readobj}
-
-\itemket{Usage}Readobj(filename, option)
-\itemket{Description}Read in the polyhedron data in the folder name \verb|polyhedrons_obj|
-\itemket{Details}\mbox{}
-
-Data of all \verb|Johnson solid| can be downloaded from\\
-\hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\
-Store the folder into the work folder of \ketcindy\ for example, and execute\\
-\verb| Setdirectory(gethome+"/ketcindy/polyhedrons_obj");|\\
-\verb| polydt=Readobj("r02.obj",["size=2"]);|\\
-\verb| Setdirectory(Dirwork);|\\
-Then the data of \verb|r02.obj| are assigned to the variable \verb|polydt|.
-
-Option is ["size=n"] then we get the magnification of n times. If n is negative value then we have the image of vertical inversion.
-\itemket{Examples} \mbox{}
-
-\verb|VertexEdgeFace("1",polydt);| //output data name is phf3d1\\
-\verb|Nohiddenbyfaces("1","phf3d1");|
-
-\begin{center} \input{Fig/readobj} \end{center}
-
-The main polyhedral data is as follows.
-
- \input{Fig/kobayashiE}
-
-\end{cmd}
-
%---------------Reflectdata3d-----------------------------
\begin{cmd}{Reflectdata3d}{reflectdata3d}
@@ -4911,304 +5215,326 @@ Reflection on the plane BDE
\end{cmd}
-%--------------Sf3data------------------------------
-\begin{cmd}{Sf3data}{sf3data}
+%---------------Translatedata3d-----------------------------
+\begin{cmd}{Translatedata3d}{translatedata3d}
-\itemket{Usage}Sf3data(name, list, list of options)
-\itemket{Description}Generic function to draw the wire frame model of the surface.
-\itemket{Details}Second argument is the list of equations and ranges. \\
-Options are the followings.\\
-"Num=[a,b]": x- and y-division number, default(or initial values) are a=b=25.\\
-"Wire=[a,b]": x- and y-wire number, default(or initial values) are a=b=20.\\
-"ewsn": From east to south, this indicates the boundary.
+\itemket{Usage}Translatedata3d(name, PD, vector)
+\itemket{Description}Generic function to translate plotting data.
+%\itemket{Details}
\itemket{Examples} \mbox{}
-\verb|Sf3data("1",["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]);|\\
-\ \ //This is the first expression of the equation for the surface. Second argument is the list of equation, x-range and y-range.
-\begin{center} \input{Fig/saddle1} \end{center}
+The curve sc3d1 is translated by 2 in the y axis direction.
+As a result, two curves parallel to the original curves are drawn.
-\verb|fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]"];|\\
-\verb|Sf3data("1",fd);| //fd is the second argument.\\
-(left figure)\\
+\verb|Translatedata3d("1",["sc3d1"],[0,2,0]);|\\
-\verb|fd=["z=sin(sqrt(abs(x^2+y^2)))","x=r*cos(t)","y=r*sin(t)",|\\
-\verb|"r=[0,3]","t=[0,2*pi]"];|\\
-\verb|Sf3data("1",fd);|\\
-(right figure)
-\begin{center} \input{Fig/parabola} \input{Fig/sf3ddata3} \end{center}
+Since polygons drawn with VertexEdgeFace() can not be translated by this function, parallel movement is performed by directly manipulating the surface data. For example, to draw a regular octahedron using the polyhedron data obj of Kobayashi, Suzuki, and Mitani, do the following. This is the case of parallel movement by 2 in the y axis direction.
-\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)",|\\
-\verb|"u=[0,pi]","v=[0,2*pi]"];| //"p" indicates the 3D-parameter expression.\\
-\verb|Sf3data("1",fd);|
-\begin{center} \input{Fig/sf3ddata4} \end{center}
+\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj"); |\\
+\verb|phd=Readobj("r02.obj",["size=2"]); |\\
+\verb|Setdirectory(Dirwork); |\\
+\verb|dn=length(phd_1); |\\
+\verb|repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]); |\\
+\verb|VertexEdgeFace("1",phd); |\\
+
+\begin{center}
+\input{Fig/translate01}
+\end{center}
\end{cmd}
+%-------------Translatepoint3d-------------------------------
+\begin{cmd}{Translatepoint3d}{translatepoint3d}
-%-------------Sfbdparadata-------------------------------
-\begin{cmd}{Sfbdparadata}{sfbdparadata}
+\itemket{Usage}Translatepoint3d(coordinate,vector)
+\itemket{Description}Return the translated coordinate for the point.
+\itemket{Details}$\text{Translatepoint3d}([a_i],[v_i])=[a_i+v_i]$
+\itemket{Examples} \mbox{}
-\itemket{Usage}Sfbdparadata(name, list, list of options)
-\itemket{Description}Generic function to make the surface by performing hidden line processing.
-\itemket{Details}Second argument is the list of equations and ranges same as the function "Sf3data". \\
-options1=no option or " "(space) or "r" or "m" and "Wait=integer". Default value of Wait is 20.\\
-No option or " "(space) means\\
-(1) If there exist no deta then it make a new data file.\\
-(2) If there exist deta then it read the data file.\\
-"m" means that it remake the new data file.\\
-"r" means that it reread the existing data file.\\
+\verb|Putpoint3d(["A",[1,0,0]]); |\\
+\verb|pt=Translatepoint3d(A3d,[-1,1,1]); |\\
+\verb|Putpoint3d(["B",pt]); |
-option2="nodisp" or line type of hidden line. Default is "nodisp".\\
+\end{cmd}
+% Others ==================================
+\subsection{Others}
+%--------------Perpplane------------------------------
+\begin{cmd}{Perpplane}{perpplane}
-If we specify only option2 then we denote that option1 is empty list:[].
+\itemket{Usage}Perpplane(name, point, vector, option)
+\itemket{Description}Generic function to return the two points on the plane which is passing through the point and orthogonal to the vector.
+\itemket{Details}The name is the two points name such as the form "A-B".\\
+Point is the name or the coordinate of the point through which the plane is passing.\\
+The vector is the normal of the plane.\\
+If option is "put" then the function draw two geometric points.
\itemket{Examples} \mbox{}
-\verb|fd=["x=x^2-y^2","x=[-2,2]","y=[-2,2]"];|\\
-\verb|if(Isangle(),| //selecting the slider point, draw wire frame surfaces.\\
-\verb| Sf3data("1",fd);|\\
-\verb| ,|\\
-\verb| Startsurf();|\\
-\verb| Sfbdparadata("1",fd);|\\
-\verb| ExeccmdC("1",[],["nodisp"]);| //draw the surface\\
-\verb|);|\\
-(left figure)\\
+Return the points A,B on the plane which is passing through the point P and orthogonal to the vector [1,1,1]\\.
+\verb|Perpplane("A-B","P",[1,1,1],"put");|\\
-\verb|ExeccmdC("1",["dr,2"],["do"]);| //the surface with thick line, hidden line with dotted line.\\
-(right figure)
-\begin{center} \input{Fig/sfbdpara01} \input{Fig/sfbdpara02}\end{center}
+Return the points A,B on the plane which is passing through the point P and orthogonal to the line segment OP. In this situation PA and PB is orthogonal and length of PA and PB are 1.\\.
+\verb|Perpplane("A-B","P",P3d-O3d);|\\
+
+Draw point A,B,C,D by draw tool of Cinderella.
-\verb|fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];|\\
-\ \ //"e"=east indicate the boundary line $R=2$, $0 < T < 2\pi$.\\
+\begin{layer}{120}{0}
+\putnotese{100}{20}{ \input{Fig/perpplane}}
+\end{layer}
-\begin{center} \input{Fig/sfbdpara03} \input{Fig/sfbdpara04} \end{center}
+\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\
+\verb| Putpoint3d(["O",[0,0,0]]); |\\
+\verb| Putpoint3d(["P",[1,1,1]]); |\\
+\verb| Perpplane("E-F","P",P3d-O3d,"put"); |\\
+\verb| vec1=2*(E3d-P3d); |\\
+\verb| vec2=2*(F3d-P3d); |\\
+\verb| Putpoint3d(["A",P3d+vec1+vec2]); |\\
+\verb| Putpoint3d(["B",P3d+vec1-vec2]); |\\
+\verb| Putpoint3d(["C",P3d-vec1-vec2]); |\\
+\verb| Putpoint3d(["D",P3d-vec1+vec2]); |\\
+\verb| Spaceline("1",[A,B,C,D,A]); |\\
+\verb| Arrowdata([O,P],["dr,2"]); |\\
+\verb| Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); |\\
+\verb| Skeletonparadata("1"); |\\
\end{cmd}
-%-------------Skeletonparadata-------------------------------
-\begin{cmd}{Skeletonparadata}{skeletonparadata}
+%-------------Perppt-------------------------------
+\begin{cmd}{Perppt}{perppt}
-\itemket{Usage}Skeletonparadata(name, PDlist, PDlist, option)
-\itemket{Description}Generic function to draw the lines by performing hidden line processing.
-\itemket{Details}This function draw the second argument(the list of the lines) by performing hidden line processing which are hidden by the third argument(the list of the lines). If both arguments are omitted the function draw all lines by performing hidden line processing.
+\itemket{Usage}Perppt(name, point, list of points, option)
+\itemket{Description}Generic function to get the foot of a perpendicular for the plane from the point.
+\itemket{Details}We specify the plane by the list of points.\\
+Option is the following.\\
+"draw": draw the point, don't make the geometric point(default).\\
+"put" : make the geometric point.\\
+"none": only make the data and don't draw.
+\itemket{Examples} \mbox{}
-Options:\\
-\hspace*{5mm}\verb|real number| gap of line\\
-\hspace*{5mm}\verb|"No=pointlist"| not executed when any point is selected\\
-\hspace*{5mm}\verb|"File=y/m/n(default:n)"| whether to make data file or not\\
-\hspace*{5mm}\verb|"Check=pointlist"| data file updated if any point is changed
+We get the coordinate of the point H in the variable H3d for the following examples.\\
+\verb|Perppt("H","O","A-B-C","none");|\\
+\verb|Perppt("H","O","A-B-C");|\\
+\verb|Perppt("H","O","A-B-C","put");|\\
-\itemket{Examples} \mbox{}
+Example
-\verb| Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");| //Data name is "ax3d".\\
-\verb| Putpoint3d(["A",[0,-2,-2]]);|\\
-\verb| Putpoint3d(["B",[-1,1,3]]);|\\
-\verb| Spaceline([A,B]);| //Data name is "AB3d".\\
-\verb| Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);| //Data name is "sc3d1".\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\
+\verb|Putpoint3d("O",[0,0,0]); |\\
+\verb|Putpoint3d("A",[3,0,0]); |\\
+\verb|Putpoint3d("B",[0,3,0]); |\\
+\verb|Putpoint3d("C",[0,0,3]); |\\
+\verb|Perppt("H","O","A-B-C","put"); |\\
+\verb|Spaceline("1",[A,B,C,A]); |\\
+\verb|Spaceline("2",[O,H]); |\\
+\verb|Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]); |\\
-\verb|Skeletonparadata("1");| //(left figure)\\
-\verb|Skeletonparadata("1",[2]);| //option\verb|=[2]|: gap of lines\verb|=2| (center figure)\\
-\verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);| //(right figure)
-\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02}
- \input{Fig/skeletonparadata03} \end{center}
+\begin{center} \input{Fig/perppt} \end{center}
\end{cmd}
-%-------------Spacecurve-------------------------------
-\begin{cmd}{Spacecurve}{spacecurve}
+%---------------Projcoordpara-----------------------------
+\begin{cmd}{Projcoordpara}{projcoordpara}
-\itemket{Usage}Spacecurve(name, formula, domain, options)
-\itemket{Description}Generic function to draw the space curve.
+\itemket{Usage}Projcoordpara(3D-coordinate)
+\itemket{Description}Generic function to get the projection coordinate on the Euclidean view coordinate system.
\itemket{Examples} \mbox{}
-\verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);|\\
-option=["Num=100"]: division number of the interval "t=[0,4*pi]"
- \begin{center} \input{Fig/rasen} \end{center}
+
+\verb|println(Projcoordpara([3,1,2]));| //printed value is such as [-0.65, 1.7, 3.27] where the third element means the (signed) distance from the projection plane.
\end{cmd}
-%--------------Spaceline------------------------------
-\begin{cmd}{Spaceline}{spaceline}
+%-------------Readobj-------------------------------
+\begin{cmd}{Readobj}{readobj}
-\itemket{Usage} Spaceline(name, list)
-\itemket{Description}Generic function to draw the space polygonal lines.
-\itemket{Details}Options are line type: "dr" or "da" or "do".
+\itemket{Usage}Readobj(filename, option)
+\itemket{Description}Read in the polyhedron data in the folder name \verb|polyhedrons_obj|
+\itemket{Details}\mbox{}
+
+Data of all \verb|Johnson solid| can be downloaded from\\
+\hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\
+Store the folder into the work folder of \ketcindy\ for example, and execute\\
+\verb| Setdirectory(gethome+"/ketcindy/polyhedrons_obj");|\\
+\verb| polydt=Readobj("r02.obj",["size=2"]);|\\
+\verb| Setdirectory(Dirwork);|\\
+Then the data of \verb|r02.obj| are assigned to the variable \verb|polydt|.
+
+Option is ["size=n"] then we get the magnification of n times. If n is negative value then we have the image of vertical inversion.
\itemket{Examples} \mbox{}
-\verb|Spaceline("1",[[2,5,1],[4,2,3]]);| //draw the line between two points\\
-\verb|Spaceline("2",[A,B,C,A]);| //draw the triangle ABC\\
+\verb|VertexEdgeFace("1",polydt);| //output data name is phf3d1\\
+\verb|Nohiddenbyfaces("1","phf3d1");|
-\begin{layer}{150}{0}
-\putnotese{100}{-5}{ \input{Fig/oresenex01}}
-\end{layer}
+\begin{center} \input{Fig/readobj} \end{center}
-\verb|pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; |\\
-\verb|Spaceline("1",pt); |\\
-\verb|Pointdata3d("1",pt,["Size=3"]);|
+The main polyhedral data is as follows.
+
+ \input{Fig/kobayashiE}
-\vspace{30mm}
\end{cmd}
-%---------------Translatedata3d-----------------------------
-\begin{cmd}{Translatedata3d}{translatedata3d}
+%------------Xyzcoord--------------------------------
+\begin{cmd}{Xyzcoord}{xyzcoord}
-\itemket{Usage}Translatedata3d(name, PD, vector)
-\itemket{Description}Generic function to translate plotting data.
-%\itemket{Details}
+\itemket{Usage}\hspace{10mm} Xyzcoord(P.x, P.y, Pz.y)
+\itemket{Description}Generic function to return the 3D-coordinate of the point P.
+\itemket{Details}(P.x, P.y) is the coordinate of P in the mainarea and Pz.y is the y-coordinate of P in the subarea.
\itemket{Examples} \mbox{}
-The curve sc3d1 is translated by 2 in the y axis direction.
-As a result, two curves parallel to the original curves are drawn.
-
-\verb|Translatedata3d("1",["sc3d1"],[0,2,0]);|\\
-
-Since polygons drawn with VertexEdgeFace() can not be translated by this function, parallel movement is performed by directly manipulating the surface data. For example, to draw a regular octahedron using the polyhedron data obj of Kobayashi, Suzuki, and Mitani, do the following. This is the case of parallel movement by 2 in the y axis direction.
+\verb|println(Xyzcoord(A.x,A.y,Az.y));| //print the 3D-coordinate of point A on the console.
+\end{cmd}
-\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj"); |\\
-\verb|phd=Readobj("r02.obj",["size=2"]); |\\
-\verb|Setdirectory(Dirwork); |\\
-\verb|dn=length(phd_1); |\\
-\verb|repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]); |\\
-\verb|VertexEdgeFace("1",phd); |\\
+%--------------Isangle------------------------------
+\begin{cmd}{Isangle}{isangle}
-\begin{center}
-\input{Fig/translate01}
-\end{center}
+\itemket{Usage}Isangle()
+\itemket{Description}Decide the selection of the angle slider.
+\itemket{Details}Returns ``true" if select slider, and ``false" if not.\\
+In drawing including hidden line processing, reaction is bad when recalculating while moving the viewpoint. With this function, you can write code that does not recalculate while moving the viewpoint.
-\end{cmd}
-%-------------Translatepoint3d-------------------------------
-\begin{cmd}{Translatepoint3d}{translatepoint3d}
+\itemket{Examples} \mbox{}
-\itemket{Usage}Translatepoint3d(coordinate,vector)
-\itemket{Description}Return the translated coordinate for the point.
-\itemket{Details}$\text{Translatepoint3d}([a_i],[v_i])=[a_i+v_i]$
-\itemket{Examples} \mbox{}
+\verb| fd=[ |\\
+\verb| "z=4-(x^2+y^2)",|\\
+\verb| "x=R*cos(T)","y=R*sin(T)",|\\
+\verb| "R=[0,2]","T=[0,2*pi]","e" \verb| ];|\\
+\verb| if(Isangle(),|\\
+\verb| Sf3data("1",fd);|\\
+\verb| ,|\\
+\verb| Startsurf();|\\
+\verb| Sfbdparadata("1",fd);|\\
+\verb| Crvsfparadata("1","ax3d","sfbd3d1",fd);|\\
+\verb| ExeccmdC("1");|\\
+\verb| );|
-\verb|Putpoint3d(["A",[1,0,0]]); |\\
-\verb|pt=Translatepoint3d(A3d,[-1,1,1]); |\\
-\verb|Putpoint3d(["B",pt]); |
\end{cmd}
-%-------------Vertexedgeface-------------------------------
-\begin{cmd}{Vertexedgeface}{vertexedgeface}
+%--------------Dist3d------------------------------
-\itemket{Usage} VertexEdgeFace(name, list, options)
-\itemket{Description}Generic function to draw the polyhedron.
-\itemket{Details}We use the faces data of the polyhedron.\\
-The second argument is the list of vertexes list and the faces list.\\
-For example, the faces data of the tetrahedron is [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]].\\
-%Option is the following.\\
+\begin{cmd}{Dist3d}{dist3d}
+\itemket{Usage}Dist3d(a1,a2)
+\itemket{Description}Generic function to get the 3D-distance of two points.
\itemket{Examples} \mbox{}
-\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]); |\\
-\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]); |\\
-\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); |\\
-\verb| Putpoint3d("D",2*[0,0,sqrt(3)]); |\\
-\verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]); |\\
-\verb| VertexEdgeFace("1",phd); |\\
- //Three data lists are made, phv3d1:vertex, phe3d1:edge and phf3d1:face.
- \begin{center} \input{Fig/vertex01} \end{center}
-\end{cmd}
-%-------------Wireparadata-------------------------------
-\begin{cmd}{Wireparadata}{wireparadata}
+Following three programs return the same result.\\
-\itemket{Usage} Wireparadata(name, PD, formula, integer, integer, options)
-\itemket{Description}Generic function to draw the surface by wire frame data with performing hidden line processing.
-\itemket{Details}The second argument PD is the surface data made by Sfbdparadata function.\\
-options=no option or " "(space) or "r" or "m" and "Wait=integer". Default value of Wait is 30.\\
-No option or " "(space) means\\
-(1) If there exist no deta then it make a new data file.\\
-(2) If there exist deta then it read the data file.\\
-"m" means that it remake the new data file.\\
-"r" means that it reread the existing data file.\\
+\verb| Dist3d("A","B"); |\\
+\verb| Dist3d(A,B); |\\
+\verb| Dist3d(A3d,B3d); |
-\itemket{Examples} \mbox{}
+\end{cmd}
+%--------------Embed------------------------------
-\verb|fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]; |\\
-\verb|if(Isangle(), |\\
-\verb| Sf3data("1",fd); |\\
-\verb| , |\\
-\verb| Startsurf(); |\\
-\verb| Sfbdparadata("1",fd); | //We get the data named as "sfbd3d1".\\
-\verb| Wireparadata("1","sfbd3d1",fd,4,5,[""]); | //number of wires are 4 and 5.\\
-\verb| ExeccmdC("1"); | //draw the wires\\
-\verb|); |
+\begin{cmd}{Embed}{embed}
+\itemket{Usage}Embed(name,PDlist,formula,varlist)
+\itemket{Description}Embed plotting data of 2D in plane of 3D.
+\itemket{Details}PDlist is list of plotting data of 2D. Plane of 3D is given by formula and varlist.
+\itemket{Examples} \mbox{}
-\begin{center}
-\input{Fig/wirepara1}
-\end{center}
+Embed an equilateral triangle and its circumscribed circle in a plane in 3D space.
-Change the following code.
+(1) \verb|vo|, \verb|vx|, \verb|vy| are defined with function {\tt \hyperlink{defvar}{Defvar}} that uses R.\\
+\verb|Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]);|\\
+\verb|Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]);|\\
+\verb|Defvar("vo=[3,3,3]");| // Defined in R\\
+\verb|Defvar("vx=[0,1,0]");| // Defined in R\\
+\verb|Defvar("vy=[0,0,1]");| // Defined in R\\
+\verb|Putpoint3d(["A",[3,3,3]]);|\\
+\verb|Circledata("1",[[0,0],[2,0]],["nodisp"]);|\\
+\verb|Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);|\\
+\verb|Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");|\\
+\verb|Ptsize(3);|\\
+\verb|Drawpoint(A);|
-\verb|fd=["z=4-(x^2+y^2)","x=r*cos(t)","y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"];|\\
-\verb|Wireparadata("1","sfbd3d1",fd,5,7,[""]);|
+Following view is as \verb|TH|=75,\verb|FI|=70.
+ \begin{center} \input{Fig/embed01} \end{center}
+(2) A, B, and C are defined instead of vo, vx, vy defined by Defvar. But, in this case, points B and C are not drawn in the plane. So, the figure may be difficult to understand.\\
+\verb|Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]);|\\
+\verb|Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");|\\
\begin{center}
-\input{Fig/wirepara2}
+\includegraphics[bb=0.00 0.00 477.02 383.02,width=8cm]{Fig/embed03.pdf}
\end{center}
+To draw the B and C on the embedded figure, code changes as follows.
-\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]", |\\
-\verb| "v=[0,2*pi]","s"]; |\\
-\verb|Wireparadata("1","sfbd3d1",fd,12,12,[""]); |
-
-\begin{center}
-\input{Fig/wirepara3}
-\end{center}
+\verb|Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]);|\\
+\verb|Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");|\\
-\begin{layer}{150}{0}
-\putnotese{90}{15}{ \input{Fig/wirepara4}}
-\end{layer}
+(3) The function {\tt \hyperlink{perpplane}{Perpplane}} is used in next.\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");|\\
+\verb|Putpoint3d(["O",[0,0,0],"P",[1,1,2]]);|\\
+\verb|Perpplane("E-F","P",P3d-O3d,"put");|\\
+\verb|vec1=3*(E3d-P3d);|\\
+\verb|vec2=3*(F3d-P3d);|\\
+\verb|Putpoint3d(["A",P3d+vec1+vec2]);|\\
+\verb|Putpoint3d(["B",P3d+vec1-vec2]);|\\
+\verb|Putpoint3d(["C",P3d-vec1-vec2]);|\\
+\verb|Putpoint3d(["D",P3d-vec1+vec2]);|\\
+\verb|Spaceline("1",[A,B,C,D,A]);|\\
+\verb|Circledata("1",[[0,0],[2,0]],["nodisp"]);|\\
+\verb|Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);|\\
+\verb|Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]");|\\
+\verb|Ptsize(3);|\\
+\verb|Drawpoint(P);|\\
+\verb|Skeletonparadata("1");|
+ \begin{center} \input{Fig/embed02} \end{center}
+\end{cmd}
-\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]",|\\
-\verb| "v=[0,2*pi]","s"];|\\
-\verb|if(Isangle(),|\\
-\verb| Sf3data("1",fd);|\\
-\verb| ,|\\
-\verb| Startsurf();|\\
-\verb| Sfbdparadata("1",fd);|\\
-\verb| Wireparadata("1","sfbd3d1",fd,12,12,[""]);|\\
-\verb| Crvsfparadata("1","ax3d","sfbd3d1",fd);|\\
-\verb| ret=ExeccmdC("1");|\\
-\verb| forall(1..length(ret),|\\
-\verb| if(indexof(ret_#,"wireh")>0,|\\
-\verb| Changestyle3d([ret_#],["nodisp"]);|\\
-\verb| );|\\
-\verb| );|\\
-\verb|);|
-\vspace{\baselineskip}
-\verb|fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",|\\
-\verb| "u=[0,2*pi]","v=[0,2*pi]","s"];|\\
-\verb|Sfbdparadata("1",fd);|\\
-\verb|Wireparadata("1","sfbd3d1",fd,12,12,[""]); |
+%-------------Parapt-------------------------------
+\begin{cmd}{Parapt}{parapt(coordinate)}
-\begin{center} \input{Fig/wirepara5} \end{center}
+\itemket{Usage}Parapt(3D-coordinate)
+\itemket{Description}Generic function to return the 2D-coordinate on the plane of projection for the 3D-point.
+\itemket{Examples} \mbox{}
+\verb|println(Parapt([2,1,5]));|
\end{cmd}
-%-------------Xyzax3data-------------------------------
-\begin{cmd}{Xyzax3data}{xyzax3data}
+%-------------Invparapt-------------------------------
-\itemket{Usage} Xyzax3data(name, range of x, range of y, range of z, options)
-\itemket{Description}Generic function to draw the coordinate axis.
-\itemket{Details}Name can be null string.\\
-Options are the followings.\\
-"an": arrowhead, n is size.\\
-"Onesw": origin and its position.
+\begin{cmd}{Invparapt}{invparapt}
+\itemket{Usage}Invparapt(coordinate,PD)
+\itemket{Description}Returns the point on the curve that is corresponding to the coordinates on the Euclidean view.
+\itemket{Details}Returns the 3D-coordinates of the point on the curve(\verb|PD|) from the \verb|coordinate| on the Euclidean view.
\itemket{Examples} \mbox{}
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");|\\
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");| //arrowhead\\
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);| //big arrowhead\\
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);|\\
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a","Oe2n2"]);| //set origin upper right
+Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|tmp_2|, $\dots$) of the spiral curve and the space line. Draw a part of the spiral whose end points (\verb|p1| and \verb|p2|) are selected from the intersection points.\\
+\verb| Spaceline("1",[[-1,-1,-1],[1,2,3]]); |\\
+\verb| Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]);|\\
+\verb| tmp=Intersectcrvs("sl2d1","sc2d1");|\\
+\verb| p1=Invparapt(tmp_1,"sc3d1");|\\
+\verb| p2=Invparapt(tmp_2,"sc3d1");|\\
+\verb| Partcrv3d("1",p1,p2,"sc3d1"); |\\
+\begin{center} \input{Fig/invparapt} \end{center}
+\end{cmd}
+%-----------Expr3d---------------------------------
+\begin{cmd}{Expr3D}{expr3d}
+\itemket{Usage}Expr([position, direction, string],options)
+\itemket{Description}Display the string.
+\itemket{Details} The position is the space coordinate. Other than that it is the same as Expr().
\end{cmd}
-%------------Xyzcoord--------------------------------
-\begin{cmd}{Xyzcoord}{xyzcoord}
-\itemket{Usage}\hspace{10mm} Xyzcoord(P.x, P.y, Pz.y)
-\itemket{Description}Generic function to return the 3D-coordinate of the point P.
-\itemket{Details}(P.x, P.y) is the coordinate of P in the mainarea and Pz.y is the y-coordinate of P in the subarea.
+%-----------Letter3d---------------------------------
+\begin{cmd}{Letter3D}{letter3d}
+\itemket{Usage}Letter([position, direction, string],options)
+\itemket{Description}Display the string.
+\itemket{Details} The position is the space coordinate. Other than that it is the same as Letter().
\itemket{Examples} \mbox{}
-\verb|println(Xyzcoord(A.x,A.y,Az.y));| //print the 3D-coordinate of point A on the console.
-\end{cmd}
+\begin{layer}{150}{0}
+\putnotese{110}{10}{ \input{Fig/letter3d}}
+\end{layer}
+
+\verb|Putpoint3d("A",2*[0,0,2*sqrt(6)/3]);|\\
+\verb|Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\
+\verb|Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\
+\verb|Putpoint3d("D",2*[-1,-1/sqrt(3),0]);|\\
+\verb|Putpoint3d("M",(B3d+C3d)/2);|\\
+\verb|phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\
+\verb|VertexEdgeFace("1",phd);|\\
+\verb|Spaceline("1",[A,M,D]);|\\
+\verb|Nohiddenbyfaces("1","phf3d1");|\\
+\verb|Letter3d([A3d,"ne","A",B3d,"w","B",C3d,"se","C",D3d,"e","D"]);|\\
+\verb|Letter3d(M3d,"sw","M",["Color=blue"]);|\\
+
+\end{cmd}
\newpage
%-==Appendix ========================
@@ -5259,6 +5585,7 @@ Options are the followings.\\
\hyperlink{fontsize}{Fontsize} \> define the font size in the \TeX\ figure.\\
\hyperlink{ketinit}{Ketinit} \> initialize \ketcindy.\\
\hyperlink{ptsize}{Ptsize} \> set the size of points.\\
+\hyperlink{setarrow}{Setarrow} \> set the style of arrow.\\
\hyperlink{setax}{Setax} \> set the style of axis.\\
\hyperlink{setcolor}{Setcolor} \> set the color of figures and characters in the \TeX\ figure.\\
\hyperlink{setfiles}{Setfiles} \> set the name of texfile.\\
@@ -5289,7 +5616,7 @@ Options are the followings.\\
\hyperlink{deqplot}{Deqplot} \> draw the solution curve of a differential equation.\\
\hyperlink{dotfilldata}{Dotfilldata} \> fill a domain with dots.\\
\hyperlink{drwpt}{Drawppoint} \> draw a point. \\
-\hyperlink{drwpt}{Drwpt} \> draw a point. \\
+%\hyperlink{drwpt}{Drwpt} \> draw a point. \\
\hyperlink{drawsegmark}{Drawsegmark} \> Add a mark to a segment. \\
\hyperlink{ellipseplot}{Ellipseplot} \> draw ellipse.\\
\hyperlink{enclosing}{Enclosing} \> make a closed curve form the list of plotting data.\\
@@ -5327,8 +5654,6 @@ Options are the followings.\\
\hyperlink{putonline}{PutonLine} \> put a point on the line.\\
\hyperlink{putonSeg}{Putonseg} \> put a point on the segment.\\
\hyperlink{putpoint}{Putpoint} \> put a point.\\
-\hyperlink{readcsv}{Readcsv} \> read a file in csv format.\\
-\hyperlink{readlines}{Readlines} \> read a text file line by line.\\
\hyperlink{reflectdata}{Reflectdata} \> draw a reflective curve.\\
\hyperlink{reflectpoint}{Reflectpoint} \> return the reflect point.\\
\hyperlink{rotatedata}{Rotatedata} \> rotate plotting data.\\
@@ -5362,6 +5687,8 @@ Options are the followings.\\
\hyperlink{pointoncurve}{Pointoncurve} \> point which has the parameter value\\
\hyperlink{ptstart, ptend}{Ptstart, Ptend} \> returns start point and end point of PD.\\
\hyperlink{ptcrv}{Ptcrv} \> Returns n-th point from PD.\\
+\hyperlink{readcsv}{Readcsv} \> read a file in csv format.\\
+\hyperlink{readlines}{Readlines} \> read a text file line by line.\\
\hyperlink{readoutdata}{ReadOutData} \> read external data.\\
\hyperlink{sqr}{Sqr} \> return square root.\\
\hyperlink{writeoutdata}{WriteOutData} \> write out data in \ketcindy\ format.\\
@@ -5452,16 +5779,17 @@ Options are the followings.\\
\hyperlink{drawpoint3d}{Drawpoint3d} \> draw 3D-points.\\
\hyperlink{embed}{Embed} \> embed plotting data of 2D in plane of 3D.\\
\hyperlink{execcmdc}{ExeccmdC} \> draw 3D-surface.\\
+\hyperlink{expr3d}{Expr3d} \> display the string.\\
\hyperlink{intersectcrvsf}{Intersectcrvsf} \> return a list of intersects of a curve and curved face.\\
\hyperlink{intersectsgpL}{IntersectsgpL} \>return a intersection of a line segment and plane.\\
\hyperlink{invparapt}{Invparapt} \> return the point on the curve.\\
\hyperlink{ketinit3d}{Ketinit3d} \> declare the use of KeTCindy3D\\
+\hyperlink{letter3d}{Letter3d} \> display the string.\\
\hyperlink{mkbezierptcrv3d}{Mkbezierptcrv3d} \> draw a cubic Bezier curve from nodes.\\
\hyperlink{nohiddenbyfaces}{Nohiddenbyfaces} \> draw hidden lines by the surfaces.\\
\hyperlink{parapt}{Parapt} \> return the 2D-coodinate on the plane.\\
\hyperlink{partcrv3d}{Partcrv3d} \> draw the part curve of the curve PD.\\
-\hyperlink{perpplane}{Perpplane} \> return the two points which is passing through the point and\\
-\>orthogonal to the vector.\\
+\hyperlink{perpplane}{Perpplane} \> create a basic vector on a vertical plane\\
\hyperlink{perppt}{Perppt} \> get the foot of a perpendicular for the plane from the point.\\
\hyperlink{phparadata}{Phparadata} \> draw the polyhedron by performing hidden line processing.\\
\hyperlink{pointdata3d}{Pointdata3d} \> generate data of point list.\\
@@ -5479,6 +5807,7 @@ Options are the followings.\\
\hyperlink{scalepoint3d}{Scalepoint3d} \> execute scale transformation for the coordinate of the point.\\
\hyperlink{sf3data}{Sf3data} \> draw the wire frame model of the surface.\\
\hyperlink{sfbdparadata}{Sfbdparadata} \> draw the surface by performing hidden line processing.\\
+\hyperlink{sfcutparadatacdy}{Sfcutparadatacdy} \> Display intersection line of surface and surface.\\
\hyperlink{skeletonparadata}{Skeletonparadata} \> draw the lines by performing hidden line processing.\\
\hyperlink{spacecurve}{Spacecurve} \> draw the space curve.\\
\hyperlink{spaceline}{Spaceline} \> draw the space polygonal lines.\\
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
index 933210c7afe..815762ae62c 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
@@ -51,8 +51,6 @@
\vspace{\baselineskip}
æ画領域(TeXã«å‡ºåŠ›ã™ã‚‹é ˜åŸŸ)ã¯åˆ¶å¾¡ç‚¹SW(左下)ã¨NE(å³ä¸Šï¼‰ã‚’対角ã¨ã™ã‚‹çŸ©å½¢é ˜åŸŸã€‚æ画領域を指定ã™ã‚‹ã¨ï¼Œåˆ¶å¾¡ç‚¹ãŒãªã‘ã‚Œã°ãã®ä½ç½®ã«ä½œã‚Šï¼Œã™ã§ã«å­˜åœ¨ã™ã‚‹å ´åˆã¯ä½•ã‚‚ã—ãªã„。作æˆã•ã‚ŒãŸåˆ¶å¾¡ç‚¹ã¯ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦æ画領域を変更ã™ã‚‹ã“ã¨ãŒã§ãる。å€çŽ‡ã¯ï¼ŒSetscaling(å€çŽ‡)を実行ã™ã‚‹ã®ã¨åŒã˜ã€‚ãŸã ã—,Cinderellaã§ä½œå›³ã—ãŸå¹¾ä½•è¦ç´ ã«å¯¾ã—ã¦ã¯ç„¡åŠ¹ã€‚(\hyperlink{setscaling}{Setscaling()}ã®é …å‚ç…§)
-%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
\vspace{\baselineskip}
\hypertarget{setfiles}{}
\item[関数] Setfiles(filename)
@@ -176,25 +174,15 @@ Parent ボタンã§å‡ºåŠ›ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«å㯠åˆæœŸè¨­å®šãŒãªã„ã®ã§ï¼Œ
7. 原点åã®ä½ç½® åˆæœŸè¨­å®šã¯ \verb|"sw"|
-<<<<<<< HEAD
8. 線種
-9. 色
+9. ç·šã®è‰²
-10. 文字ã®è‰²
+10. ラベルã®è‰²
ãã‚Œãžã‚Œãƒ€ãƒ–ルクウォートã§ããる。色ã¯ï¼Œè‰²åãŒä½¿ãˆã‚‹ã€‚"red" ãªã©ã€‚
10ã®å¼•æ•°ã®ã†ã¡n番目ã ã‘を指定ã™ã‚‹å ´åˆã¯ï¼Œ[n,"内容"]ã§æŒ‡å®šã§ãる。
-=======
-8. 線スタイル
-
-9. ç·šã®è‰²
->>>>>>> 8640fc8c8ce40892b14715d7a28d85d1079ee61b
-
-10.ラベルã®è‰²
-
-n番目以é™ã‚’指定ã™ã‚‹å ´åˆã¯ï¼Œ[n,"内容"]ã§æŒ‡å®šã§ãる。
ã¾ãŸï¼Œå¾Œæ–¹ã¯çœç•¥ã§ãる。
@@ -232,13 +220,13 @@ options ã¯æ¬¡ã®ãƒªã‚¹ãƒˆã§ã‚る。\\
\begin{verbatim}
Setax([7,"se"]);
Setpt(5);
- Drwpt([-pi,0],0);
+ Pointdata("1",[[-pi,0]],["Inside=0"]);
Drwxy();
Plotdata("1","sin(x)","x",["dr","Num=200"]);
- Drwpt([pi,0],0);
+ Pointdata("2",[[pi,0]],["Inside=0"]);
\end{verbatim}
- ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼ŒDrwpt([-pi,0],0); を実行ã—ãŸã®ã¡åº§æ¨™è»¸ã‚’æã,次ã«ï¼Œ$y=\sin x$ ã®ã‚°ãƒ©ãƒ•ã‚’æã„ã¦ã‹ã‚‰ Drwpt([pi,0],0);を実行ã™ã‚‹ã®ã§ï¼Œç‚¹($-\pi$,0) ã®ä¸Šã‚’座標軸ãŒé€šã‚Šï¼Œç‚¹($\pi$,0)ã¯åº§æ¨™è»¸ã¨ã‚°ãƒ©ãƒ•ã®ä¸Šã‚’通るã®ã§ç™½æŠœãã«ãªã‚‹ã€‚\\
+ ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ï¼Œ\verb| Pointdata("1",[[-pi,0]],["Inside=0"]);| を実行ã—ãŸã®ã¡åº§æ¨™è»¸ã‚’æã,次ã«ï¼Œ$y=\sin x$ ã®ã‚°ãƒ©ãƒ•ã‚’æã„ã¦ã‹ã‚‰ï¼Œå†ã³ \verb| ["Inside=0"]);|ã«ã—ã¦å®Ÿè¡Œã™ã‚‹ã®ã§ï¼Œç‚¹($-\pi$,0) ã®ä¸Šã‚’座標軸ãŒé€šã‚Šï¼Œç‚¹($\pi$,0)ã¯åº§æ¨™è»¸ã¨ã‚°ãƒ©ãƒ•ã®ä¸Šã‚’通るã®ã§ç™½æŠœãã«ãªã‚‹ã€‚\\
\begin{center} \input{Fig/drwxy}\end{center}
@@ -354,8 +342,7 @@ Plotdata("1","f(x)","x");
ã€ä¾‹ã€‘作図ツールã®ã€Œç‚¹ã‚’加ãˆã‚‹ã€ã§ï¼ŒA〜Gã®ç‚¹ã‚’ã¨ã£ã¦ãŠã。å°ã•ã„æ–¹ã‹ã‚‰ã„ãã¤ã‹è¡¨ç¤ºã™ã‚‹ã€‚
\begin{verbatim}
- Ptsize(2);
- Drawpoint([A,B,C,D,E,F,G]);
+ Pointdata("1",[A,B,C,D,E,F,G],["Size=2"]);
Fontsize("t"); Letter([A,"s2","A"]);
Fontsize("ss"); Letter([B,"s2","B"]);
Fontsize("s"); Letter([C,"s2","C"]);
@@ -420,13 +407,12 @@ Plotdata("1","f(x)","x");
\begin{verbatim}
Setorigin([3,2]);
Listplot([A,B,C,A]);
- Ptsize(3);
- Drawpoint([1,1]);
+ Pointdata("1",[1,1],["Size=3"]);
Letter([[1,1],"s2","P"]);
\end{verbatim}
å·¦ãŒå®Ÿè¡Œæ™‚ã®Cinderellaã®ç”»é¢ï¼Œå³ãŒ\TeX ã®çµæžœã€‚\\
-\hspace{10mm} \includegraphics[bb=0 0 227 205 , width=4cm]{Fig/setorigin.pdf} \input{Fig/setorigin}
+\hspace{10mm} \includegraphics[bb=0 0 299.02 250.01, width=4cm]{Fig/setorigin.pdf} \input{Fig/setorigin}
\vspace{\baselineskip}
\hypertarget{setpen}{}
@@ -511,7 +497,7 @@ Plotdata("1","f(x)","x");
ã§ã‚る。
-nameã¯ï¼Œãƒ—ロットデータã®å称ã§ï¼Œé–¢æ•°ã”ã¨ã«æ±ºã‚られãŸé ­éƒ¨ã®ã‚ã¨ã«ä»˜ã‘られる。ãŸã¨ãˆã°ï¼Œç·šåˆ†ã‚’æã Listplot() ã§ã§ãるプロットデータã¯ï¼Œé ­éƒ¨ãŒ"sg"ã§ã‚り,nameã‚’"1"ã¨ã™ã‚Œã°ï¼Œ"sg1" ã¨ã„ã†å称ã®ãƒ—ロットデータãŒã§ãる。name指定ã¯ä¸è¦ã®å ´åˆã‚‚ã‚り,ãã®å ´åˆã¯ \ketcindy ãŒè‡ªå‹•çš„ã«å称を作æˆã™ã‚‹ã€‚
+nameã¯ï¼Œãƒ—ロットデータã®å称ã§ï¼Œé–¢æ•°ã”ã¨ã«æ±ºã‚られãŸé ­éƒ¨ã®ã‚ã¨ã«ä»˜ã‘られる。ãŸã¨ãˆã°ï¼Œç·šåˆ†ã‚’æã Listplot() ã§ã§ãるプロットデータã¯ï¼Œé ­éƒ¨ãŒ"sg"ã§ã‚り,nameã‚’"1"ã¨ã™ã‚Œã°ï¼Œ"sg1" ã¨ã„ã†å称ã®ãƒ—ロットデータãŒã§ãる。name指定ã¯ä¸è¦ã®å ´åˆã‚‚ã‚り,ãã®å ´åˆã¯ \ketcindy ãŒè‡ªå‹•çš„ã«å称を作æˆã™ã‚‹ã€‚ãªãŠï¼Œname ã«æ¼”算記å·ã¯ä½¿ãˆãªã„ã®ã§ï¼Œç•ªå·ã¨ã—ã¦è² ã®æ•°ã¯ä½¿ãˆãªã„。
点リストãªã©ã«ã¯ï¼Œç‚¹ã®åº§æ¨™ï¼Œç‚¹ã®è­˜åˆ¥å,複数ã®ç‚¹ã®ãƒªã‚¹ãƒˆï¼Œè¤‡æ•°ã®ç‚¹ã‚’示ã™æ–‡å­—列ãªã©ãŒã‚り,関数ã«ã‚ˆã£ã¦ç•°ãªã‚‹ã€‚点ã¯Cinderellaã§ä½œå›³ã—ãŸå¹¾ä½•è¦ç´ ã®ç‚¹ã‚’利用ã§ãる。
@@ -562,7 +548,17 @@ optionsã¯ï¼Œç·šç¨®ãƒ»è¡¨ç¤ºã™ã‚‹æ–‡å­—列・解åƒåº¦ãƒ»å‡ºåŠ›ã®æœ‰ç„¡ãªã©ã
\hypertarget{pointdata}{}
\item[関数] Pointdata(name , 点リスト , options)
\item[機能] 点ã®ãƒ‡ãƒ¼ã‚¿ã‚’作æˆã™ã‚‹ã€‚
-\item[説明] 与ãˆã‚‰ã‚ŒãŸåº§æ¨™ã®ç‚¹ãƒ‡ãƒ¼ã‚¿ã‚’作æˆã™ã‚‹ã€‚オプションã¯"Size=","Color="。
+\item[説明] 与ãˆã‚‰ã‚ŒãŸåº§æ¨™ã®ç‚¹ãƒ‡ãƒ¼ã‚¿ã‚’作æˆã™ã‚‹ã€‚オプションã¯"Size=","Color=","Inside"。
+
+Inside オプションã¯ï¼Œç‚¹ã®å†…部ã«ã¤ã„ã¦ã®æŒ‡å®šã€‚ãŸã ã—,Cinderellaã®æç”»é¢ã«ã¯å映ã•ã‚Œãªã„。
+
+0 : 白抜ã
+
+0ã‹ã‚‰ï¼‘ã¾ã§ : 濃度
+
+-1 : 塗らãªã„
+
+カラーコードã¾ãŸã¯è‰²å : ãã®è‰²ã§å¡—ã‚‹
\vspace{\baselineskip}
ã€ä¾‹ã€‘
@@ -585,7 +581,7 @@ optionsã¯ï¼Œç·šç¨®ãƒ»è¡¨ç¤ºã™ã‚‹æ–‡å­—列・解åƒåº¦ãƒ»å‡ºåŠ›ã®æœ‰ç„¡ãªã©ã
(4) 点データを作り,TeXã«ã‚ªãƒ—ション0(白抜ã)ã§æã
-\hspace{10mm} \verb|Pointdata("1",[A,B],[0]);|
+\hspace{10mm} \verb|Pointdata("1",[A,B],["Inside=0"]);|
(5) 点データを作るãŒï¼ŒTeXã«ã¯å‡ºåŠ›ã—ãªã„
@@ -610,50 +606,47 @@ optionsã¯ï¼Œç·šç¨®ãƒ»è¡¨ç¤ºã™ã‚‹æ–‡å­—列・解åƒåº¦ãƒ»å‡ºåŠ›ã®æœ‰ç„¡ãªã©ã
%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\vspace{\baselineskip}
-\hypertarget{drwpt}{}
-\item[関数] Drwpt(点,option), Drawpoint(点,options)
-\item[機能] 点を表示ã™ã‚‹
-\item[説明] 座標ã¾ãŸã¯å¹¾ä½•ç‚¹ã®è­˜åˆ¥åを与ãˆã¦ç‚¹ã‚’表示ã™ã‚‹ã€‚ã“ã‚Œã ã‘ã§ã¯Cinderellaã®æç”»é¢ã«ã¯æã‹ã‚Œãªã„ã®ã§ï¼Œæç”»é¢ã«ã‚‚表示ã™ã‚‹ã«ã¯Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã™ã‚‹ã‹ï¼ŒPointdata() ã¾ãŸã¯ Putpoint() を用ã„る。
-
-複数ã®ç‚¹ã®å ´åˆã¯åº§æ¨™ã¾ãŸã¯è­˜åˆ¥åã¯ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚
+%\vspace{\baselineskip}
+%\hypertarget{drwpt}{}
+%\item[関数] Drwpt(点,option), Drawpoint(点,options)
+%\item[機能] 点を表示ã™ã‚‹
+%\item[説明] 座標ã¾ãŸã¯å¹¾ä½•ç‚¹ã®è­˜åˆ¥åを与ãˆã¦ç‚¹ã‚’表示ã™ã‚‹ã€‚ã“ã‚Œã ã‘ã§ã¯Cinderellaã®æç”»é¢ã«ã¯æã‹ã‚Œãªã„ã®ã§ï¼Œæç”»é¢ã«ã‚‚表示ã™ã‚‹ã«ã¯Cinderellaã®ä½œå›³ãƒ„ールã§ä½œå›³ã™ã‚‹ã‹ï¼ŒPointdata() ã¾ãŸã¯ Putpoint() を用ã„る。
-optionã«æ•°å­— 0 を入れるã¨ï¼Œç™½æŠœãã§è¡¨ç¤ºã™ã‚‹ã€‚ãªãŠç™½æŠœãã®å ´åˆã¯ï¼ŒPtsize()ã§ç‚¹ã®å¤§ãã•ã‚’å°‘ã—大ãã‚ã«ã¨ã‚‹ã¨ã‚ˆã„。
+%複数ã®ç‚¹ã®å ´åˆã¯åº§æ¨™ã¾ãŸã¯è­˜åˆ¥åã¯ãƒªã‚¹ãƒˆã§ä¸Žãˆã‚‹ã€‚
-å¯èª­æ€§ã‚’高ã‚ã‚‹ã¨ãã¯Drawpointを推奨ã™ã‚‹ã€‚
+%optionã«æ•°å­— 0 を入れるã¨ï¼Œç™½æŠœãã§è¡¨ç¤ºã™ã‚‹ã€‚ãªãŠç™½æŠœãã®å ´åˆã¯ï¼ŒPtsize()ã§ç‚¹ã®å¤§ãã•ã‚’å°‘ã—大ãã‚ã«ã¨ã‚‹ã¨ã‚ˆã„。
-\vspace{\baselineskip}
-ã€ä¾‹ã€‘座標(1,1)ã¨(4,3)ã«ç‚¹ã‚’表示ã™ã‚‹ã€‚Cinderellaã®æç”»é¢ã«ã¯æã‹ã‚Œãªã„。
+%å¯èª­æ€§ã‚’高ã‚ã‚‹ã¨ãã¯Drawpointを推奨ã™ã‚‹ã€‚
-\hspace{10mm} \verb|Drwpt([[1,1],[4,3]]);|
+%\vspace{\baselineskip}
+%ã€ä¾‹ã€‘座標(1,1)ã¨(4,3)ã«ç‚¹ã‚’表示ã™ã‚‹ã€‚Cinderellaã®æç”»é¢ã«ã¯æã‹ã‚Œãªã„。
-\vspace{\baselineskip}
-ã€ä¾‹ã€‘Cinderellaã§ç‚¹A,B,Cを作図ã—ã¦ãŠã,\TeX ã§è¡¨ç¤ºã™ã‚‹ã€‚
+%\hspace{10mm} \verb|Drwpt([[1,1],[4,3]]);|
-\hspace{10mm} \verb|Drwpt([A,B,C]); |
+%\vspace{\baselineskip}
+%ã€ä¾‹ã€‘Cinderellaã§ç‚¹A,B,Cを作図ã—ã¦ãŠã,\TeX ã§è¡¨ç¤ºã™ã‚‹ã€‚
-\vspace{\baselineskip}
-ã€ä¾‹ã€‘線分ABã®å³ç«¯ï¼ˆB)を白抜ãã§è¡¨ç¤ºã™ã‚‹
+%\hspace{10mm} \verb|Drwpt([A,B,C]); |
-\begin{layer}{150}{0}
-\putnotese{50}{8}{ \input{Fig/drawpoint}}
-\end{layer}
-\begin{verbatim}
- Ptsize(5);
- Listplot([A,B]);
- Drawpoint(B,0);
-\end{verbatim}
+%\vspace{\baselineskip}
+%ã€ä¾‹ã€‘線分ABã®å³ç«¯ï¼ˆB)を白抜ãã§è¡¨ç¤ºã™ã‚‹
-※ Drawpoint([A,B],0); ã¨ã™ã‚Œã°ï¼Œä¸¡ç«¯ãŒç™½æŠœãã«ãªã‚‹ã€‚
+%\begin{layer}{150}{0}
+%\putnotese{50}{8}{ \input{Fig/drawpoint}}
+%\end{layer}
+%\begin{verbatim}
+ % Ptsize(5);
+% Listplot([A,B]);
+% Drawpoint(B,0);
+%\end{verbatim}
-\vspace{\baselineskip}
-{\bf 点ã®è¡¨ç¤ºæ–¹æ³•}
+%※ Drawpoint([A,B],0); ã¨ã™ã‚Œã°ï¼Œä¸¡ç«¯ãŒç™½æŠœãã«ãªã‚‹ã€‚
-点を表示ã™ã‚‹é–¢æ•°ã¯ã„ãã¤ã‹ã‚る。Cinderellaã®æç”»é¢ä¸Šã«å˜ã«ç‚¹ã‚’表示ã™ã‚‹ã‚‚ã®ï¼Œå¹¾ä½•ç‚¹ã‚’作るもã®ï¼ŒTeXã«å‡ºåŠ›ã™ã‚‹ãŸã‚ã®ã‚‚ã®ï¼Œã¨å°‘ã—ãšã¤æ„味ãŒç•°ãªã‚‹ã€‚
+%\vspace{\baselineskip}
+%{\bf 点ã®è¡¨ç¤ºæ–¹æ³•}
-付録ã®ã€Œ\hyperlink{mkpttable}{点ã®ä½œå›³ã«ã¤ã„ã¦ã®æ¯”較表}ã€ã‚’å‚ç…§ã®ã“ã¨ã€‚
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
\vspace{\baselineskip}
\hypertarget{putpoint}{}
@@ -1863,14 +1856,14 @@ Dis オプションã«ã‚ˆã‚Šï¼Œå€¤ãŒã‚¸ãƒ£ãƒ³ãƒ—ã™ã‚‹ä¸é€£ç¶šç‚¹ã‚’ç·šã§çµã
ã€ä¾‹ã€‘ã‚¬ã‚¦ã‚¹è¨˜å· [$x$] ã§è¡¨ã•ã‚Œã‚‹é–¢æ•°ï¼ˆåºŠé–¢æ•° : floor())ã®ã‚°ãƒ©ãƒ•ã€‚
\begin{verbatim}
Plotdata("1","floor(x)","x",["Num=100","Dis=0.9"]);
- Ptsize(3);
Drwxy();
repeat(7,s,start -> -2,
- Drwpt([s+1,s],0);
+ Pointdata(text(s+3),[s+1,s],["Inside=0","Size=3"]);
);
\end{verbatim}
\hspace{40mm}\input{Fig/plotdata5}
+ãªãŠï¼Œã“ã“ã§ï¼ŒPointdata() ã®name ã‚’ text(s+3) ã¨ã—ã¦ã„ã‚‹ã®ã¯ï¼Œs㌠-2 ã‹ã‚‰å§‹ã¾ã‚‹ã®ã§ï¼Œname ã¯1ã‹ã‚‰å§‹ã¾ã‚‹ã‚ˆã†ã«ã™ã‚‹ãŸã‚ã§ã‚る。name ã«è² ã®æ•°ã¯ä½¿ãˆãªã„ã®ã§ã€‚
\vspace{\baselineskip}
関数ã«æ–‡å­—ä¿‚æ•°ãŒã¤ã„ã¦ãŠã‚Šï¼Œæ–‡å­—ä¿‚æ•°ã®å€¤ã‚’変化ã•ã›ãªãŒã‚‰ã‚°ãƒ©ãƒ•ã‚’æãã«ã¯ï¼ŒAssign を使ã†ã‹ï¼ŒDefvar ã§å¤‰æ•°ã‚’定義ã™ã‚‹ã€‚
@@ -3003,8 +2996,7 @@ Intersectcrvs() ã¨ã®é•ã„ã¯ï¼Œãƒ‘ラメータãŒã‚ã‚‹ã‹ã©ã†ã‹ã§ã‚ã‚‹ã
A.xy=plist_1;
B.xy=plist_3;
Listplot([A,B],["do"]);
- Ptsize(2);
- Drwpt([A,B]);
+ Pointdata("1",[A,B],["Size=2"]);
Letter([A,"n2w","A",B,"s2e","B",(A+B)/2,"e",text(plist_5)]);
\end{verbatim}
@@ -3198,6 +3190,50 @@ KeTCindyå½¢å¼ã®ãƒ‡ãƒ¼ã‚¿ã¨ã¯
ã®å½¢å¼ã®ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã€‚
+\hypertarget{readcsv}{}
+\item[関数] Readcsv(path,filename,option)
+\item[機能] csvファイルを読む。
+\item[説明] csvファイルを読ã¿ã“む。戻り値ã¯èª­ã¿è¾¼ã‚“ã ãƒ‡ãƒ¼ã‚¿ã®ãƒªã‚¹ãƒˆã€‚
+
+第1引数㮠path ã¯ï¼Œãƒ•ã‚¡ã‚¤ãƒ«ã‚’作業フォルダ( åˆæœŸè¨­å®šã¯ fig )ã«ç½®ã„ãŸå ´åˆã¯çœç•¥ã™ã‚‹ã“ã¨ãŒã§ãる。ãã†ã§ãªã„å ´åˆã¯ï¼Œãƒ•ãƒ«ãƒ‘スã§æŒ‡å®šã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œ"/Users/Hoge/Desktop"
+
+option ã¯ï¼Œ"Flat=" ã§ï¼Œ"Flat=y" ã®å ´åˆã¯ï¼Œèª­ã¿è¾¼ã‚“ã ãƒ‡ãƒ¼ã‚¿ã‚’リスト化ã—ãŸã¨ãã«å¹³æ»‘化(1次元ã®ãƒªã‚¹ãƒˆï¼‰ã«ã™ã‚‹ã€‚ åˆæœŸè¨­å®šã¯ "Flat=n"
+
+ã€ä¾‹ã€‘次ã®ã‚ˆã†ãªCSVファイル sample.csvを読ã¿è¾¼ã‚€ã¨ã™ã‚‹ã€‚
+
+\begin{verbatim}
+ 12,14,15,18,13
+ 9,13,17,21
+\end{verbatim}
+
+ã¤ã¾ã‚Šï¼Œï¼’行分ã®ãƒ‡ãƒ¼ã‚¿ã§ã‚る。
+
+\begin{verbatim}
+ data=Readcsv("sample.csv");
+\end{verbatim}
+
+ã¨ã™ã‚‹ã¨ï¼Œ
+\begin{verbatim}
+ data=[[12,14,15,18,13],[9,13,17,21]]
+\end{verbatim}
+
+ã¨ãªã‚‹ã€‚
+
+ã—ãŸãŒã£ã¦ï¼Œï¼‘行目ã®ãƒ‡ãƒ¼ã‚¿ã ã‘å–り出ã—ãŸã„å ´åˆã¯
+
+\begin{verbatim}
+ dt1=data_1;
+\end{verbatim}
+
+ã¨ã™ã‚‹ã€‚
+
+\hypertarget{readlines}{}
+\item[関数] Readlines(path,filename,option)
+\item[機能] テキストファイルを1è¡Œãšã¤èª­ã‚€ã€‚
+\item[説明] テキストファイルを1è¡Œãšã¤èª­ã¿ã“む。戻り値ã¯èª­ã¿è¾¼ã‚“ã æ–‡å­—列ã®ãƒªã‚¹ãƒˆã€‚
+
+第1引数㮠path ã¯ï¼Œãƒ•ã‚¡ã‚¤ãƒ«ã‚’作業フォルダ( åˆæœŸè¨­å®šã¯ fig )ã«ç½®ã„ãŸå ´åˆã¯çœç•¥ã™ã‚‹ã“ã¨ãŒã§ãる。ãã†ã§ãªã„å ´åˆã¯ï¼Œãƒ•ãƒ«ãƒ‘スã§æŒ‡å®šã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œ"/Users/Hoge/Desktop"
+
\vspace{\baselineskip}
\hypertarget{writeoutdata}{}
\item[関数] WriteOutData(ファイルå,PDリスト)
@@ -3315,6 +3351,9 @@ end////
println(Integrate("gr1",[0,3]));
\end{verbatim}
+数値ç©åˆ†ã§ã¯ãªã,数å¼å‡¦ç†ã¨ã—ã¦å®šç©åˆ†ã®å€¤ã‚’求ã‚ã‚‹å ´åˆã¯ï¼ŒMaxima を利用ã™ã‚‹ã€‚\hyperlink{calcbyM}{CalcbyM}
+ã‚’å‚照。
+
\vspace{\baselineskip}
\hypertarget{inversefun}{}
\item[関数] Inversefun(関数 , 範囲 , 値)
@@ -4408,50 +4447,6 @@ PlotdiscR("3","dgeom(k,0.3)","k=[0,10]");
%\vspace{\baselineskip}
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{readcsv}{}
-\item[関数] Readcsv(path,filename,option)
-\item[機能] csvファイルを読む。
-\item[説明] csvファイルを読ã¿ã“む。戻り値ã¯èª­ã¿è¾¼ã‚“ã ãƒ‡ãƒ¼ã‚¿ã®ãƒªã‚¹ãƒˆã€‚
-
-第1引数㮠path ã¯ï¼Œãƒ•ã‚¡ã‚¤ãƒ«ã‚’作業フォルダ( åˆæœŸè¨­å®šã¯ fig )ã«ç½®ã„ãŸå ´åˆã¯çœç•¥ã™ã‚‹ã“ã¨ãŒã§ãる。ãã†ã§ãªã„å ´åˆã¯ï¼Œãƒ•ãƒ«ãƒ‘スã§æŒ‡å®šã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œ"/Users/Hoge/Desktop"
-
-option ã¯ï¼Œ"Flat=" ã§ï¼Œ"Flat=y" ã®å ´åˆã¯ï¼Œèª­ã¿è¾¼ã‚“ã ãƒ‡ãƒ¼ã‚¿ã‚’リスト化ã—ãŸã¨ãã«å¹³æ»‘化(1次元ã®ãƒªã‚¹ãƒˆï¼‰ã«ã™ã‚‹ã€‚ åˆæœŸè¨­å®šã¯ "Flat=n"
-
-ã€ä¾‹ã€‘次ã®ã‚ˆã†ãªCSVファイル sample.csvを読ã¿è¾¼ã‚€ã¨ã™ã‚‹ã€‚
-
-\begin{verbatim}
- 12,14,15,18,13
- 9,13,17,21
-\end{verbatim}
-
-ã¤ã¾ã‚Šï¼Œï¼’行分ã®ãƒ‡ãƒ¼ã‚¿ã§ã‚る。
-
-\begin{verbatim}
- data=Readcsv("sample.csv");
-\end{verbatim}
-
-ã¨ã™ã‚‹ã¨ï¼Œ
-\begin{verbatim}
- data=[[12,14,15,18,13],[9,13,17,21]]
-\end{verbatim}
-
-ã¨ãªã‚‹ã€‚
-
-ã—ãŸãŒã£ã¦ï¼Œï¼‘行目ã®ãƒ‡ãƒ¼ã‚¿ã ã‘å–り出ã—ãŸã„å ´åˆã¯
-
-\begin{verbatim}
- dt1=data_1;
-\end{verbatim}
-
-ã¨ã™ã‚‹ã€‚
-
-\hypertarget{readlines}{}
-\item[関数] Readlines(path,filename,option)
-\item[機能] テキストファイルを1è¡Œãšã¤èª­ã‚€ã€‚
-\item[説明] テキストファイルを1è¡Œãšã¤èª­ã¿ã“む。戻り値ã¯èª­ã¿è¾¼ã‚“ã æ–‡å­—列ã®ãƒªã‚¹ãƒˆã€‚
-
-第1引数㮠path ã¯ï¼Œãƒ•ã‚¡ã‚¤ãƒ«ã‚’作業フォルダ( åˆæœŸè¨­å®šã¯ fig )ã«ç½®ã„ãŸå ´åˆã¯çœç•¥ã™ã‚‹ã“ã¨ãŒã§ãる。ãã†ã§ãªã„å ´åˆã¯ï¼Œãƒ•ãƒ«ãƒ‘スã§æŒ‡å®šã™ã‚‹ã€‚ãŸã¨ãˆã°ï¼Œ"/Users/Hoge/Desktop"
-
\vspace{\baselineskip}
\hypertarget{scatterplot}{}
\item[関数] Scatterplot(name,filename/datalist,option1,option2)
@@ -4576,7 +4571,7 @@ Maximaã¯æ•°å¼å‡¦ç†ã‚½ãƒ•ãƒˆã§ï¼Œ\ketcindy ã«ãŠã„ã¦ã¯å¾®ç©åˆ†ã®è¨ˆç®—ã
\vspace{\baselineskip}
$f(x)=\dfrac{e^x+e^{-x}}{2}$ ã®ï¼Œ$x=a$ã«ãŠã‘る接線ã®æ–¹ç¨‹å¼ã‚’作る。
-Maximaã§ãã®å‡¦ç†ã‚’è¡Œã†ã‚³ãƒžãƒ³ãƒ‰ã‚’定義ã—,CalbyMã§å®Ÿè¡Œã™ã‚‹ã€‚
+Maximaã§ãã®å‡¦ç†ã‚’è¡Œã†ã‚³ãƒžãƒ³ãƒ‰ã‚’定義ã—,CalcbyMã§å®Ÿè¡Œã™ã‚‹ã€‚
\begin{verbatim}
fx="(exp(x)+exp(-x))/2";
cmdL=[
@@ -4594,7 +4589,7 @@ Maximaã§ãã®å‡¦ç†ã‚’è¡Œã†ã‚³ãƒžãƒ³ãƒ‰ã‚’定義ã—,CalbyMã§å®Ÿè¡Œã™ã‚‹ã€
(%e^a-%e^-a)*(x-a))/2+(%e^a+%e^-a)/2
\end{verbatim}
ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚\\
- ã“ã®ï¼ŒCalbyMã®æˆ»ã‚Šå€¤ tn1 を用ã„ã¦ï¼Œæ›²ç·šä¸Šã®ï¼‘点Aã«ãŠã‘る接線ã®ã‚°ãƒ©ãƒ•ã‚’æã。以下ã®ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹ã€‚ãªãŠï¼Œç‚¹Aã‚’Cinderellaã®ä½œå›³ãƒ„ールã§é©å½“ãªã¨ã“ã‚ã«ã¨ã£ã¦ãŠã。
+ ã“ã®ï¼ŒCalcbyMã®æˆ»ã‚Šå€¤ tn1 を用ã„ã¦ï¼Œæ›²ç·šä¸Šã®ï¼‘点Aã«ãŠã‘る接線ã®ã‚°ãƒ©ãƒ•ã‚’æã。以下ã®ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹ã€‚ãªãŠï¼Œç‚¹Aã‚’Cinderellaã®ä½œå›³ãƒ„ールã§é©å½“ãªã¨ã“ã‚ã«ã¨ã£ã¦ãŠã。
\begin{verbatim}
tn1=Assign(tn1,["%e^a","exp(a)","%e^-a","exp(-a)"]);
Plotdata("1",fx,"x");
@@ -4635,12 +4630,22 @@ Maximaã§ãã®å‡¦ç†ã‚’è¡Œã†ã‚³ãƒžãƒ³ãƒ‰ã‚’定義ã—,CalbyMã§å®Ÿè¡Œã™ã‚‹ã€
cmdLã§å®šç¾©ã—ã¦ã„ã‚‹Maximaã®ã‚³ãƒžãƒ³ãƒ‰ï¼ˆtrigsimp ãªã©ï¼‰ã«ã¤ã„ã¦ã¯ï¼ŒMaximaã®è§£èª¬æ›¸ãªã©ã‚’å‚ç…§ã•ã‚ŒãŸã„。
-%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-%\vspace{\baselineskip}
-%\hypertarget{example}{}
-%\item[関数] Example("Mxfun",文字)
-%\item[機能] Mxfunã®ä½¿ç”¨ä¾‹ã‚’表示。文字㯠"a","b",ãªã©ã€‚
-%\item[説明] ãŸã¨ãˆã°ï¼Œ\verb|Example("Mxfun","a")| ã¨ã™ã‚‹ã¨ï¼ŒMxfunã®ä½¿ç”¨ä¾‹ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚Œã‚‹ã€‚
+\vspace{\baselineskip}
+ã€ä¾‹ã€‘定ç©åˆ†ã®å€¤ã‚’求ã‚る。
+
+\vspace{\baselineskip}
+$\displaystyle \int _{-1} ^2 (-x^3+3x+2)dx$ ã®å€¤ã‚’求ã‚る。çµæžœã¯ val ã§å—ã‘å–り,Mxtex() ã«æ¸¡ã—ã¦ï¼ŒTeX書å¼ã«ã—ã¦è¡¨ç¤ºã™ã‚‹ã€‚
+
+\begin{verbatim}
+ cmdL=[
+ "val:integrate",["-x^3+3*x+2,x,-1,2"],
+ "val",[]
+ ];
+ CalcbyM("val",cmdL);
+ Mxtex("1",val);
+ Expr([[2,2],"e","S="+tx1]);
+\end{verbatim}
+
\vspace{\baselineskip}
\hypertarget{mxbatch}{}
@@ -5950,7 +5955,9 @@ KeTCindy3Dã§ã¯ï¼Œç·šã‚„é¢ã«ã¤ã„ã¦ã®é™°ç·šå‡¦ç†ã‚’è¡Œã†ã€‚陰線処ç†ã
\item[機能] KeTCindy3Dã®ä½¿ç”¨å®£è¨€
\item[説明] Cinderellaã®ç”»é¢ã‚’3Dモードã«ã™ã‚‹ã€‚
-Cinderellaã®æç”»é¢ã«ï¼Œè¦–点移動ã®ãŸã‚ã®2ã¤ã®ã‚¹ãƒ©ã‚¤ãƒ€ã‚’作る。スライダã¯åˆæœŸä½ç½®ãŒå·¦ç«¯ã«ãªã‚‹ã€‚
+Cinderellaã®æç”»é¢ã«ï¼Œè¦–点移動ã®ãŸã‚ã®2ã¤ã®ã‚¹ãƒ©ã‚¤ãƒ€ã‚’作る。スライダã¯åˆæœŸä½ç½®ãŒå·¦ç«¯ã«ãªã‚‹ã€‚スライダTHã§è§’THETAを,スライダFIã§è§’PHIを内部変数ã¨ã—ã¦å®šç¾©ã™ã‚‹ã€‚
+
+引数ã«0を入れ㦠\verb|Ketinit3d(0)| ã¨ã™ã‚‹ã¨ï¼Œå‰¯ç”»é¢ã‚’表示ã—ãªã„。
\textcolor{red}{<é‡è¦ï¼ž}
@@ -5967,7 +5974,7 @@ Cinderellaã®ä½œå›³ãƒ„ールã§ï¼Œç‚¹ãƒ»ç·šåˆ†ã‚’作図ã™ã‚‹ã¨ï¼Œå†…部関数ã
作図ã—ãŸç‚¹ã®å称をインスペクタã§å¤‰æ›´ã—ãŸå ´åˆï¼Œæ–°ã—ã„å称ã«å¯¾å¿œã™ã‚‹ç‚¹ã‚’副画é¢ä¸Šã«ä½œæˆã™ã‚‹ãŒï¼Œä»¥å‰ã®ç‚¹ã¯æ¶ˆãˆãªã„ã®ã§è¦æ³¨æ„。ãŸã¨ãˆã°ï¼Œç‚¹Aを作図ã—ãŸå¾Œï¼Œä¸»ç”»é¢ä¸Šã®ç‚¹Aをインスペクタã§ç‚¹Dã«å¤‰ãˆãŸå ´åˆï¼Œå‰¯ç”»é¢ä¸Šã«æ–°ãŸã«DzãŒã§ãã‚‹ãŒï¼Œä»¥å‰ã®Azも残る。残ã£ãŸAzã¯ï¼Œé¸æŠžã—ã¦ãŠã„ã¦ä½œå›³ãƒ„ールã®æ¶ˆåŽ»ãƒœã‚¿ãƒ³ \includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/delete.pdf}ã§æ¶ˆã™ã“ã¨ãŒã§ãる。
-optionã«ï¼Œé™¤å¤–点ã®ãƒªã‚¹ãƒˆã‚’与ãˆã‚‹ã¨ï¼Œãã®ç‚¹ã¯ç©ºé–“点ã¨ã—ãªã„。(始点を移動ã—ã¦ã‚‚ä½ç½®ã¯å¤‰ã‚らãªã„)
+optionã«ï¼Œé™¤å¤–点ã®ãƒªã‚¹ãƒˆã‚’与ãˆã‚‹ã¨ï¼Œãã®ç‚¹ã¯ç©ºé–“点ã¨ã—ãªã„。(スライダã§è¦–点を移動ã—ã¦ã‚‚ä½ç½®ã¯å¤‰ã‚らãªã„)
%---------------- Startsurf --------------------------------------------
\vspace{\baselineskip}
@@ -5990,7 +5997,7 @@ optionsãŒãªã„ã¨ãã¯ï¼Œä»¥ä¸‹ã® åˆæœŸè¨­å®šã‚’用ã„る。
(3) ExeccmdC(); ã§ï¼ŒC言語を用ã„ã¦ã¾ã¨ã‚ã¦æç”»ã™ã‚‹ã€‚
-%-------------------Xyzcoord -----------------------------------------------
+%-------------------Xyzaxdata3d -----------------------------------------------
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
\vspace{\baselineskip}
\hypertarget{xyzax3data}{}
@@ -6035,21 +6042,21 @@ optionsãŒãªã„ã¨ãã¯ï¼Œä»¥ä¸‹ã® åˆæœŸè¨­å®šã‚’用ã„る。
\begin{description}
%---------------- Drawpoint3d --------------------------------------------
-\hypertarget{drawpoint3d}{}
-\item[関数] Drawpoint3d(座標)
-\item[機能] 空間点をæã
-\item[説明] 引数ã§ä¸ŽãˆãŸç©ºé–“座標ã®ç‚¹ã‚’æã。ã“ã®ç‚¹ã¯å¹¾ä½•ç‚¹ã§ã¯ãªã„。ã¾ãŸï¼ŒTeX ã«ã‚‚出力ã•ã‚Œãªã„。幾何点ã«ã™ã‚‹ã«ã¯ \hyperlink{putpoint3d}{Putpoint3d()} を用ã„る。TeXã«ç‚¹ã‚’出力ã™ã‚‹ã«ã¯ï¼Œ\hyperlink{pointdata3d}{Pointdata3d()} を用ã„る。
+%\hypertarget{drawpoint3d}{}
+%\item[関数] Drawpoint3d(座標)
+%\item[機能] 空間点をæã
+%\item[説明] 引数ã§ä¸ŽãˆãŸç©ºé–“座標ã®ç‚¹ã‚’æã。ã“ã®ç‚¹ã¯å¹¾ä½•ç‚¹ã§ã¯ãªã„。ã¾ãŸï¼ŒTeX ã«ã‚‚出力ã•ã‚Œãªã„。幾何点ã«ã™ã‚‹ã«ã¯ \hyperlink{putpoint3d}{Putpoint3d()} を用ã„る。TeXã«ç‚¹ã‚’出力ã™ã‚‹ã«ã¯ï¼Œ\hyperlink{pointdata3d}{Pointdata3d()} を用ã„る。
-引数ã¯ï¼Œåº§æ¨™ã®ãƒªã‚¹ãƒˆã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
+%引数ã¯ï¼Œåº§æ¨™ã®ãƒªã‚¹ãƒˆã«ã™ã‚‹ã“ã¨ã‚‚ã§ãる。
-\vspace{\baselineskip}
-ã€ä¾‹ã€‘
-\begin{verbatim}
- Drawpoint3d([1,1,1]);
- Drawpoint3d([[1,1,1],[0,1,0]]);
-\end{verbatim}
+%\vspace{\baselineskip}
+%ã€ä¾‹ã€‘
+%\begin{verbatim}
+% Drawpoint3d([1,1,1]);
+% Drawpoint3d([[1,1,1],[0,1,0]]);
+%\end{verbatim}
-\vspace{\baselineskip}
+%\vspace{\baselineskip}
%---------------- Pointdata3d --------------------------------------------
\hypertarget{pointdata3d}{}
@@ -6088,7 +6095,7 @@ optionã¯ï¼Œ"fix"( åˆæœŸè¨­å®š) ã¾ãŸã¯ "free"。リスト ["free"] ã«ã—ã¦
\verb|Putpoint3d(["A",[2,1,3]],"free");|
\vspace{\baselineskip}
- ãªãŠï¼Œã“ã®é–¢æ•°ã¯å¹¾ä½•ç‚¹ã‚’作るもã®ã§ã‚り,TeXã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。TeXã«ç‚¹ã‚’出力ã™ã‚‹ã«ã¯ï¼Œ\hyperlink{pointdata}{Pointdata()} ã¾ãŸã¯ \hyperlink{drwpt}{Drawpoint()}を併用ã™ã‚‹ã€‚
+ ãªãŠï¼Œã“ã®é–¢æ•°ã¯å¹¾ä½•ç‚¹ã‚’作るもã®ã§ã‚り,TeXã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。TeXã«ç‚¹ã‚’出力ã™ã‚‹ã«ã¯ï¼Œ\hyperlink{pointdata}{Pointdata()} を併用ã™ã‚‹ã€‚
空間ã«ãŠã‘る点ã®åº§æ¨™ã¯ï¼Œç‚¹åã«"3d"を付加ã—ãŸåå‰ã®å¤‰æ•°ã«ä»£å…¥ã•ã‚Œã‚‹ã€‚ãŸã¨ãˆã°ï¼Œç‚¹Aã®åº§æ¨™ã¯A3dã§ã‚る。ã“ã‚Œã«ã‚ˆã‚Šï¼Œç‚¹ã®åº§æ¨™ã‚’å–å¾—ã§ãる。
@@ -6327,11 +6334,7 @@ Putpoint3d("D",2*[-1,-1/sqrt(3),0]);
phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
VertexEdgeFace("1",phd);
Skeletonparadata("1");
-pa=Parapt(A3d);
-pb=Parapt(B3d);
-pc=Parapt(C3d);
-pd=Parapt(D3d);
-Letter([pa,"ne","A",pb,"sw","B",pc,"se","C",pd,"e","D"]);
+Letter3d([A3d,"ne","A",B3d,"sw","B",C3d,"se","C",D3d,"e","D"]);
\end{verbatim}
\begin{center} \input{Fig/concatobj} \end{center}
@@ -6975,13 +6978,13 @@ ExeccmdC()ã® options2ã‚’ ["nodisp"] ã«ã™ã‚‹ã¨ï¼Œé™°ç·šã¯éžè¡¨ç¤ºã«ãªã‚‹ã
Intersectcrvsf("1","sl3d1",fd);
ExeccmdC("1",[""]);
println("Intersect="+intercrvsf1);
- Drawpoint3d(intercrvsf1);
+ Pointdata3d("1",intercrvsf1);
\end{verbatim}
実行ã™ã‚‹ã¨ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«
\verb| Intersect=[[0,1.57,1.52],[0,-1.91,0.36]] |
-ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œï¼Œç”»é¢ã«ã¯ç·‘ã§äº¤ç‚¹ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚
+ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œï¼Œç”»é¢ã«ã¯äº¤ç‚¹ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚
%------------------- IntersectsgpL -----------------------------------------------
\vspace{\baselineskip}
@@ -7029,18 +7032,17 @@ println("flag1="+ret_2+": flag2="+ret_3);
\begin{layer}{150}{0}
\putnotese{10}{20}{ \input{Fig/wire01}}
\putnotese{60}{20}{ \input{Fig/wire02}}
-\putnotese{10}{60}{ \input{Fig/wire03}}
-\putnotese{60}{60}{ \input{Fig/wire04}}
\end{layer}
\begin{verbatim}
p2=[0,0,1/2]; p2=[-1,1,1];
flag1=false : flag2=true flag1=true : flag2=true
-
-
-
-
-
-
+\end{verbatim}
+\vspace{30mm}
+\begin{layer}{150}{0}
+\putnotese{10}{20}{ \input{Fig/wire03}}
+\putnotese{60}{20}{ \input{Fig/wire04}}
+\end{layer}
+ \begin{verbatim}
p2=[1,2,1]; p2=[1,0,1/2];
flag1=true : flag2=false   flag1=false : flag2=false
\end{verbatim}
@@ -7568,12 +7570,11 @@ none:計算ã ã‘è¡Œã„,点ã¯ä½œå›³ã—ãªã„。
Defvar("vo=[3,3,3]");
Defvar("vx=[0,1,0]");
Defvar("vy=[0,0,1]");
- Putpoint3d(["A",[3,3,3]]);
+ Putpoint3d(["A",[3,3,3]],["fix"]);
Circledata("1",[[0,0],[2,0]],["nodisp"]);
Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");
- Ptsize(3);
- Drawpoint(A);
+ Pointdata("1",[A],["Size=3"]);
\end{verbatim}
\begin{center} \input{Fig/embed01} \end{center}
@@ -7610,8 +7611,7 @@ none:計算ã ã‘è¡Œã„,点ã¯ä½œå›³ã—ãªã„。
Circledata("1",[[0,0],[2,0]],["nodisp"]);
Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]");
- Ptsize(3);
- Drawpoint(P);
+ Pointdata("1",[P],["Size=3"]);
Skeletonparadata("1");
\end{verbatim}
\begin{center} \input{Fig/embed02} \end{center}
@@ -7651,14 +7651,14 @@ none:計算ã ã‘è¡Œã„,点ã¯ä½œå›³ã—ãªã„。
\begin{center}\scalebox{0.8}{ \input{Fig/invparapt}} \end{center}
ã“ã“ã§ï¼Œsl2d1,sc2d1 ã¯ç·šåˆ†ã¨èžºæ—‹ã®æç”»é¢ä¸Šã§ã®ï¼ˆå¹³é¢ã®ï¼‰ãƒ—ロットデータã§ã‚る。Intersectcrvs() ã§å¹³é¢ä¸Šã®äº¤ç‚¹ã®åº§æ¨™ï¼ˆè¤‡æ•°ã‚ã‚‹ã®ã§ãƒªã‚¹ãƒˆãŒè¿”る)を求ã‚,Invparapt() ã§å¯¾å¿œã™ã‚‹èžºæ—‹ä¸Šã®ç‚¹ã®åº§æ¨™ã‚’求ã‚ã¦éƒ¨åˆ†æ›²ç·šã‚’æã„ã¦ã„る。実際ã«äº¤ã‚る点ã§ã®éƒ¨åˆ†æ›²ç·šã§ã¯ãªã„ã“ã¨ã«æ³¨æ„。
-
+%------------------- Expr3d -----------------------------------------------
\vspace{\baselineskip}
\hypertarget{expr3d}{}
\item[関数] Expr3d([ä½ç½®, æ–¹å‘, 文字列],option)
\item[機能] 文字列を表示ã™ã‚‹
\item[説明] Expr() ã¨åŒã˜æ›¸å¼ã€‚「ä½ç½®ï¼ˆåº§æ¨™ï¼‰ã€ã ã‘,空間座標ã«ã™ã‚‹ã€‚
-
+%------------------- Letter3d -----------------------------------------------
\vspace{\baselineskip}
\hypertarget{letter3d}{}
\item[関数] Letter3d([ä½ç½®, æ–¹å‘, 文字列],option)
@@ -7809,8 +7809,8 @@ Cinderellaã§ä½¿ã£ã¦ã„る用語ã«æ¬¡ã®ã‚‚ã®ãŒã‚る。
\hyperlink{deqplot}{Deqplot(name,å¼,変数å,åˆæœŸå€¤,options])} \>微分方程å¼ã®è§£æ›²ç·šã‚’æã\\
\hyperlink{dotfilldata}{Dotfilldata(name , æ–¹å‘, PD , options)} \>領域ã«ç‚¹ã‚’æ•·ãè©°ã‚ã‚‹\\
\hyperlink{drawsegmark}{Drawsegmark(name,list,options)} \>線分ã«å°ã‚’ã¤ã‘ã‚‹\\
-\hyperlink{drwpt}{Drawpoint([点,options])} \>点を表示ã™ã‚‹\\
-\hyperlink{drwpt}{Drwpt([点,options])} \>点を表示ã™ã‚‹\\
+%\hyperlink{drwpt}{Drawpoint([点,options])} \>点を表示ã™ã‚‹\\
+%\hyperlink{drwpt}{Drwpt([点,options])} \>点を表示ã™ã‚‹\\
\hyperlink{ellipseplot}{Ellipseplot(name,list,str,options)} \>楕円をæã\\
\hyperlink{enclosing}{Enclosing(name , [ä½ç½®ï¼Œæ–¹å‘,数å¼])} \>複数ã®æ›²ç·šã‹ã‚‰é–‰æ›²ç·šã‚’æã\\
\hyperlink{expr}{Expr([座標,ä½ç½®,文字列],options)} \>\TeX æ•°å¼ã‚’書ã\\
@@ -7894,6 +7894,8 @@ Cinderellaã§ä½¿ã£ã¦ã„る用語ã«æ¬¡ã®ã‚‚ã®ãŒã‚る。
\hyperlink{ptcrv}{Ptcrv(n,PD)} \>曲線PD ã®n 番目ã®ç¯€ç‚¹ã‚’å–å¾—ã™ã‚‹\\
\hyperlink{ptstart}{Ptstart(PD)} \>プロットデータã®å§‹ç‚¹ãƒ»çµ‚点をå–å¾—ã™ã‚‹\\
\hyperlink{readoutdata}{ReadOutData(ファイルå)} \>外部データをPDã¨ã—ã¦èª­ã¿è¾¼ã‚€\\
+\hyperlink{readcsv}{Readcsv(name,filename,option)} \>csvファイルを読む\\
+\hyperlink{readlines}{Readlines(name,filename,option)} \>テキストファイルを1è¡Œãšã¤èª­ã‚€\\
\hyperlink{sqr}{Sqr(real)} \>平方根を返ã™\\
\hyperlink{viewtex}{Viewtex()} \>\TeX ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã™ã€‚引数ãªã—\\
\hyperlink{workprocess}{Workprocess()} \>作図ã®çµŒéŽã‚’å–å¾—ã™ã‚‹\\
@@ -7932,8 +7934,6 @@ Cinderellaã§ä½¿ã£ã¦ã„る用語ã«æ¬¡ã®ã‚‚ã®ãŒã‚る。
\hyperlink{histplot}{Histplot(name,data)} \>ヒストグラムをæã\\
\hyperlink{plotdatar}{PlotdataR(name,å¼,変数)} \>Rã®é–¢æ•°ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
\hyperlink{plotdiscr}{PlotdiscR(name,å¼,変数)} \>離散型ã®ã‚°ãƒ©ãƒ•ã‚’æã\\
-\hyperlink{readcsv}{Readcsv(name,filename,option)} \>csvファイルを読む\\
-\hyperlink{readlines}{Readlines(name,filename,option)} \>テキストファイルを1è¡Œãšã¤èª­ã‚€\\
\hyperlink{scatterplot}{Scatterplot(name,filename,option)} \>2次元データを読ã¿è¾¼ã¿ï¼Œæ•£å¸ƒå›³ã‚’æã\\
\vspace{\baselineskip}
ã€Maximaã¨ã®é€£æºã€‘\\
@@ -7985,7 +7985,7 @@ Cinderellaã§ä½¿ã£ã¦ã„る用語ã«æ¬¡ã®ã‚‚ã®ãŒã‚る。
\hyperlink{datalist}{Datalist2d()} \>ç”»é¢ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータ\\
\hyperlink{datalist}{Datalist3d()} \>ç”»é¢ã«æã‹ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ—ロットデータ\\
\hyperlink{dist3d}{Dist3d(点å,点å)} \>空間ã®2点ã®è·é›¢\\
-\hyperlink{drawpoint3d}{Drawpoint3d(座標)} \>空間点をæã\\
+%\hyperlink{drawpoint3d}{Drawpoint3d(座標)} \>空間点をæã\\
\hyperlink{embed}{Embed(name,PD,å¼)} \>埋ã‚è¾¼ã¿ãƒ‡ãƒ¼ã‚¿ä½œæˆ\\
\hyperlink{execcmdc}{ExeccmdC(name,options1,options2)} \>C言語ã§å‘½ä»¤å®Ÿè¡Œ\\
\hyperlink{expr3d}{Expr3D([座標,ä½ç½®,文字列],options)} \>文字列を表示ã™ã‚‹\\
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex
index f567a0a9072..8145b7fb7a8 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex
@@ -34,7 +34,8 @@ How to install KeTCindy(Mac)
\begin{itemize}
\item Files necessary for KeTCindy are already implemented (2018 or later).
\end{itemize}
- \item In case of other TeX, see {\bf 3.}(2).
+ \item KeTTeX is a light-weight version of TeXLive and downloadable from\\
+ \hspace*{6mm}\url{https://www.dropbox.com/s/vg8p07832e9hzlk/KeTTeX-linux-20171022.tar.xz?dl=0}
\end{enumerate}
@@ -48,16 +49,10 @@ How to install KeTCindy(Mac)
\hspace*{10mm}Clone or Download \verb|>| Download ZIP
\end{itemize}
\item Open ketcindy(-master)/forLinux.
- \begin{itemize}
- \item[Rem)]If you use TeX other than TeXLIve/KeTTeX,
- \begin{itemize}
- \item Open setketcindy.command with a text editor.
- \item Edit paths in it.
- \end{itemize}
- \end{itemize}
\item Open Terminal and execute setketcindy.sh with sh command
\begin{itemize}
- \item Control-click and select Terminal if necessary.
+ \item if some paths are wrong,\\
+ \hspace*{5mm}open setketcindy.sh with a text editor, and edit paths written in it.
\item Contents of scripts will be copied into TeX.
\item ketcindystyle files will be copied and mktexlsr will be executed.
\item In Cinderella/PlugIns\\
@@ -86,7 +81,7 @@ How to install KeTCindy(Mac)
\item Test run of KeTCindy
\begin{enumerate}[(1)]
- \item Double-click "template1basic.cdy" in "ketcindy/ketfiles".\\
+ \item Double-click "template1basic.cdy" in work directory "ketcindy".\\
\hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate}
\item Press "Figure" button at the top left, then the final PDF output is displayed.
\begin{itemize}
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex
index 69784439e61..a7c876e09dd 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex
@@ -35,7 +35,9 @@ KETCindyã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« (Linux)
\begin{itemize}
\item ï¼’ï¼ï¼‘8以é™ã§ã¯ketcindyãŒæ—¢ã«å…¥ã£ã¦ã„ã‚‹.
\end{itemize}
- \item ä»–ã®TeXã®å ´åˆã¯ï¼Œ{\bf 3.}(2)ã‚’å‚ç…§ã™ã‚‹ï¼Ž
+\item KeTTeXã¯TeXLiveã®è»½é‡ç‰ˆã§ï¼Œä»¥ä¸‹ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã§ãる.\\
+ \hspace*{6mm}\url{https://www.dropbox.com/s/vg8p07832e9hzlk/KeTTeX-linux-20171022.tar.xz?dl=0}
+% \item ä»–ã®TeXã®å ´åˆã¯ï¼Œ{\bf 3.}(2)ã‚’å‚ç…§ã™ã‚‹ï¼Ž
\end{enumerate}
\item KeTCindyã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«
@@ -50,15 +52,10 @@ KETCindyã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« (Linux)
\item[注)]ã“ã®å ´åˆã¯ï¼Œketcindy-masterã«ãªã‚‹ï¼Ž
\end{itemize}
\item ketcindy(-master)/forLinuxã‚’é–‹ã.
- \begin{itemize}
- \item[注)]ä»–ã®TeXを使ã£ã¦ã„ã‚‹å ´åˆ
- \begin{itemize}
- \item setketcindy.shをテキストエディタã§é–‹ã.
- \item パスを修正ã™ã‚‹ï¼Ž
- \end{itemize}
- \end{itemize}
\item ターミナルã®shコマンドã§setketcindy.shを実行.
\begin{itemize}
+ \item 表示ã•ã‚Œã‚‹ãƒ‘スãŒé•ã£ã¦ã„ã‚‹å ´åˆ\\
+ \hspace*{10mm}setketcindy.shをテキストエディタã§é–‹ã„ã¦ï¼Œãƒ‘スを修正ã™ã‚‹ï¼Ž
\item scriptsã®ä¸­èº«ãŒTeXã«ã‚³ãƒ”ーã•ã‚Œã‚‹
\item ketcindyã®styleファイルãŒTeXã«ã‚³ãƒ”ーã•ã‚ŒmktexlsrãŒå®Ÿè¡Œã•ã‚Œã‚‹ï¼Ž
\item Cinderellaã®Pluginsã«KetcindyPlugin.jarをコピー,ketcindy.iniãŒä½œæˆã•ã‚Œã‚‹ï¼Ž
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex
index 880f70d9e54..bafe8c7c61c 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex
@@ -94,7 +94,7 @@ How to install KeTCindy(Mac)
\item Test run of KeTCindy
\begin{enumerate}[(1)]
- \item Double-click "template1basic.cdy" in "ketcindy/ketfiles".\\
+ \item Double-click "template1basic.cdy" in work directory "ketcindy".\\
\hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate}
\item Press "Figure" button at the top left, then the final PDF output is displayed.
\begin{itemize}
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex
index 60847ef8e23..eecd1de9e7b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex
@@ -96,7 +96,7 @@ How to install KeTCindy(Windows)
\item Test run of KeTCindy
\begin{enumerate}[(1)]
- \item Double-click "template1basic.cdy" in "ketcindy/ketfiles".\\
+ \item Double-click "template1basic.cdy" in work directory "ketcindy".\\
\hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate}
\item Press "Figure" button at the top left, then the final PDF output is displayed.
\begin{itemize}
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceE.tex b/Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceE.tex
new file mode 100644
index 00000000000..642b5efe38a
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceE.tex
@@ -0,0 +1,619 @@
+\documentclass[papersize,a4paper,12pt]{article}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath}
+\usepackage{graphicx,color}
+\usepackage{wrapfig}
+\usepackage[bookmarks=false,colorlinks=true,linkcolor=blue]{hyperref}
+\setmargin{20}{20}{15}{25}
+\usepackage{setspace}
+\usepackage{comment}
+\usepackage{bm,enumerate}
+\begin{document}
+\title{Spacekc Reference}
+\author{CinderellaJapan}
+\maketitle
+
+\tableofcontents
+
+\newpage
+
+% Section 1 Introduction =======================================
+\section{Introduction }
+Spacekc is a function library on Ketcindy. To KeTCindy's 3D graphics, color with simple raytracing
+be able to. In addition, several functions for calculating relating to space are prepared.
+
+%Section 2 ==========================================
+\section{Constant}
+
+\begin{description}
+
+\hypertarget{lightpoint}{}
+\item[Direction vector of light source] Lightpoint
+\item[Description] Direction vector of light source for simplified ray tracing. Default is [-1,1,1].
+
+\vspace{\baselineskip}
+\hypertarget{contrast}{}
+\item[Contrast] Contrast
+\item[Description] Contrast in the direction of light when performing simple ray tracing. Standard is a real number between 0 and 1.
+
+\end{description}
+
+%Section 3 Value ==========================================
+\section{Value}
+\begin{description}
+
+\hypertarget{angle3pt}{}
+\item[Function] angle3pt(coordinate1,coordinate2,coordinate3)
+\item[Description] Find an angle on a 2D plane.
+\item[Return value] This function is return ∠p1p2p3 for point p1,p2,p3.
+
+\vspace{\baselineskip}
+
+\hypertarget{pointindomain}{}
+\item[Function] pointindomain(coordinate1,list of point)
+\item[Description] Judgment whether or not there is a point in the closed curve.
+\item[Return value] The judgment that this function has a point of coordinate1 in the closed curve of the list of points on a plane. The case in the domain return 1 , out of domain return 0, on a boundary line return 2.
+
+\vspace{\baselineskip}
+
+\hypertarget{crosssd}{}
+\item[Function] crosssd(coordinate1,coordinate2,coordinate3,coordinate4)
+\item[Description] determine whether two segments cross in 2D plane
+\item[Description] judge it whether a segment of links coordinate 3, coordinate 4 to the segment of linking coordinate 1, coordinate 2 has a common point.
+\item[Return value] When there is a common point, true is returned, and false is returned when there is not it.
+
+\vspace{\baselineskip}
+
+\hypertarget{interll}{}
+\item[Function] interll(coordinate1,coordinate2,coordinate3,coordinate4)
+\item[Description] Demand the point of intersection of the two straight lines
+\item[Return value] Demand the coordinate of the point of intersection with the straight line via coordinate 1, coordinate 2 and coordinate 3, coordinate 4. When there is not a point of intersection, It return [i,i,i].
+
+\vspace{\baselineskip}
+
+\hypertarget{interss}{}
+\item[Function] interss(coordinate1,coordinate2,coordinate3,coordinate4)
+\item[Description] Demand the point of intersection of the two segments.
+\item[Return value]Demand the coordinate of the point of intersection with the segment via coordinate 1, coordinate 2 and coordinate 3, coordinate 4.
+
+ When there is not a point of intersection, It return [i,i,i].
+
+\vspace{\baselineskip}
+\hypertarget{interpl}{}
+\item[Function]interpl(list of coefficients ,coordinate1,coordinate2)
+\item[Description] Demand a plane and the point of intersection of the straight line.
+\item[Return value] Demand the coordinate of the point of intersection with the plane via coordinate 1, coordinate 2, coordinate 3 and line via coordinate 4 , coordinate 5.
+
+ When there is not a point of intersection, It return [i,i,i].
+
+\vspace{\baselineskip}
+\hypertarget{interps}{}
+\item[Function] interps(list of coefficients ,coordinate1,coordinate2)
+\item[Description] Demand a plane and the point of intersection of the segment
+\item[Return value] Demand the coordinate of the point of intersection with the plane via coordinate 1, coordinate 2, coordinate 3 and segment to link coordinate 4 to coordinate 5.
+
+ When there is not a point of intersection, It return [i,i,i].
+
+\hypertarget{distlp}{}
+\item[Function] distlp(coordinate1,coordinate2,coordinate3)
+\item[Description] Distance of a line to a point .
+\item[Return value] It find a straight line via coordinate1 and coordinate2 and the distance with the point of coordinate3. The return value is distance. When coordinate 1 and coordinate 2 is equal, return imaginary unit i and display warning "Warning:p1 is same to p2" to a console.
+
+Example println(distlp([1,0],[0,1],[0,0])); \\
+In addition, 0.71 is displayed to a console by plintln(), but is displayed with 1/2*sqrt(2) by \\
+   println(guess(distlp([1,0],[0,1],[0,0])));\\
+
+Example println(distlp([1,1,0],[0,0,1],[0,0,0]));
+In addition, 0.82 is displayed to a console by plintln(), but is displayed with 1/3*sqrt(6) by \\
+   println(guess(distlp([1,1,0],[0,0,1],[0,0,0])));\\
+
+
+\vspace{\baselineskip}
+\hypertarget{distpp}{}
+\item[Function] distpp(coordinate1,coordinate2,coordinate3,coordinate4)
+\item[Description] Distance of a plene and a point in 3D space
+\item[Return value] It find a plane via coordinate1 ,coordinate2 and coordinate2 and the distance with the point of coordinate4. The return value is distance.
+
+Example distpp([2,0,0],[0,2,0],[0,0,2],[0,0,0]);\\
+     return value is $\cfrac{2\sqrt{3}}{3}$ \\
+
+\vspace{\baselineskip}
+\hypertarget{map2d}{}
+\item[Function] Coordinate of the point that projection of space
+\item[Description] In a current screen set with a circular slider, It find the coordinate which performed a projection of a point on the space on a plane.
+\item[Return value] coordinate
+
+Example : pt=map2d([1,2,3]);
+
+It is exactly the same as KeTindy's Parapt ().
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{normalvec}{}
+\item[Function] normalvec(coordinate1,coordinate2,coordinate3)
+\item[Description] It demand a plane unit normal vector via coordinate 1, coordinate 2, coordinate 3.
+\item[Return value] normal vector.
+
+ The direction of the vector is decided in order of a point.\\
+Exsample normalvec([2,0,0],[0,2,0],[0,0,2]);\\
+  Result is $\left(\cfrac{\sqrt{3}}{3},\cfrac{\sqrt{3}}{3},\cfrac{\sqrt{3}}{3}\right)$\\
+  normalvec([2,0,0],[0,0,2],[0,2,0]); \\
+ Result is $\left(-\cfrac{\sqrt{3}}{3},-\cfrac{\sqrt{3}}{3},-\cfrac{\sqrt{3}}{3}\right)$\\
+
+The vector of the perpendicular line which you gave to a plane is provided when you use distpp()\\
+
+  nv=normalvec([2,0,0],[0,2,0],[0,0,2]);\\
+  dd=distpp([2,0,0],[0,2,0],[0,0,2],[0,0,0]);\\
+  poly3d([[2,0,0],[0,2,0],[0,0,2]]);\\
+  arrow3d([[0,0,0],dd*nv]);\\
+  Letter3d([dd*nv,"e","H"]);\\
+
+  \input{3Dfig/nomalvec01}\\
+
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+
+\hypertarget{planecoeff}{}
+\item[Function] planecoeff(coordinate1,coordinate2,coordinate3)
+\item[Description] It demands coefficient $a,b,c$ of plane equation $ax+by+cz=1$ going along three points of coordinate 1 and coordinate 2 and coordinate 3.
+\item[Return value] List [a,b,c]. When coefficiets not exist, "Warning! Cannot decide a coefficient." is displayed and return [i,i,i].\\
+
+
+\vspace{\baselineskip}
+\hypertarget{reflect3d}{}
+\item[Function] reflect3d(dlist,mirror)
+\item[Description] Reflection of dlist. dlist is point or plot data or face data.
+\item[Return value] Data of the same type as the first argument.
+
+\vspace{\baselineskip}
+
+\hypertarget{rotate3d}{}
+\item[Function] rotate3d(dlist,vec,angle,center)
+\item[Description] Rotaate of dlist. dlist is point or plot data or face data.
+\item[Return value] Data of the same type as the first argument.
+
+
+\hypertarget{translate3d}{}
+\item[Function] rotate3d(dlist,vec,angle,center)
+\item[Description] Translate of dlist. dlist is point or plot data or face data.
+\item[Return value] Data of the same type as the first argument.
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\vspace{\baselineskip}
+\hypertarget{rotmatrix}{}
+\item[Function] rotmatrix(vec)
+\item[Description] Make rotation matrix from normal vectors.
+\item[Return value] List.
+
+\vspace{\baselineskip}
+
+\hypertarget{vertexrpolyhedron}{}
+\item[Function] vertexrpolyhedron(n)
+\item[Description] Acquire a list of tops of the regular polyhedron
+\item[Description] The value of n is one of 4,6,8,12,20.
+\item[Return value] list of vertexs of the regular polyhedron that touches the spherical surface of radius 1 internally. The turn of the vertexs are as follows. It is alphabetical order each.
+
+\input{3Dfig/vertex4} \input{3Dfig/vertex6}
+
+\input{3Dfig/vertex8} \input{3Dfig/vertex12}
+
+\input{3Dfig/vertex20}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{val2tex}{}\item[Function] val2tex(x)
+\item[Description] Analyze numerical values with guess ()
+\item[Return value] TeX character string.
+
+Example
+\begin{verbatim}
+ pa=[2,0,0];
+ pb=[0,2,0];
+ pc=[0,0,2];
+ nv=normalvec(pa,pb,pc);
+ hv=distpp(pa,pb,pc,[0,0,0])*nv;
+ hvstr=apply(hv,val2tex(#));
+ plate3d("1",[pa,pb,pc],["Color=skyblue","Rayoff"]);
+ poly3d("1",[pa,pb,pc]);
+ arrow3d("1",[[0,0,0],hv],["size=2"]);
+ letter3d([pa,"s2",text(pa_1),pb,"s2",text(pb_2),pc,"w2",text(pc_3),
+ hv,"ne2","H$\left( "+hvstr_1+","+hvstr_2+","+hvstr_3+" \right)$"]);
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\end{description}
+\newpage
+
+%Section 4 Drawing =========================================
+\section{Drawing}
+
+\textbf{options}
+
+<Density of the mesh> The curved surface is described in mesh. This options appoints the number of process lines of this time.
+
+The density of the mesh is appointed like "Mesh=[10,15]".
+
+<Concentration>The concentration is appointed with real numbers from 0 to 1.
+
+\textbf{<Ray tracing>}
+
+Specify whether to add shadows in ray tracing. When shadowing "Rayon", do not shade when "Rayoff". The default setting is "Rayon"
+
+%\newpage
+\begin{description}
+
+\hypertarget{grid}{}
+\item[Function] grid(range1,range2,ne,option)
+\item[Description] Display grid on $ xy $ plane.
+\item[Description] Range 1 is the range of the $ x $ axis, and range 2 is the range of the $ y $ axis.
+\item[Return value] none.
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{line3d}{}
+\item[Function] line3d(name,list ,option)
+\item[Description] This function draws a lint linking two points in list of the argument.
+\item[Return value] list of 2nd argument.
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{arrow3d}{}
+\item[Function] arrow3d(name,list,option)
+\item[Description] This function draws an arrowed line by list of two points of coordinates.
+ \item[Return value] list of 2nd argument.
+
+\vspace{\baselineskip}
+ Example The next script draws an arrowed line linking two points of $(1,3,2), (-2,-1,-2)$.
+
+\hspace{10mm} \verb|arrow3d("1",[[1,3,2],[-2,-1,-2]])|
+
+ Example The next script draw a straight line via two points of $(1,3,2), (-2,-1,-2)$ with 2 thickness red.
+
+\hspace{10mm} \verb|arrow3d("1",[[2,0,0],[-1,4,1]],[2,1,1,"dr,2","Color=red"])|
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{poly3d}{}
+\item[Function] poly3d(name,list,option)
+\item[Description] This function draws a polygon to link the point that I gave in list.
+ The point to give in list does not need to be closed. It is closed automatically and is drawn.
+\item[Return value] Plot data of the drawn polygon.
+
+ Example The next script draws a triangle to assume three points of $(1,1,1), (2,2,1),(0,1,-1)$ a top.
+\begin{verbatim}
+ pd=[[1,1,1],[2,2,1],[0,1,-1]];
+ poly3d("1",pd);
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{plate3d}{}
+\item[Function] plate3d(name,list,option)
+\item[Description] This function applies a polygon to link the point that I gave in list.
+\item[Return value] Plot data of the drawn polygon.
+
+With the Rayoff option, ray tracing is not performed.
+
+ Example : The next script applies a triangle to assume three points of $(1,1,1), (2,2,1),(0,1,-1)$ a top with red.
+\begin{verbatim}
+ pd=[[1,1,1],[2,2,1],[0,1,-1]];
+ plate3d("1",pd,["Color=Red"]);
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{circle3d}{}
+\item[Function] circle3d(name,center,normal vector,radius,option)
+\item[Description] This function gives the center, a radius and a normal vector and draws the circle.
+\item[Return value] Plotdata of circle.
+
+ Example : The next script describes the circle that central $(1,1,1)$, radius 2, a normal vector are (1,1,1) in thickness 2, red.\\
+
+\verb| circle3d("1",[1,1,1],[1,1,1],2,["dr,2","Color=Red"]); |
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{drawarc3d}{}
+\item[Function] drawarc3d(name,center,normal vector,radius,range,option)
+\item[Description] Draw an arc as a part of the circle drawn by giving the center, radius and normal vector.
+\item[Return value] Plotdata of arc.
+
+ Example : Draw arc with center $ (1,1,1) $, radius 2, normal vector (-1, 1, 1).
+
+\verb| drawarc3d("1",[1,1,1],[-1,1,1],2,[0,2*pi/3]); |
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{disc3d}{}
+\item[Function] disc3d(center,nomal vector,radius,options)
+\item[Description] This function gives the center, a radius and a normal vector and draws a disk.
+\item[Return value] Plotdata of circle.
+
+With the Rayoff option, ray tracing is not performed.
+
+ Example : The next script draws the disk that central $(1,1,1)$, radius 2, a normal vector are (1,1,1) at red\\
+
+ \verb| disc3d("1",[1,1,1],[1,1,1],2,["Color=Red"]); |
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{drawsphere}{}
+\item[Function] drawsphere(name,center,radius,opton)
+\item[Description] This function describes the origin center, draw spherical surface of radius r.
+
+Draw a spherical surface with gradation by using simple ray tracing. The spheres are divided into meshes and coloring is done.
+
+The radius can also be specified as a list for the x axis, y axis, z axis direction.
+
+Drawing takes time. If it takes too much time, try drawing with "Mesh = [10, 10]" as an option. If you can draw it, make the mesh finer. The initial value is "Mesh = [30, 20]".
+
+\item[Return value] none
+
+\vspace{\baselineskip}
+Example : Origin center, spherical surface with radius 2 (left figure)
+
+\verb|drawsphere("1",[0,0,0],2) |
+
+Draw a sphere with an ellipse shape in green (0, 0, 2) and a radius [1, 1, 2] in green ( right figure)
+
+\verb|drawsphere("1",[0,0,2],[1,1,2],["Color=green","Mesh=[20,20]"])|
+
+ \input{3Dfig/sphere01} \hspace{10mm} \input{3Dfig/sphere02}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{quasisphere}{}
+\item[Function] quasisphere(name,center,radius,fill,opton)
+\item[Description] This function describes the origin center, draw a quasi spherical surface of radius r.
+
+fill is a flag indicating whether or not to color. If it is 1, it paints. If 0 it does not paint. This argument can be omitted. The default is 1.
+
+\item[Return value] Plotdata of circle.
+
+\vspace{\baselineskip}
+Example \verb|quasisphere("1",[0,0,1],1]);|
+
+ \input{3Dfig/sphere03}
+
+It is faster than drawing with Sfbdparadata () and ExeccmdC () because it does not handle hidden lines. By using this, if you make a script like the following, you can see that pseudo sphere is sufficient.
+
+\begin{verbatim}
+pd1=quasisphere("1",[0,0,0],2,["nodisp"]);
+pd2=circle3d("1",[0,0,0],[0,1,sqrt(3)],2,["nodisp"]);
+pd3=circle3d("2",[0,0,-1],[0,0,1],sqrt(3),["nodisp"]);
+sp=apply(pd1,map2d(#));
+su1=apply(pd2,map2d(#));
+su2=apply(pd3,map2d(#));
+Listplot("1",sp,["nodisp"]);
+Listplot("2",su1);
+Listplot("3",su2,["Color=blue"]);
+int1=Intersectcrvs("sg1","sg2");
+int2=Intersectcrvs("sg1","sg3");
+println(int1);
+println(int2);
+p1=int1_1;
+p2=int1_2;
+p3=int2_1;
+p4=int2_2;
+Partcrv("1", p2, p1, "sg1");
+Partcrv("2", p3, p4, "sg3",["nodisp"]);
+Partcrv("3", p4, p3, "sg1",["nodisp"]);
+Joincrvs("1",["part2","part3"],["nodisp"]);
+Shade(["join1"],["Color=[0.2,0,0,0]"]);
+\end{verbatim}
+
+ \input{3Dfig/sphere04} \hspace{10mm} \input{3Dfig/sphere05}
+
+When this script is executed, the number of intersection points int 1 and int 2 changes according to the viewpoint, so it is necessary to look at what is displayed on the console and set \verb | p1, p2, p3, p4 |.
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{polyhedron}{}
+\item[Function] polyhedron(name,face data,option)
+\item[Description] Drawing a polyhedron with colored surfaces.
+\item[Return value] face data.
+
+With the Rayoff option, ray tracing is not performed.
+
+\vspace{\baselineskip}
+ Example : Cube ABCD - EFGH is drawn in green with the plane cut through B, D and G.
+
+\hspace{30mm}\input{3Dfig/polyhedron01}
+
+For the vertices B, C, D, G, make a surface list as follows.
+
+First, add numbers 1, 2, 3, 4 to vertices B, C, D and G.
+
+The plane BCG is B, C, G counterclockwise as seen from the outside, so [1, 2, 4]
+
+Since surface CDG is similarly C, D, G, [2, 3, 4]
+
+Since the planes DGB are similarly D, B, G, [3, 1, 4]
+
+Bottom BCD is B, D, C counterclockwise as seen from the outside [1, 3, 2]
+
+ Therefore, with the coordinates of B, C, D, G as p1, p2, p3, p4, make surface data \verb | fd | as follows.
+
+\begin{verbatim}
+ p1=[2,0,0];
+ p2=[2,2,0];
+ p3=[0,2,0];
+ p4=[2,2,2];
+ fd=[[p1,p2,p3,p4],[[1,2,4],[2,3,4],[3,1,4],[1,3,2]]];
+\end{verbatim}
+
+Using this surface data, the cone is drawn as follows
+
+ \verb| polyhedron("1",fd,["Color=Green"])|
+
+\hspace{30mm}\input{3Dfig/polyhedron02}
+
+Example : Draw polyhedron using polyhedrons obj polyhedron data by Kobayashi, Suzuki, Mitani.
+  Data is a regular polyhedron, semi-regular polyhedron, Johnson's solid,
+
+\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/index.html }
+
+Specify the path to the folder polyhedrons obj storing this data with \verb| Setdirectory () |, and read it with \verb | Readobj () |. For example, when placed in a work directory (fig folder)
+
+\begin{layer}{150}{0}
+\putnotese{90}{0}{\input{3Dfig/polyhedron03}}
+\end{layer}
+
+\begin{verbatim}
+ Setdirectory(Dirwork+"/polyhedrons_obj");
+ polydt=Readobj("s06.obj");
+ Setdirectory(Dirwork);
+ fd=[2*polydt_1,polydt_2];
+ polyhedron("1",fd);
+\end{verbatim}
+
+Note that \verb| fd = [2 * polydt - 1, polydt - 2] | doubles the vertex coordinates.
+
+If you are drawing an edge, add the following.
+
+\begin{verbatim}
+VertexEdgeFace("1",fd);
+Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{convexhedron}{}
+\item[Function] convexhedron(name,list ,magnification,option)
+\item[Description] Draw a convex polyhedron with a vertex list and a surface painted. Magnification is the magnification to the size actually drawn for the vertex list. If it is 1 it can be omitted.
+\item[Return value] face data
+
+\vspace{\baselineskip}
+Example : A convex polyhedron whose bottom is a pentagon
+\begin{verbatim}
+ th=2*pi/5;
+ pd=apply(1..5,[cos(#*th),sin(#*th),0]);
+ pd=pd++apply(1..5,[2*cos(#*th),2*sin(#*th),1]);
+ pd=append(pd,[0,0,2]);
+ println(pd);
+ fd=convexhedron("1",pd)
+\end{verbatim}
+\hspace{20mm}\input{3Dfig/convexhedron}
+
+If you are drawing an edge, use the return value as follows.
+
+\begin{verbatim}
+ fd=convexhedron("1",pd);
+ VertexEdgeFace("1",fd);
+ Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{rpolyhedron}{}
+\item[Function] rpolyhedron(name, number of face ,radius,option)
+\item[Description] Draw a regular polyhedron with a color-painted face.
+There are five kinds of regular polyhedrons, and data is incorporated in Spacekc. \hyperlink {rpolydata} {vertex coordinates of regular polyhedron}. Using this, you can draw a regular polyhedron by specifying the number of faces and the radius of the circumscribed sphere.
+\item[Return value] face data.
+
+\vspace{\baselineskip}
+ Example : Draw a regular dodecahedron painted with yellow face
+
+\verb| rpolyhedron("1",6,2,["Color=yellow"]);|
+
+\hspace{20mm}\input{3Dfig/rpolyhedron}
+
+If you are drawing an edge, use the return value as follows.
+\begin{verbatim}
+fd=rpolyhedron("1",12,2,["Color=yellow"]);
+VertexEdgeFace("1",fd);
+Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+
+
+\vspace{\baselineskip}
+Reference : Size of regular polyhedron
+
+In rpolyhedron (), draw with the size inscribed in the sphere of the specified radius. Here, the relationship between the radius and the side length is mentioned. $\phi=\cfrac{1+\sqrt{5}}{2}$
+
+ \input{3Dfig/rpolytable}
+
+Example : Draw a regular hexahedron with a side length of 2
+\begin{verbatim}
+ rpolyhedron(6,sqrt(3),["dr,2"]);
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+
+\hypertarget{rfrustum}{}
+\item[Function] frustum(name,n,r1,r2,h,option)
+\item[Description] Put the face of a regular pyramid.
+n : Number of corners
+
+r1,r2 : Radius of the circumscribed circle of the upper base and the lower base
+
+h : height
+
+\vspace{\baselineskip}
+ ExampleDraw a regular hexagonal pyramid
+
+\verb| frustum("1",6,1,2,3,["Color=yellow"]);|
+
+\hspace{20mm}\input{3Dfig/frustum01}
+
+If you are drawing an edge, use the return value as follows.
+
+\begin{verbatim}
+ fd=frustum("1",6,1,2,3,["Color=yellow"]);
+ VertexEdgeFace("1",fd);
+ Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+
+ Example :
+
+\begin{verbatim}
+ fd=frustum("1",6,0,2,3,["Color=yellow"]);
+ VertexEdgeFace("1",fd);
+ Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+
+\hspace{20mm}\input{3Dfig/frustum02}
+
+ Example : It becomes almost a cone when increasing the number of corners. The contour line is drawn as a curved surface with Sfbdparadata.
+
+\begin{layer}{150}{0}
+\putnotese{90}{0}{\input{3Dfig/frustum03}}
+\end{layer}
+
+\begin{verbatim}
+ frustum("1",108,0,2,4,["Color=yellow"]);
+ fd=[
+ "p",
+ "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",
+ "r=[0,2]","t=[0,2*pi]","e"
+ ];
+ Startsurf();
+ Sfbdparadata("1",fd);
+ ExeccmdC("1");
+\end{verbatim}
+
+If it is the same size of the upper base and the lower base, it becomes a cylinder.
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$Function] list}\end{flushright}
+
+\hypertarget{hatch3d}{}\item[Function] hatch3d(name,æ–¹å‘,PD,option)
+\item[Description] Hatch the closed curve. The closed curve is such as poly3d (), circle3d ();
+Unlike KeTCindy 's Hatchdata (), only the closed curve is the target, so the direction is not in the argument. A color designation can be put in option, and if there is a color designation, hatch is applied with that color. You can not hatch multiple areas.
+\item[Return value] none
+
+Example : Hatch the circle.
+\begin{verbatim}
+ pd=circle3d("1",[1,1,1],[1,1,1],2,["dr,2"]);
+ hatch3d("1",pd,["Color=red"]);
+\end{verbatim}
+
+ \input{3Dfig/hatch1}
+
+\newpage
+\end{description}
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceJ.tex
new file mode 100644
index 00000000000..8895afad7f4
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceJ.tex
@@ -0,0 +1,831 @@
+\documentclass[papersize,a4paper,12pt,uplatex]{jsarticle}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,newtxmath}
+\usepackage[dvipdfmx]{graphicx,color}
+\usepackage{wrapfig}
+\usepackage[dvipdfmx,bookmarks=false,colorlinks=true,linkcolor=blue]{hyperref}
+\setmargin{20}{20}{15}{25}
+
+\begin{document}
+\title{Spacekc リファレンスマニュアル}
+\author{CinderellaJapan}
+\maketitle
+
+\tableofcontents
+
+\newpage
+
+%第1節 åº =======================================
+\section{ã¯ã˜ã‚ã«}
+Spacekc ã¯ï¼ŒKeTCindyã®ãŸã‚ã®SpaceCindyã§ã‚る。KeTCindyã®ï¼“Dグラフィクスã«ï¼Œç°¡æ˜“レイトレーシングã§è‰²ä»˜ã‘ã‚’ã™ã‚‹ã“ã¨ãŒã§ãる。ã¾ãŸï¼ŒKeTCindyã§æä¾›ã—ã¦ã„ãªã„,空間ã«é–¢ã™ã‚‹è¨ˆç®—ã®ãŸã‚ã®ã„ãã¤ã‹ã®é–¢æ•°ã‚’用æ„ã—ã¦ã„る。é…布ã¯ãƒ©ã‚¤ãƒ–ラリã§ã¯ãªã,スクリプトを記述ã—ãŸãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚ã‚‹ã„ã¯Cinderellaã®ãƒ•ã‚¡ã‚¤ãƒ«ã§è¡Œã£ã¦ã„る。
+
+ãªãŠï¼ŒSpaceCindykcを用ã„ãŸä½œå›³ã€ä¾‹ã€‘ã¨é…布ã¯ï¼ŒKeTCindy ã®ãƒšãƒ¼ã‚¸ã«æŽ²è¼‰ã—ã¦ã„る。アドレスã¯ä»¥ä¸‹ã®é€šã‚Šã€‚
+
+\hspace{10mm} \url{https://sites.google.com/site/KETCindy/home/cindy3d2}
+
+%第2節 定数 ==========================================
+\section{定数}
+
+\begin{description}
+\hypertarget{rpolydata}{}
+\item[正多é¢ä½“ã®é ‚点座標] Rpolydata
+\item[説明] 正多é¢ä½“ã®é ‚点ã®ãƒªã‚¹ãƒˆã€‚内容ã¯ï¼ŒÏ†=$\cfrac{1+\sqrt{5}}{2}$ を黄金比ã¨ã—ã¦æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„る。
+
+正四é¢ä½“:$(0,0,1),\left(\cfrac{2\sqrt{2}}{3},0,-\cfrac{1}{3} \right),\left(-\cfrac{\sqrt{2}}{3},\cfrac{\sqrt{6}}{3},-\cfrac{1}{3} \right),\left(-\cfrac{\sqrt{2}}{3},\cfrac{\sqrt{6}}{3},-\cfrac{1}{3}\right)$
+
+正六é¢ä½“:$(-1,-1,1),(1,-1,1),(1,1,1),(-1,1,1),(-1,-1,-1),(1,-1,-1),(1,1,-1),(-1,1,-1)$
+
+正八é¢ä½“:$(0,0,1),(0,-1,0),(1,0,0),(0,1,0),(-1,0,0),(0,0,-1)$
+
+æ­£å二é¢ä½“:$(0,-1,-φ^2),(0,1,-φ^2),(0,-1,φ^2),(0,1,φ^2),(-1,-φ^2,0),(1,-φ^2,0) $
+
+\hspace{15mm} $ (-1,φ^2,0),(1,φ^2,0),(-φ^2,0,-1),(-φ^2,0,1),(φ^2,0,-1),(φ^2,0,1), $
+
+\hspace{15mm} $ (-φ,-φ,-φ),(-φ,-φ,φ),(-φ,φ,-φ),(-φ,φ,φ), $
+
+\hspace{15mm} $ (φ,-φ,-φ),(φ,-φ,φ),(φ,φ,-φ),(φ,φ,φ)$
+
+正二åé¢ä½“:$(0,-1,-φ),(0,1,-φ),(0,-1,φ),(0,1,φ),(-φ,0,-1),(-φ,0,1) $
+
+\hspace{15mm}$ (φ,0,-1),(φ,0,1),(-1,-φ,0),(1,-φ,0),(-1,φ,0),(1,φ,0)$
+
+\vspace{\baselineskip}
+\hypertarget{lightpoint}{}
+\item[å…‰æºã®æ–¹å‘ベクトル] Lightpoint
+\item[説明] 簡易レイトレーシングを行ã†å ´åˆã®å…‰æºã®æ–¹å‘ベクトル。åˆæœŸè¨­å®šã¯[-1,1,1]
+
+\vspace{\baselineskip}
+\hypertarget{contrast}{}
+\item[コントラスト] Contrast
+\item[説明] 簡易レイトレーシングを行ã†å ´åˆã®ï¼Œå…‰ã®ã‚ãŸã‚Šæ–¹ã®ã‚³ãƒ³ãƒˆãƒ©ã‚¹ãƒˆã€‚標準ã¯0以上1以下ã®å®Ÿæ•°ã€‚1を超ãˆã¦ã‚‚よã„ãŒï¼Œé»’ã„部分ãŒå¤šããªã‚‹ã€‚æ画関数㮠option ã§è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。
+
+
+\end{description}
+\newpage
+%第3節 値ã®å–å¾— ==========================================
+\section{値ã®å–å¾—}
+\begin{description}
+
+\hypertarget{angle3pt}{}
+\item[関数] angle3pt(座標1,座標2, 座標3)
+\item[機能] å¹³é¢ä¸Šã§è§’を求ã‚ã‚‹
+\item[戻り値] 点 p1,p2,p3 ã«å¯¾ã—,∠p1p2p3ã‚’è¿”ã™
+
+\vspace{\baselineskip}
+
+\hypertarget{pointindomain}{}
+\item[関数] pointindomain(座標1,点リスト)
+\item[機能] å¹³é¢ä¸Šã§ç‚¹ãƒªã‚¹ãƒˆã®é–‰æ›²ç·šå†…ã«åº§æ¨™ï¼‘ã®ç‚¹ãŒã‚ã‚‹ã‹ã©ã†ã‹ã®åˆ¤å®š
+\item[戻り値] 領域内ãªã‚‰ï¼‘,領域外ãªã‚‰ï¼ï¼Œå¢ƒç•Œç·šä¸Šãªã‚‰ï¼’ã‚’è¿”ã™ã€‚
+
+\vspace{\baselineskip}
+
+\hypertarget{crosssd}{}
+\item[関数] crosssd(座標1,座標2,座標3,座標4)
+\item[機能] 座標平é¢ã«ãŠã„ã¦ï¼’本ã®ç·šåˆ†ã‹äº¤ã‚ã‚‹ã‹ã©ã†ã‹ã‚’判断ã™ã‚‹
+\item[説明] 座標1,座標2をçµã¶ç·šåˆ†ã¨ï¼Œåº§æ¨™ï¼“,座標4をçµã¶ç·šåˆ†ãŒäº¤ã‚ã‚‹ã‹ã©ã†ã‹ï¼ˆå…±æœ‰ç‚¹ã‚’æŒã¤ã‹ã©ã†ã‹ï¼‰ã‚’判定ã™ã‚‹ã€‚
+\item[戻り値] 交点ãŒã‚ã‚‹å ´åˆã¯ true ,ãªã„å ´åˆã¯ false ã‚’è¿”ã™ã€‚
+
+\vspace{\baselineskip}
+
+\hypertarget{interll}{}
+\item[関数] interll(座標1,座標2,座標3,座標4)
+\item[機能] 座標空間ã«ãŠã„ã¦ï¼’本ã®ç›´ç·šã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹
+\item[戻り値] 座標1,座標2を通る直線ã¨ï¼Œåº§æ¨™ï¼“,座標4を通る直線ã¨ã®äº¤ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚
+交点ãŒãªã„å ´åˆã¯ [i,i,i] ã‚’è¿”ã™ã€‚
+
+\vspace{\baselineskip}
+
+\hypertarget{interss}{}
+\item[関数] interss(座標1,座標2,座標3,座標4)
+\item[機能] 座標空間ã«ãŠã„ã¦ï¼’本ã®ç·šåˆ†ã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹
+\item[戻り値] 座標1,座標2をçµã¶ç·šåˆ†ã¨ï¼Œåº§æ¨™ï¼“,座標4をçµã¶ç·šåˆ†ã¨ã®äº¤ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚
+ 交点ãŒãªã„å ´åˆã¯ [i,i,i] ã‚’è¿”ã™ã€‚
+
+\vspace{\baselineskip}
+\hypertarget{interpl}{}
+\item[関数] interpl(座標1,座標2,座標3,座標4,座標5)
+\item[機能] 座標空間ã«ãŠã„ã¦å¹³é¢ã¨ç›´ç·šã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹
+\item[戻り値] 座標1,座標2,座標3ã§æ±ºã¾ã‚‹å¹³é¢ã¨ï¼Œåº§æ¨™ï¼”,座標5を通る直線ã¨ã®äº¤ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚
+ 交点ãŒãªã„å ´åˆã¯ [i,i,i] ã‚’è¿”ã™ã€‚
+
+\vspace{\baselineskip}
+\hypertarget{interps}{}
+\item[関数] interps(座標1,座標2,座標3,座標4,座標5)
+\item[機能] 座標空間ã«ãŠã„ã¦å¹³é¢ã¨ç·šåˆ†ã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹
+\item[戻り値] 座標1,座標2,座標3ã§æ±ºã¾ã‚‹å¹³é¢ã¨ï¼Œåº§æ¨™ï¼”,座標5を通る線分ã¨ã®äº¤ç‚¹ã®åº§æ¨™ã‚’è¿”ã™ã€‚
+交点ãŒãªã„å ´åˆã¯ [i,i,i] ã‚’è¿”ã™ã€‚
+
+
+\hypertarget{distlp}{}
+\item[関数] distlp(座標1,座標2, 座標3)
+\item[機能] ç›´ç·šã¨ç‚¹ã®è·é›¢ã‚’求ã‚る。(distance of line to point)
+\item[説明] 座標1,座標2を通る直線ã¨ï¼Œåº§æ¨™ï¼“ã®ç‚¹ã¨ã®è·é›¢ã‚’求ã‚る。
+\item[戻り値] è·é›¢ã€‚
+
+ å¹³é¢ä¸Šã®ç‚¹ã§ã‚‚空間ã®ç‚¹ã§ã‚‚よã„。座標1ã¨åº§æ¨™ï¼’ãŒç­‰ã—ã„ã¨ãã¯è™šæ•°å˜ä½ i ã‚’è¿”ã™ã¨ã¨ã‚‚ã«ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è­¦å‘Šã€ŒWarning:p1 is same to p2ã€ã‚’表示ã™ã‚‹ã€‚
+2点をçµã¶ç›´ç·šã®ãƒ™ã‚¯ãƒˆãƒ«æ–¹ç¨‹å¼ $x=x_1+t(x_2-x_1) , y=y_1+t(y_2-y_1)$ を用ã„,
+内ç©=ï¼ã‹ã‚‰ t を求ã‚è·é›¢ã‚’計算ã—ã¦ã„る。
+ åž‚ç·šã®è¶³ã®ä½ç½®ãƒ™ã‚¯ãƒˆãƒ«ã‚’$h(x,y)$ ã¨ã™ã‚‹ã¨ï¼Œ
+
+ $(\vec{h}-\vec{p3})・(\vec{p2}-\vec{p1})=0$
+
+ ã‹ã‚‰
+
+ $t=\dfrac{(\vec{p2}-\vec{p1})・(\vec{p3}-\vec{p1})}{|\vec{p2}-\vec{p1}|^2}$
+
+ を得る。
+
+ã€ä¾‹ã€‘ println(distlp([1,0],[0,1],[0,0]));
+
+ã§$\cfrac{\sqrt{2}}{2}$ ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚ãªãŠï¼Œplintln() ã«ã‚ˆã‚Šï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã¯ 0.71 ãŒè¡¨ç¤ºã•ã‚Œã‚‹ãŒï¼Œå†…部的ã«ã¯å››æ¨äº”å…¥ã—ãŸå€¤ã§ã¯ãªã„ã®ã§
+
+ println(guess(distlp([1,0],[0,1],[0,0])));
+
+ã¨ã™ã‚‹ã¨ï¼Œ1/2*sqrt(2) ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚
+
+ã€ä¾‹ã€‘ println(distlp([1,1,0],[0,0,1],[0,0,0])); ã§$\cfrac{\sqrt{6}}{3}$ ãŒè¡¨ç¤ºã•ã‚Œã‚‹ã€‚ãªãŠï¼Œplintln() ã«ã‚ˆã‚Šï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã¯ 0.82 ãŒè¡¨ç¤ºã•ã‚Œã‚‹ãŒï¼Œå†…部的ã«ã¯å››æ¨äº”å…¥ã—ãŸå€¤ã§ã¯ãªã„ã®ã§
+ println(guess(distlp([1,1,0],[0,0,1],[0,0,0])));
+ã¨ã™ã‚‹ã¨ï¼Œ1/3*sqrt(6) ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã€‚
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+\hypertarget{distpp}{}
+\item[関数] distpp(座標1,座標2, 座標3, 座標4)
+\item[機能] 座標空間ã§ï¼“点を通る平é¢ã¨ç‚¹ã®è·é›¢ã‚’求ã‚る。
+\item[説明] 座標1,座標2,座標3を通る平é¢ã¨ï¼Œåº§æ¨™ï¼”ã®ç‚¹ã¨ã®è·é›¢ã‚’求ã‚る。
+\item[戻り値] è·é›¢
+
+ã€ä¾‹ã€‘ 3点 (2,0,0),(0,2,0),(0,0,2) を通る平é¢ã¨ï¼ŒåŽŸç‚¹ã¨ã®è·é›¢
+
+ distpp([2,0,0],[0,2,0],[0,0,2],[0,0,0]); 戻り値㯠$\cfrac{2\sqrt{3}}{3}$
+
+\vspace{\baselineskip}
+\hypertarget{map2d}{}
+\item[関数] map2d(座標)
+\item[機能] 座標空間ã®ç‚¹ã‚’ç¾åœ¨ã®åº§æ¨™å¹³é¢ã«å°„å½±ã—ãŸç‚¹ã®åº§æ¨™ã‚’求ã‚る。
+\item[説明] 「ç¾åœ¨ã®ã€ã¨ã¯ï¼Œã‚¹ãƒ©ã‚¤ãƒ€ã§è¨­å®šã•ã‚ŒãŸè»¸è¨­å®šï¼ˆè¦–点)ã«ã‚ˆã‚‹ç”»é¢ã®ã“ã¨ã‚’指ã™ã€‚
+
+ã€ä¾‹ã€‘ pt=map2d([1,2,3]);
+
+ãªãŠï¼ŒKeTCindyã® Parapt() ã¨å…¨ãåŒã˜ã€‚
+
+\item[戻り値] å¹³é¢åº§æ¨™
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{normalvec}{}
+\item[関数] normalvec(座標1,座標2, 座標3)
+\item[機能] 3点を通る平é¢ã®å˜ä½æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã‚’求ã‚る。
+\item[説明] 座標1,座標2,座標3を通る平é¢ã®å˜ä½æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã‚’求ã‚る。
+\item[戻り値] 法線ベクトルを表ã™ãƒªã‚¹ãƒˆã€‚
+
+ ベクトルã®å‘ãã¯ï¼Œç‚¹ã®é †åºã«ã‚ˆã‚‹ã€‚
+
+ã€ä¾‹ã€‘ normalvec([2,0,0],[0,2,0],[0,0,2]); ã®çµæžœã¯ $\left(\cfrac{\sqrt{3}}{3},\cfrac{\sqrt{3}}{3},\cfrac{\sqrt{3}}{3}\right)$
+
+ normalvec([2,0,0],[0,0,2],[0,2,0]); ã®çµæžœã¯ $\left(-\cfrac{\sqrt{3}}{3},-\cfrac{\sqrt{3}}{3},-\cfrac{\sqrt{3}}{3}\right)$
+
+å¹³é¢ã¨ç‚¹ã®è·é›¢ã‚’求ã‚ã‚‹ distpp() を組ã¿åˆã‚ã›ã‚‹ã¨ï¼Œå¹³é¢ã«ä¸‹ã—ãŸåž‚ç·šã®ãƒ™ã‚¯ãƒˆãƒ«ã‚’表示ã§ãる。
+\begin{verbatim}
+ nv=normalvec([2,0,0],[0,2,0],[0,0,2]);
+ dd=distpp([2,0,0],[0,2,0],[0,0,2],[0,0,0]);
+ poly3d("1",[[2,0,0],[0,2,0],[0,0,2]]);
+ arrow3d("1",[[0,0,0],dd*nv]);
+ Letter3d([dd*nv,"e","H"]);
+\end{verbatim}
+
+ \input{3Dfig/nomalvec01}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{onsameplane}{}
+\item[関数] onsameplane(pa,pb,pc,pd)
+\item[機能] 4点ãŒåŒä¸€å¹³é¢ä¸Šã«ã‚ã‚‹ã‹ã©ã†ã‹ã®åˆ¤å®š
+\item[説明] 引数ã¯åˆ¤å®šã™ã‚‹ï¼”点ã®åº§æ¨™ã€‚外ç©ã¨å†…ç©ã‚’用ã„ãŸåˆ¤å®šæ³•ã«ã‚ˆã‚‹ 。
+\item[戻り値] true / false
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+\hypertarget{perp}{}
+\item[関数] perp(座標1,座標2, 座標3)
+\item[機能] 2点を通る直線ã¸ã®åž‚ç·šã®è¶³ã®åº§æ¨™ã‚’求ã‚る。
+\item[戻り値] 座標1,座標2ã®ï¼’点を通る直線ã«ï¼Œåº§æ¨™ï¼“ã®ç‚¹ã‹ã‚‰ä¸‹ã—ãŸåž‚ç·šã®è¶³ã®åº§æ¨™ã‚’è¿”ã™ã€‚
+
+\hypertarget{perpvec}{}
+\item[関数] perpvec(ベクトル,flag)
+\item[機能] ベクトルã«åž‚ç›´ãªå¹³é¢ã®åŸºæœ¬ãƒ™ã‚¯ãƒˆãƒ«ã‚’作る。
+\item[説明] 第1引数ã®ãƒ™ã‚¯ãƒˆãƒ«ã«åž‚ç›´ãªå¹³é¢ä¸Šã«ï¼’ã¤ã®ç›´äº¤ã™ã‚‹ãƒ™ã‚¯ãƒˆãƒ«ã‚’作り,リストã«ã—ã¦è¿”ã™ã€‚ã²ã¨ã¤ã¯ï¼Œzæˆåˆ†ã‚’1ã¨ã—ã¦è¨ˆç®—ã™ã‚‹ã€‚flag ã¯ã‚ªãƒ—ションã§ï¼Œ0ã«ã™ã‚‹ã¨å˜ä½ãƒ™ã‚¯ãƒˆãƒ«ã«ã—ãªã„。デフォルトã¯å˜ä½ãƒ™ã‚¯ãƒˆãƒ«ã€‚
+\item[戻り値] ベクトル。
+
+ã€ä¾‹ã€‘perpvec([1,1,1]) ã®çµæžœã¯ [[-0.8165,0.4082,0.4082],[0,-0.7071,0.7071]]
+
+ perpvec([1,1,1],0) ã®çµæžœã¯ [[-2,1,1],[0,-1,1]]
+
+\vspace{\baselineskip}
+
+\hypertarget{planecoeff}{}
+\item[関数] planecoeff(座標1,座標2, 座標3)
+\item[機能] 3点を通る平é¢ã®æ–¹ç¨‹å¼ã®ä¿‚数を求ã‚る。
+\item[説明] 座標1,座標2,座標3ã®ï¼“点を通る平é¢ã®æ–¹ç¨‹å¼ $ax+by+cz=1$ ã®ä¿‚æ•° $a,b,c$ を求ã‚る。
+\item[戻り値] リスト [a,b,c]。係数$a,b,c$ãŒå­˜åœ¨ã—ãªã„å ´åˆã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã€ŒWarning! Cannot decide a coefficient.ã€ã‚’表示ã—,[i,i,i] ã‚’è¿”ã™ã€‚
+
+
+\vspace{\baselineskip}
+
+\hypertarget{reflect3d}{}
+\item[関数] reflect3d(dlist,mirror)
+\item[機能] dlistã®é¡åƒã‚’å¾—ã‚‹
+\item[説明] 第1引数ã¯ï¼Œç‚¹ï¼Œãƒ—ロットデータ,é¢ãƒ‡ãƒ¼ã‚¿ã®ã„ãšã‚Œã‹ã€‚第2引数ã®åº§æ¨™ãƒªã‚¹ãƒˆãŒï¼Œ1ã¤ã®ç‚¹ã ã‘ãªã‚‰ï¼Œç‚¹å¯¾ç§°ï¼Œ2ã¤ã®ç‚¹ãªã‚‰ï¼Œãã® 2点をçµã¶ç›´ç·šã«é–¢ã™ã‚‹å¯¾ç§°ç‚¹ï¼Œ3ã¤ã®ç‚¹ãªã‚‰ï¼Œãã®3点ã§æ±ºã¾ã‚‹å¹³é¢ã«é–¢ã™ã‚‹å¯¾ç§°ç‚¹ã¨ãªã‚‹ã€‚
+\item[戻り値] 第1引数ã¨åŒã˜ã‚¿ã‚¤ãƒ—ã®ãƒ‡ãƒ¼ã‚¿
+
+KeTCindyã®Refrectdata3d() ã¨ã®é•ã„ã¯ï¼Œæ画をã—ãªã„ã“ã¨ï¼Œå¼•æ•°ãŒï¼Œç‚¹ï¼Œãƒ—ロットデータ,é¢ãƒ‡ãƒ¼ã‚¿ã®ã„ãšã‚Œã§ã‚‚よã„ã“ã¨ã§ã‚る。第2引数ã®å½¢ã¯åŒã˜ã€‚
+
+\vspace{\baselineskip}
+
+\hypertarget{rotate3d}{}
+\item[関数] rotate3d(dlist,vec,angle,center)
+\item[機能] dlistを指定ã—ãŸè§’ã ã‘centerを始点ã¨ã™ã‚‹ãƒ™ã‚¯ãƒˆãƒ«å‘¨ã‚Šã«å›žè»¢ã™ã‚‹ã€‚
+\item[説明] dlistã¯ç‚¹ï¼Œãƒ—ロットデータ,é¢ãƒ‡ãƒ¼ã‚¿ã®ã„ãšã‚Œã‹ã€‚
+\item[戻り値] dlistã¨åŒã˜å½¢å¼ã®ãƒ‡ãƒ¼ã‚¿ã€‚
+
+KeTCindyã®Rotatedata3d() ã¨ã®é•ã„ã¯ï¼Œæ画をã—ãªã„ã“ã¨ï¼Œå¼•æ•°ãŒï¼Œç‚¹ï¼Œãƒ—ロットデータ,é¢ãƒ‡ãƒ¼ã‚¿ã®ã„ãšã‚Œã§ã‚‚よã„ã“ã¨ã§ã‚る。ãã®ä»–ã®å¼•æ•°ã®å½¢å¼ã¯åŒã˜ã€‚
+
+ã€ä¾‹ã€‘ angle=[0,0,pi/4];
+ p=[1,0,0];
+ drawpt3d(rotate3d(p,angle));
+
+ ã«ã‚ˆã‚Šï¼Œç‚¹(1,0,0)ã‚’z軸回り㫠$\frac{\pi}{4}$ ã ã‘回転ã—ãŸä½ç½®ã«ç‚¹ã‚’打ã¤ã€‚
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{translate3d}{}
+\item[関数] translate3d(dlist,ベクトル)
+\item[機能] dlistを指定ã—ãŸãƒ™ã‚¯ãƒˆãƒ«ã ã‘平行移動。
+\item[説明] dlistã¯ç‚¹ï¼Œãƒ—ロットデータ,é¢ãƒ‡ãƒ¼ã‚¿ã®ã„ãšã‚Œã‹ã€‚
+\item[戻り値] dlistã¨åŒã˜å½¢å¼ã®ãƒ‡ãƒ¼ã‚¿
+
+KeTCindyã®Translatedata3d() ã¨ã®é•ã„ã¯ï¼Œæ画をã—ãªã„ã“ã¨ï¼Œå¼•æ•°ãŒï¼Œç‚¹ï¼Œãƒ—ロットデータ,é¢ãƒ‡ãƒ¼ã‚¿ã®ã„ãšã‚Œã§ã‚‚よã„ã“ã¨ã§ã‚る。ãã®ä»–ã®å¼•æ•°ã®å½¢å¼ã¯åŒã˜ã€‚
+
+\vspace{\baselineskip}
+\hypertarget{rotmatrix}{}
+\item[関数] rotmatrix(vec)
+\item[機能] 法線ベクトルã‹ã‚‰å›žè»¢è¡Œåˆ—を作る
+\item[説明] 引数ã¯æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã€‚ åˆã‚,法線ベクトルã¯[0,0,1]ã§ã‚ã‚‹ã¨ã™ã‚‹ã€‚ã“れを回転ã—ã¦ï¼Œå¼•æ•°ã® vec ã«ãªã‚‹ã‚ˆã†ãªå›žè»¢è¡Œåˆ—を求ã‚る。y軸周り,z軸周りã®é †ã«å›žè»¢ã™ã‚‹è¡Œåˆ—。
+\item[戻り値] 行列
+
+\vspace{\baselineskip}
+
+\hypertarget{vertexrpolyhedron}{}
+\item[関数] vertexrpolyhedron(n)
+\item[機能] æ­£né¢ä½“ã®é ‚点リストをå–å¾—ã™ã‚‹
+\item[説明] nã®å€¤ã¯4,6,8,12,20 ã®ã„ãšã‚Œã‹ã€‚
+\item[戻り値] åŠå¾„1ã®çƒé¢ã«å†…接ã™ã‚‹æ­£å¤šé¢ä½“ã®é ‚点リスト。
+頂点ã®é †ç•ªã¯æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„る。ãã‚Œãžã‚Œã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ã€‚
+
+\input{3Dfig/vertex4} \input{3Dfig/vertex6}
+\input{3Dfig/vertex8} \input{3Dfig/vertex12}
+\input{3Dfig/vertex20}
+
+ãªãŠï¼Œã‚¹ã‚¯ãƒªãƒ—ト内ã§ã¯ï¼Œæ¬¡ã®ã‚ˆã†ã«å®šç¾©ã•ã‚Œã¦ã„る。ã“れを,åŠå¾„1ã®çƒé¢ã«å†…接ã™ã‚‹ã‚ˆã†ã«å¤‰æ›ã—ã¦æˆ»ã‚Šå€¤ã¨ã—ã¦ã„る。
+
+φ=$\cfrac{1+\sqrt{5}}{2}$ ã¯é»„金比。
+
+正四é¢ä½“:$(0,0,1),\left(\cfrac{2\sqrt{2}}{3},0,-\cfrac{1}{3} \right),\left(-\cfrac{\sqrt{2}}{3},\cfrac{\sqrt{6}}{3},-\cfrac{1}{3} \right),\left(-\cfrac{\sqrt{2}}{3},\cfrac{\sqrt{6}}{3},-\cfrac{1}{3}\right)$
+
+正六é¢ä½“:$(-1,-1,1),(1,-1,1),(1,1,1),(-1,1,1),(-1,-1,-1),(1,-1,-1),(1,1,-1),(-1,1,-1)$
+
+正八é¢ä½“:$(0,0,1),(0,-1,0),(1,0,0),(0,1,0),(-1,0,0),(0,0,-1)$
+
+æ­£å二é¢ä½“:$(0,-1,-φ^2),(0,1,-φ^2),(0,-1,φ^2),(0,1,φ^2),(-1,-φ^2,0),(1,-φ^2,0) $
+
+\hspace{15mm}$ (-1,φ^2,0),(1,φ^2,0),(-φ^2,0,-1),(-φ^2,0,1),(φ^2,0,-1),(φ^2,0,1), $
+
+\hspace{15mm} $ (-φ,-φ,-φ),(-φ,-φ,φ),(-φ,φ,-φ),(-φ,φ,φ), $
+
+\hspace{15mm} $((φ,-φ,-φ),(φ,-φ,φ),φ,φ,-φ),(φ,φ,φ)$
+
+正二åé¢ä½“:$(0,-1,-φ),(0,1,-φ),(0,-1,φ),(0,1,φ),(-φ,0,-1),(-φ,0,1) $
+
+\hspace{15mm} $ (φ,0,-1),(φ,0,1),(-1,-φ,0),(1,-φ,0),(-1,φ,0),(1,φ,0)$
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{val2tex}{}\item[関数] val2tex(x)
+\item[機能] 数値をguess()ã§è§£æžã—ã¦ï¼Œåˆ†æ•°ï¼Œå¹³æ–¹æ ¹ã®TeXã®æ–‡å­—列ã«ã—ã¦è¿”ã™
+\item[説明] 分数,平方根ã§ãªã„å ´åˆã¯guess()ã®çµæžœã‚’ãã®ã¾ã¾è¿”ã™ã€‚
+ 計算çµæžœãŒåˆ†æ•°ã‚„平方根ã«ãªã‚‹å ´åˆã«ï¼Œã“ã®é–¢æ•°ã‚’é©ç”¨ã—,戻り値ã®å‰å¾Œã«ãƒ‰ãƒ«ãƒžãƒ¼ã‚¯ã‚’ã¤ã‘㦠drawtext()ã§è¡¨ç¤ºã™ã‚Œã°åˆ†æ•°ã‚„平方根ã®å½¢ã§è¡¨ç¤ºã•ã‚Œã‚‹ã€‚letter3d() ã§ã‚‚利用ã§ãる。ãŸã ã—,精度ã«ã‚ˆã£ã¦ã¯å¤‰æ›ã§ããªã„å ´åˆã‚‚ã‚る。
+
+\item[戻り値] TeXã®æ–‡å­—列
+
+ã€ä¾‹ã€‘:原点ã‹ã‚‰å¹³é¢ã«ä¸‹ã—ãŸåž‚ç·šã®è¶³ã®åº§æ¨™ã‚’計算ã—ã¦è¡¨ç¤ºã™ã‚‹ã€‚
+\begin{verbatim}
+ pa=[2,0,0];
+ pb=[0,2,0];
+ pc=[0,0,2];
+ nv=normalvec(pa,pb,pc);
+ hv=distpp(pa,pb,pc,[0,0,0])*nv;
+ hvstr=apply(hv,val2tex(#));
+ plate3d("1",[pa,pb,pc],["Color=skyblue","Rayoff"]);
+ poly3d("1",[pa,pb,pc]);
+ arrow3d("1",[[0,0,0],hv],["size=2"]);
+ letter3d([pa,"s2",text(pa_1),pb,"s2",text(pb_2),pc,"w2",text(pc_3),
+ hv,"ne2","H$\left( "+hvstr_1+","+hvstr_2+","+hvstr_3+" \right)$"]);
+\end{verbatim}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\end{description}
+\newpage
+%第4節 æç”» =========================================
+\section{æ画関数}
+
+\textbf{options}
+
+直線・曲線をæã関数ã®å¼•æ•°ã«ã¯åº§æ¨™ã®ä»–,オプションãŒã‚る。KeTCindyã®ã‚ªãƒ—ションã®ä»–,メッシュ密度,濃度,コントラスト,レイトレーシングã®æœ‰ç„¡ãŒæŒ‡å®šã§ãる。
+
+\textbf{<メッシュ密度>}
+
+曲é¢ã‚’æãã¨ã,網目状ã«ã—ã¦æã。ã“ã®ã¨ãã®çµŒç·¯ç·šã®æ•°ã€‚
+
+メッシュ密度指定ã¯ï¼Œ"Mesh=[10,15]" ã®ã‚ˆã†ã«ä¸Žãˆã‚‹ã€‚
+
+\textbf{<濃度>}
+
+濃度ã¯ï¼ã‹ã‚‰ï¼‘ã¾ã§ã®å®Ÿæ•°ã€‚"Alpha=n" ã§ï¼Œnã¯ï¼ä»¥ä¸Šï¼‘以下。ãŸã¨ãˆã°ï¼Œ"Alpha=0.4"。åˆæœŸè¨­å®šã¯ 0.3。
+
+ãªãŠï¼Œã€ŒAlphaã€ã¯ï¼ŒCindyScriptã®ã€Œé€æ˜Žåº¦ã€ã¨åŒã˜èªžã§ã‚ã‚‹ãŒï¼Œã“ã“ã§ã¯ï¼Œæ¿ƒæ·¡ã‚’表ã—,1ã®ã¨ããŒæŒ‡å®šã—ãŸè‰²ã§ï¼Œï¼ã«è¿‘ã„ã¨ç™½ã«è¿‘ããªã‚‹ã€‚å‘ã“ã†å´ãŒé€ã‘ã¦è¦‹ãˆã‚‹ã‚ˆã†ã«ãªã‚‹ã‚ã‘ã§ã¯ãªã„。
+
+\textbf{<レイトレーシング>}
+
+レイトレーシングã§é™°å½±ã‚’ã¤ã‘ã‚‹ã‹ã©ã†ã‹ã®æŒ‡å®šã€‚"Rayon" ã®ã¨ãé™°ã‚’ã¤ã‘,"Rayoff" ã®ã¨ãã¯é™°å½±ã‚’ã¤ã‘ãªã„。åˆæœŸè¨­å®šã¯ "Rayon"
+
+\textbf{<éžè¡¨ç¤ºï¼ž}
+
+戻り値ãŒãƒ—ロットデータã®æ画関数ã§ï¼Œãƒ—ロットデータã ã‘ã‚’å–å¾—ã—ãŸã„å ´åˆã«ï¼ŒKeTCindyã¨åŒæ§˜ï¼Œ"nodisp" オプションをã¤ã‘る。
+
+\vspace{\baselineskip}
+\textbf{æ画関数ã®æˆ»ã‚Šå€¤}
+
+ æ画関数ã®å¹¾ã¤ã‹ã«ã¯æˆ»ã‚Šå€¤ãŒã‚る。ãã‚Œãžã‚Œã®é–¢æ•°ã®èª¬æ˜Žã‚’å‚ç…§ã®ã“ã¨ã€‚
+
+%\newpage
+\begin{description}
+
+\hypertarget{grid}{}
+\item[関数] grid(範囲1,範囲2,本数,option)
+\item[機能] $xy$å¹³é¢ã«æ–¹çœ¼ã‚’表示ã™ã‚‹ã€‚
+\item[説明] 範囲1ã¯$x$軸ã®ç¯„囲,範囲2ã¯$y$軸ã®ç¯„囲。
+\item[戻り値] ãªã—
+
+本数ã¯ï¼Œå˜ä½(1目盛)ã‚ãŸã‚Šã®æœ¬æ•°ã€‚
+
+色,太ã•ãªã©ï¼Œé€šå¸¸ã®optionãŒæœ‰åŠ¹ã€‚
+
+引数,optionã¨ã‚‚ãªã—ã§ï¼Œgrid() ã¨ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ï¼Œãã®å ´åˆã¯ï¼Œç¯„囲をsetaxis() ã§æŒ‡å®šã—ãŸç¯„囲ã¨ã—,å˜ä½ã‚ãŸã‚Š1本ã¨10本ã®æ–¹çœ¼ã‚’æã。
+
+方眼ã¯æç”»é¢ã ã‘ã§ï¼ŒTeXã«ã¯å‡ºåŠ›ã•ã‚Œãªã„。
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{line3d}{}
+\item[関数] line3d(name,座標リスト ,option)
+\item[機能] 2点をçµã¶ç›´ç·šã‚’æã
+\item[説明] 2点ã®åº§æ¨™ã‚’リストã§ä¸Žãˆã¦ï¼Œï¼“次元空間ã«ç›´ç·šã‚’表示ã™ã‚‹ã€‚
+\item[戻り値] 2点ã®åº§æ¨™ãƒªã‚¹ãƒˆã‚’ãã®ã¾ã¾è¿”ã™ã€‚
+
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{arrow3d}{}
+\item[関数] arrow3d(name,座標リスト ,option)
+\item[機能] 2点をçµã¶çŸ¢ç·šã‚’æã
+\item[説明] 2点ã®åº§æ¨™ã®ãƒªã‚¹ãƒˆã‚’与ãˆã¦ï¼Œï¼“次元空間ã«çŸ¢ç·šã‚’表示ã™ã‚‹ 。
+ option ã¯ï¼Œcolor指定以外ã¯ï¼’次元㮠KeTCindy ã® Arrowdataã¨åŒæ§˜ã€‚
+ ãŸã ã—,矢ã˜ã‚Šã«ã¤ã„ã¦ã¯ï¼ŒCinderellaã®ç”»é¢ä¸Šã§ã¯å¤§ãã•ä»¥å¤–ã®ã‚ªãƒ—ションã¯å映ã•ã‚Œãªã„。
+ ã¾ãŸï¼ŒçŸ¢ã˜ã‚Šã«ã¤ã„ã¦ã®ã‚ªãƒ—ションã¯åˆã‚ã«æ›¸ãå¿…è¦ãŒã‚る。
+ \item[戻り値] 2点ã®åº§æ¨™ãƒªã‚¹ãƒˆã‚’ãã®ã¾ã¾è¿”ã™ã€‚
+
+\vspace{\baselineskip}
+ ã€ä¾‹ã€‘ 2点$(1,3,2) , (-2,-1,-2)$ ã‚’çµã¶çŸ¢ç·šã‚’表示ã™ã‚‹ã€‚
+
+\hspace{10mm} \verb|arrow3d("1",[[1,3,2],[-2,-1,-2]])|
+
+ ã€ä¾‹ã€‘ 矢ã˜ã‚Šã®å¤§ãã•ã‚’ï¼’ã«ã—ã¦ï¼Œå…¨ä½“を赤ã§æã。
+
+\hspace{10mm} \verb|arrow3d("1",[[2,0,0],[-1,4,1]],[2,1,1,"dr,2","Color=red"])|
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{poly3d}{}
+\item[関数] poly3d(name,座標リスト,option)
+\item[機能] 多角形をæã
+\item[説明] リストã§ä¸ŽãˆãŸç‚¹ã‚’çµã¶å¤šè§’形をæã。リストã§ä¸ŽãˆãŸç‚¹ãŒåŒä¸€å¹³é¢ä¸Šã«ãªãã¦ã‚‚ãれらã®ç‚¹ã‚’çµã‚“ã å›³å½¢ã‚’æã。リストã§ä¸Žãˆã‚‹ç‚¹ã¯é–‰ã˜ã¦ã„ãªãã¦ã‚‚よã„。自動的ã«é–‰ã˜ã¦æã。
+\item[戻り値] æç”»ã—ãŸå¤šè§’å½¢ã®ãƒ—ロットデータ。
+
+
+ ã€ä¾‹ã€‘ 3点$(1,1,1) , (2,2,1),(0,1,-1)$ を頂点ã¨ã™ã‚‹ä¸‰è§’形をæã。
+\begin{verbatim}
+ pd=[[1,1,1],[2,2,1],[0,1,-1]];
+ poly3d("1",pd);
+\end{verbatim}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{plate3d}{}
+\item[関数] plate3d(name,座標リスト,option)
+\item[機能] 多角形を色塗りã™ã‚‹
+\item[説明] リストã§ä¸ŽãˆãŸç‚¹ã‚’çµã¶å¤šè§’形を色塗りã™ã‚‹ã€‚ç¸å–ã‚Šã¯ã—ãªã„。
+\item[戻り値] 引数ã«ä¸ŽãˆãŸåº§æ¨™ãƒªã‚¹ãƒˆã‚’ãã®ã¾ã¾è¿”ã™
+
+ Rayoff オプションをã¤ã‘ã‚‹ã¨ï¼Œãƒ¬ã‚¤ãƒˆãƒ¬ãƒ¼ã‚·ãƒ³ã‚°ã‚’è¡Œã‚ãªã„。
+
+ ã€ä¾‹ã€‘:3点$(1,1,1) , (2,2,1),(0,1,-1)$ を頂点ã¨ã™ã‚‹ä¸‰è§’形を赤ã§å¡—ã‚‹
+\begin{verbatim}
+ pd=[[1,1,1],[2,2,1],[0,1,-1]];
+ plate3d("1",pd,["Color=Red"]);
+\end{verbatim}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{circle3d}{}
+\item[関数] circle3d(name,中心,法線ベクトル,åŠå¾„,option)
+\item[機能] 円をæã
+\item[説明] 中心,åŠå¾„ã¨æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã‚’与ãˆã¦å††ã‚’æã。
+\item[戻り値] 円ã®ãƒ—ロットデータ
+
+ ã€ä¾‹ã€‘:中心 $(1,1,1)$,åŠå¾„2,法線ベクトルãŒ(1,1,1)ã§ã‚る円を太ã•ï¼’,赤ã§æã。
+
+\verb| circle3d("1",[1,1,1],[1,1,1],2,["dr,2","Color=Red"]); |
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{drawarc3d}{}
+\item[関数] drawarc3d(name,中心,法線ベクトル,åŠå¾„,範囲,option)
+\item[機能] 弧をæã
+\item[説明] 中心,åŠå¾„ã¨æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã‚’与ãˆã¦æã円ã®ä¸€éƒ¨ã¨ã—ã¦å¼§ã‚’æã。
+
+円ã¯ï¼Œ$x=r \cos \theta,y=r \sin \theta$ ã§æã,法線ベクトルã§æ±ºã¾ã‚‹å›žè»¢è¡Œåˆ—ã§å›žè»¢ã—ã¦ã„る。
+
+\item[戻り値] 弧ã®ãƒ—ロットデータ
+
+ ã€ä¾‹ã€‘:中心 $(1,1,1)$,åŠå¾„2,法線ベクトルãŒ(-1,1,1)ã§ã‚る弧をæã。
+
+\verb| drawarc3d("1",[1,1,1],[-1,1,1],2,[0,2*pi/3]); |
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{disc3d}{}
+\item[関数] disc3d(name,中心,法線ベクトル,åŠå¾„,option)
+\item[機能] 中を色塗りã—ãŸå††ç›¤ã‚’æã
+\item[説明] 中心,åŠå¾„ã¨æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ã‚’与ãˆã¦å††ç›¤ã‚’æã。ç¸å–ã‚Šã¯ã—ãªã„。
+\item[戻り値] 円ã®ãƒ—ロットデータ
+
+ Rayoff オプションをã¤ã‘ã‚‹ã¨ï¼Œãƒ¬ã‚¤ãƒˆãƒ¬ãƒ¼ã‚·ãƒ³ã‚°ã‚’è¡Œã‚ãªã„。
+
+ ã€ä¾‹ã€‘:中心 $(1,1,1)$,åŠå¾„2,法線ベクトルãŒ(1,1,1)ã§ã‚る円盤を赤,é€æ˜Žåº¦0.4ã§æã。
+
+ \verb| disc3d("1",[1,1,1],[1,1,1],2,["Color=Red","Alpha=0.4"]); |
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{drawsphere}{}
+\item[関数] drawsphere(name,中心,åŠå¾„,opton)
+\item[機能] çƒé¢ã‚’æã
+\item[説明] 中心ã¨åŠå¾„を指定ã—ã¦çƒé¢ã‚’æã。
+çƒé¢ã‚’簡易レイトレーシングを用ã„ã¦ã‚°ãƒ©ãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’ã‹ã‘ã¦æã。 çƒé¢ã‚’網目状ã«åˆ†ã‘ã¦è‰²å¡—ã‚Šã‚’ã—ã¦ã„る。
+
+引数ã¯ï¼Œä¸­å¿ƒã®åº§æ¨™ï¼ŒåŠå¾„,option。
+
+åŠå¾„ã¯ï¼Œx軸,y軸,z軸方å‘ã«ã¤ã„ã¦ãƒªã‚¹ãƒˆã«ã—ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãる。
+
+æç”»ã«ã¯æ™‚é–“ãŒã‹ã‹ã‚‹ã€‚ã‚ã¾ã‚Šã«ã‚‚時間ãŒã‹ã‹ã‚Šã™ãŽã‚‹å ´åˆã¯ï¼Œ "Mesh=[10,10]" をオプションã«ã¤ã‘ã¦æç”»ã—ã¦ã¿ã‚‹ã€‚ã“ã‚Œã§æã‘ã‚Œã°ç·¨ã¿ç›®ã‚’ç´°ã‹ãã™ã‚‹ã€‚åˆæœŸå€¤ã¯"Mesh=[30,20]"。
+\item[戻り値] ãªã—
+
+\vspace{\baselineskip}
+ã€ä¾‹ã€‘原点中心,åŠå¾„ï¼’ã®çƒé¢ï¼ˆä¸‹å›³å·¦ï¼‰
+
+\verb|drawsphere("1",[0,0,0],2) |
+
+ 中心ãŒ(0,0,2),åŠå¾„㌠[1,1,2] :楕円形ã®çƒã‚’ç·‘ã§æã(下図å³ï¼‰
+
+\verb|drawsphere("1",[0,0,2],[1,1,2],["Color=green","Mesh=[20,20]"])|
+
+ \input{3Dfig/sphere01} \hspace{10mm} \input{3Dfig/sphere02}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{quasisphere}{}
+\item[関数] quasisphere(name,中心,åŠå¾„,fill,option)
+\item[機能] ç–‘ä¼¼çƒé¢ã‚’æã
+\item[説明] 中心ã¨åŠå¾„を指定ã—ã¦ç–‘ä¼¼çƒé¢ã‚’æã。
+座標軸を動ã‹ã—ã¦ã‚‚常ã«æ³•ç·šãƒ™ã‚¯ãƒˆãƒ«ãŒè¦–点をå‘ã„ãŸå††ã‚’æãã®ã§ï¼Œçƒé¢åŒæ§˜ã«è¦‹ãˆã‚‹ã€‚ã—ã‹ã—実際ã«ã¯é¢ã§ã¯ãªã„。 ã—ãŸãŒã£ã¦ï¼Œé™°ç·šå‡¦ç†ã¯ã—ãªã„。
+
+引数ã¯ï¼Œä¸­å¿ƒã®åº§æ¨™ï¼ŒåŠå¾„,fill , option。
+
+fill ã¯å¡—ã‚Šã¤ã¶ã™ã‹ã©ã†ã‹ã§ï¼Œ1ãªã‚‰å¡—ã‚Šã¤ã¶ã™ï¼ˆåˆæœŸå€¤ï¼‰ï¼Œ0 ãªã‚‰å¡—らãªã„。
+
+fill ã¯çœç•¥å¯èƒ½ã€‚
+
+\item[戻り値] 円ã®ãƒ—ロットデータ
+
+\vspace{\baselineskip}
+ã€ä¾‹ã€‘ \verb|quasisphere("1",[0,0,1],1,0]);|
+
+ \input{3Dfig/sphere03}
+
+陰線処ç†ã‚’ã—ãªã„分,Sfbdparadata() 㨠ExeccmdC() ã§æãより速ã„。ã“れを用ã„ã¦ï¼Œæ¬¡ã®ã‚ˆã†ãªã‚¹ã‚¯ãƒªãƒ—トを作るã¨ï¼Œç–‘ä¼¼çƒé¢ã§å分ã§ã‚ã‚‹ã“ã¨ãŒã‚ã‹ã‚‹ã€‚
+
+\begin{verbatim}
+pd1=quasisphere("1",[0,0,0],2,0,["nodisp"]);
+pd2=circle3d("1",[0,0,0],[0,1,sqrt(3)],2,["nodisp"]);
+pd3=circle3d("2",[0,0,-1],[0,0,1],sqrt(3),["nodisp"]);
+sp=apply(pd1,map2d(#));
+su1=apply(pd2,map2d(#));
+su2=apply(pd3,map2d(#));
+Listplot("1",sp,["nodisp"]);
+Listplot("2",su1);
+Listplot("3",su2,["Color=blue"]);
+int1=Intersectcrvs("sg1","sg2");
+int2=Intersectcrvs("sg1","sg3");
+println(int1);
+println(int2);
+p1=int1_1;
+p2=int1_2;
+p3=int2_1;
+p4=int2_2;
+Partcrv("1", p2, p1, "sg1");
+Partcrv("2", p3, p4, "sg3",["nodisp"]);
+Partcrv("3", p4, p3, "sg1",["nodisp"]);
+Joincrvs("1",["part2","part3"],["nodisp"]);
+Shade(["join1"],["Color=[0.2,0,0,0]"]);
+\end{verbatim}
+
+スライダを動ã‹ã—ã¦è¦–点を変ãˆãŸã¨ã,次ã®ã‚ˆã†ã«ãªã‚‹ã€‚
+
+ \input{3Dfig/sphere04} \hspace{10mm} \input{3Dfig/sphere05}
+
+ ãªãŠï¼Œã“ã®ã‚¹ã‚¯ãƒªãƒ—トを実行ã—ãŸã¨ã,視点ã«ã‚ˆã£ã¦äº¤ç‚¹ int1 , int2 ã®æ•°ãŒå¤‰ã‚ã‚‹ã®ã§ï¼Œã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«è¡¨ç¤ºã•ã‚ŒãŸã‚‚ã®ã‚’見ã¦ï¼Œ\verb|p1,p2,p3,p4| を設定ã™ã‚‹å¿…è¦ãŒã‚る。
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{polyhedron}{}
+\item[関数] polyhedron(name,é¢ãƒ‡ãƒ¼ã‚¿,option)
+\item[機能] é¢ã‚’色塗りã—ãŸå¤šé¢ä½“ã‚’æã
+\item[説明] ç¸å–ã‚Šã¯ã—ãªã„。
+\item[戻り値] 引数ã®é¢ãƒ‡ãƒ¼ã‚¿ã‚’ãã®ã¾ã¾è¿”ã™
+
+ Rayoff オプションをã¤ã‘ã‚‹ã¨ï¼Œãƒ¬ã‚¤ãƒˆãƒ¬ãƒ¼ã‚·ãƒ³ã‚°ã‚’è¡Œã‚ãªã„。
+
+\vspace{\baselineskip}
+ ã€ä¾‹ã€‘ 立方体ABCD-EFGHを,B,D,Gを通る平é¢ã§åˆ‡ã£ã¦ã§ãã‚‹éŒä½“ã‚’ç·‘ã§æã。
+
+\hspace{30mm}\input{3Dfig/polyhedron01}
+
+ 頂点B,C,D,Gã«å¯¾ã—,é¢ãƒªã‚¹ãƒˆã‚’次ã®ã‚ˆã†ã«ä½œã‚‹ã€‚
+
+ ã¾ãšï¼Œé ‚点 B,C,D,G ã«ç•ªå·1,2,3,4 ã‚’ã¤ã‘る。
+
+ é¢BCGã¯å¤–å´ã‹ã‚‰è¦‹ã¦å時計回り㫠B,C,G ãªã®ã§ [1,2,4]
+
+ é¢CDGã¯åŒæ§˜ã« C,D,G ãªã®ã§ [2,3,4]
+
+ é¢DGBã¯åŒæ§˜ã« D,B,G ãªã®ã§ [3,1,4]
+
+ 底é¢BCDã¯å¤–å´ã‹ã‚‰è¦‹ã¦å時計回り㫠B,D,C ãªã®ã§ [1,3,2]
+
+ ãã“ã§ï¼ŒB,C,D,G ã®åº§æ¨™ã‚’p1,p2,p3,p4ã¨ã—ã¦ï¼Œæ¬¡ã®ã‚ˆã†ã«ã—ã¦é¢ãƒ‡ãƒ¼ã‚¿ \verb|fd| を作る。
+\begin{verbatim}
+ p1=[2,0,0];
+ p2=[2,2,0];
+ p3=[0,2,0];
+ p4=[2,2,2];
+ fd=[[p1,p2,p3,p4],[[1,2,4],[2,3,4],[3,1,4],[1,3,2]]];
+\end{verbatim}
+
+ã“ã®é¢ãƒ‡ãƒ¼ã‚¿ã‚’使ã£ã¦
+
+ \verb| polyhedron("1",fd,["Color=Green"])|
+
+ã¨ã™ã‚Œã°ï¼ŒéŒä½“ãŒæã‹ã‚Œã‚‹ã€‚
+
+\hspace{30mm}\input{3Dfig/polyhedron02}
+
+ã€ä¾‹ã€‘å°æž—・鈴木・三谷ã«ã‚ˆã‚‹ 多é¢ä½“データ polyhedrons\_obj を用ã„ãŸå¤šé¢ä½“ã‚’æã。
+ データã¯ï¼Œæ­£å¤šé¢ä½“,åŠæ­£å¤šé¢ä½“,ジョンソンã®ç«‹ä½“ã§ï¼Œ
+
+\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/index.html }
+
+ ã«ã‚る。ã“ã®ãƒ‡ãƒ¼ã‚¿ã‚’æ ¼ç´ã—ãŸãƒ•ã‚©ãƒ«ãƒ€ polyhedrons\_obj ã¸ã®ãƒ‘スを \verb|Setdirectory()| ã§æŒ‡å®šã—,\verb|Readobj()| ã§èª­ã¿è¾¼ã‚€ã€‚ãŸã¨ãˆã°ï¼Œãƒ¯ãƒ¼ã‚¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªï¼ˆfigフォルダ)ã«ç½®ã„ãŸå ´åˆã¯ï¼Œ
+
+\begin{layer}{150}{0}
+\putnotese{80}{0}{\input{3Dfig/polyhedron03}}
+\end{layer}
+
+\begin{verbatim}
+ Setdirectory(Dirwork+"/polyhedrons_obj");
+ polydt=Readobj("s06.obj");
+ Setdirectory(Dirwork);
+ fd=[2*polydt_1,polydt_2];
+ polyhedron("1",fd);
+\end{verbatim}
+ã§å³ã®ã‚ˆã†ãªå›³ãŒã§ãる。
+
+ãªãŠï¼Œ\verb|fd=[2*polydt_1,polydt_2]| ã§ï¼Œé ‚点ã®åº§æ¨™ã‚’2å€ã«ã—ã¦ã„る。
+
+稜線をæãã®ã§ã‚ã‚Œã°
+
+\begin{verbatim}
+VertexEdgeFace("1",fd);
+Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+を追加ã™ã‚Œã°ã‚ˆã„。
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{convexhedron}{}
+\item[関数] convexhedron(name,頂点リスト,å€çŽ‡,option)
+\item[機能] 凸型多é¢ä½“ã‚’æã
+\item[説明] 頂点リストを与ãˆã¦é¢ã‚’å¡—ã£ãŸå‡¸åž‹å¤šé¢ä½“ã‚’æã。å€çŽ‡ã¯ï¼Œé ‚点リストã«å¯¾ã—ã¦å®Ÿéš›ã«æç”»ã™ã‚‹ã‚µã‚¤ã‚ºã¸ã®å€çŽ‡ã€‚1ã®ã¨ãã¯çœç•¥ã§ãる。
+\item[戻り値] æç”»ã—ãŸé¢ãƒ‡ãƒ¼ã‚¿ã€‚
+
+\vspace{\baselineskip}
+ã€ä¾‹ã€‘底é¢ãŒäº”角形ã®å‡¸åž‹å¤šé¢ä½“
+\begin{verbatim}
+ th=2*pi/5;
+ pd=apply(1..5,[cos(#*th),sin(#*th),0]);
+ pd=pd++apply(1..5,[2*cos(#*th),2*sin(#*th),1]);
+ pd=append(pd,[0,0,2]);
+ println(pd);
+ fd=convexhedron("1",pd)
+\end{verbatim}
+\hspace{20mm}\input{3Dfig/convexhedron}
+
+稜線をæãã®ã§ã‚ã‚Œã°ï¼Œæˆ»ã‚Šå€¤ã‚’利用ã—ã¦
+
+\begin{verbatim}
+ fd=convexhedron("1",pd);
+ VertexEdgeFace("1",fd);
+ Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+ã¨ã™ã‚Œã°ã‚ˆã„。
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{rpolyhedron}{}
+\item[関数] rpolyhedron(name,é¢æ•°,åŠå¾„,option)
+\item[機能] é¢ã‚’色塗りã—ãŸæ­£å¤šé¢ä½“ã‚’æã
+\item[説明] 正多é¢ä½“ã¯ï¼•ç¨®é¡žã‚り,Spacekcã«ã¯ãƒ‡ãƒ¼ã‚¿ãŒçµ„ã¿è¾¼ã¾ã‚Œã¦ã„る。\hyperlink{rpolydata}{正多é¢ä½“ã®é ‚点座標}ã‚’å‚ç…§ã®ã“ã¨ã€‚ã“れを用ã„ã¦ï¼Œé¢ã®æ•°ã¨å¤–接çƒã®åŠå¾„を指定ã™ã‚Œã°æ­£å¤šé¢ä½“ã‚’æãã“ã¨ãŒã§ãる。
+\item[戻り値] æç”»ã—ãŸé¢ãƒ‡ãƒ¼ã‚¿
+
+\vspace{\baselineskip}
+ ã€ä¾‹ã€‘ é¢ã‚’黄色ã§å¡—ã£ãŸæ­£å二é¢ä½“ã‚’æã
+
+\verb| rpolyhedron("1",6,2,["Color=yellow"]);|
+
+\hspace{20mm}\input{3Dfig/rpolyhedron}
+
+稜線をæãã®ã§ã‚ã‚Œã°ï¼Œæˆ»ã‚Šå€¤ã‚’利用ã—ã¦
+\begin{verbatim}
+fd=rpolyhedron("1",12,2,["Color=yellow"]);
+VertexEdgeFace("1",fd);
+Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+ã¨ã™ã‚Œã°ã‚ˆã„。
+
+\vspace{\baselineskip}
+<å‚考>正多é¢ä½“ã®ã‚µã‚¤ã‚º
+
+rpolyhedron() ã§ã¯ï¼ŒæŒ‡å®šã—ãŸåŠå¾„ã®çƒé¢ã«å†…接ã™ã‚‹ã‚µã‚¤ã‚ºã§æç”»ã™ã‚‹ã€‚ã“ã“ã§ï¼Œãã®åŠå¾„ã¨è¾ºã®é•·ã•ã®é–¢ä¿‚ã‚’ã‚ã’ã¦ãŠã。ã“ã“ã§ï¼Œ$\phi=\cfrac{1+\sqrt{5}}{2}$
+
+ \input{3Dfig/rpolytable}
+
+ã€ä¾‹ã€‘ 一辺ã®é•·ã•ãŒï¼’ã®æ­£å…­é¢ä½“ã‚’æã
+\begin{verbatim}
+ rpolyhedron(6,sqrt(3),["dr,2"]);
+\end{verbatim}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+
+\hypertarget{rfrustum}{}
+\item[関数] frustum(name,n,r1,r2,h,option)
+\item[機能] 正角éŒï¼ˆå°ï¼‰ã®é¢ã‚’å¡—ã‚‹
+n:角ã®æ•°
+
+r1,r2:上底,下底ã®å¤–接円ã®åŠå¾„
+
+h:高ã•
+
+\vspace{\baselineskip}
+ ã€ä¾‹ã€‘ 正六角éŒå°ã‚’æã
+
+\verb| frustum("1",6,1,2,3,["Color=yellow"]);|
+
+\hspace{20mm}\input{3Dfig/frustum01}
+
+稜線をæãã®ã§ã‚ã‚Œã°ï¼Œæˆ»ã‚Šå€¤ã‚’利用ã—ã¦
+\begin{verbatim}
+ fd=frustum("1",6,1,2,3,["Color=yellow"]);
+ VertexEdgeFace("1",fd);
+ Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+ã¨ã™ã‚Œã°ã‚ˆã„。
+
+ ã€ä¾‹ã€‘ 上底ã®å¤–接円ã®åŠå¾„ã‚’ï¼ã«ã™ã‚Œã°æ­£å…­è§’éŒã«ãªã‚‹ã€‚ (座標軸éžè¡¨ç¤ºï¼‰
+
+\begin{verbatim}
+ fd=frustum("1",6,0,2,3,["Color=yellow"]);
+ VertexEdgeFace("1",fd);
+ Nohiddenbyfaces("1","phe3d1","phf3d1");
+\end{verbatim}
+
+\hspace{20mm}\input{3Dfig/frustum02}
+
+ ã€ä¾‹ã€‘ 角数を多ãã™ã‚‹ã¨ã»ã¨ã‚“ã©å††éŒã«ãªã‚‹ã€‚輪郭線ã¯Sfbdparadataã§æ›²é¢ã¨ã—ã¦æã。
+
+\begin{verbatim}
+ frustum("1",108,0,2,4,["Color=yellow"]);
+ fd=[
+ "p",
+ "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",
+ "r=[0,2]","t=[0,2*pi]","e"
+ ];
+ Startsurf();
+ Sfbdparadata("1",fd);
+ ExeccmdC("1");
+\end{verbatim}
+
+\hspace{20mm}\input{3Dfig/frustum03}
+
+上底ã¨ä¸‹åº•ã‚’åŒã˜ã‚µã‚¤ã‚ºã«ã™ã‚Œã°å††æŸ±ã«ãªã‚‹ã€‚
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\hypertarget{hatch3d}{}\item[関数] hatch3d(name,æ–¹å‘,PD,option)
+\item[機能] 閉曲線ã«ãƒãƒƒãƒã‚’ã‹ã‘る。
+\item[説明] 閉曲線ã¯ï¼Œpoly3d() , circle3d(); ã§æã„ãŸã‚‚ã®ãªã©ã€‚
+KeTCindy ã®Hatchdata() ã¨ç•°ãªã‚Šï¼Œé–‰æ›²ç·šã ã‘ãŒå¯¾è±¡ãªã®ã§ï¼Œæ–¹å‘ã¯å¼•æ•°ã«ãªã„。optionã«ã¯è‰²æŒ‡å®šã‚’入れるã“ã¨ãŒã§ã,色指定ãŒã‚ã‚Œã°ãã®è‰²ã§ãƒãƒƒãƒã‚’ã‹ã‘る。 複数ã®é ˜åŸŸã«ãƒãƒƒãƒã‚’ã‹ã‘ã‚‹ã“ã¨ã¯ã§ããªã„。
+\item[戻り値] ãªã—
+
+ã€ä¾‹ã€‘ 円ã«ãƒãƒƒãƒã‚’ã‹ã‘る。
+\begin{verbatim}
+ pd=circle3d("1",[1,1,1],[1,1,1],2,["dr,2"]);
+ hatch3d("1",pd,["Color=red"]);
+\end{verbatim}
+
+ \input{3Dfig/hatch1}
+
+\newpage
+\end{description}
+
+
+% 関数一覧 ================================
+\hypertarget{functionlist}{}
+\section{関数一覧}
+KeTCindy ã®é–¢æ•°åãŒå¤§æ–‡å­—ã§å§‹ã¾ã‚‹ã®ã«å¯¾ã—,Spacekcã®é–¢æ•°åã¯å°æ–‡å­—ã§å§‹ã¾ã‚‹ã€‚ãŸã ã—,若干例外ãŒã‚る。\\
+
+\begin{tabbing}
+123456789012345678901234567890123456789\=\kill
+ã€å®šæ•°ã€‘\\
+\hyperlink{lightpoint}{Lightpoint} \> å…‰æºã®æ–¹å‘ベクトル\\
+\hyperlink{contrast}{Contrast} \> コントラスト\\
+\hyperlink{rpolydata}{Rpolydata} \> 正多é¢ä½“ã®é ‚点リスト\\
+
+ã€å€¤ã®å–得】\\
+\hyperlink{angle3pt}{angle3pt}(座標,座標,座標) \>å¹³é¢ä¸Šã®ï¼“点p1,p2,p3 ã«å¯¾ã—角p1p2p3ã‚’è¿”ã™\\
+\hyperlink{pointindomain}{pointindomain}(座標,点リスト) \> å¹³é¢ä¸Šã§ç‚¹ãŒé–‰æ›²ç·šå†…ã«ã‚ã‚‹ã‹ã©ã†ã‹ã®åˆ¤å®š\\
+\hyperlink{distlp}{distlp}(座標,座標,座標) \>2点を通る直線ã¨ç‚¹ã®è·é›¢ã‚’å–å¾—ã™ã‚‹\\
+\hyperlink{distpp3d}{distpp3d}(座標,座標,座標,座標) \>座標空間ã§ï¼“点を通る平é¢ã¨ç‚¹ã®è·é›¢ã‚’å–å¾—ã™ã‚‹\\
+\hyperlink{map2d}{map2d}(座標) \>空間座標を座標平é¢ã«å°„å½±ã—ãŸç‚¹ã®åº§æ¨™ã‚’å–å¾—ã™ã‚‹\\
+\hyperlink{nomalvec}{nomalvec}(座標,座標,座標) \>3点を通る平é¢ã®æ³•ç·šå˜ä½ãƒ™ã‚¯ãƒˆãƒ«ã‚’å–å¾—ã™ã‚‹\\
+\hyperlink{perp}{perp}(座標,座標,座標) \>座標空間ã§ï¼’点を通る直線ã¸ã®åž‚ç·šã®è¶³ã®åº§æ¨™ã‚’å–å¾—ã™ã‚‹\\
+\hyperlink{perpvec}{perpvec}(ベクトル,flag) \>ベクトルã«åž‚ç›´ãªå¹³é¢ä¸Šã«ç›´äº¤ã™ã‚‹åŸºæœ¬ãƒ™ã‚¯ãƒˆãƒ«ã‚’ã¨ã‚‹\\
+\hyperlink{planecoeff}{planecoeff}(座標,座標,座標) \>座標空間ã§ï¼“点を通る平é¢ã®æ–¹ç¨‹å¼ã®ä¿‚æ•°ã‚’å–å¾—ã™ã‚‹\\
+\hyperlink{crosssd}{crosssd}(座標,座標,座標,座標) \>座標平é¢ã§ï¼’ã¤ã®ç·šåˆ†ãŒäº¤ã‚ã‚‹ã‹ã©ã†ã‹ã®åˆ¤æ–­\\
+\hyperlink{interpl}{interpl}(座標,座標,座標,座標,座標) \>å¹³é¢ã¨ç›´ç·šã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹\\
+\hyperlink{interps}{interps}(座標,座標,座標,座標,座標) \>å¹³é¢ã¨ç·šåˆ†ã®äº¤ç‚¹ã®åº§æ¨™ã‚’求ã‚ã‚‹\\
+\hyperlink{reflect3d}{reflect3d}(リスト,リスト) \>データã®é¡åƒã‚’å¾—ã‚‹\\
+\hyperlink{rotate3d}{rotate3d}(座標,角リスト) \>データを回転ã™ã‚‹\\
+\hyperlink{translate3d}{translate3d}(リスト,ベクトル) \>データを平行移動ã™ã‚‹\\
+\hyperlink{vertexrpolyhedron}{vertexrpolyhedron}(æ•°) \>正多é¢ä½“ã®é ‚点リストをå–å¾—ã™ã‚‹\\
+
+ã€æ画】\\
+\hyperlink{grid}{grid}() \>$xy$å¹³é¢ã®æ–¹çœ¼ã®æç”»\\
+\hyperlink{line3d}{line3d}(name,list,option)\>2点をçµã¶ç›´ç·šã‚’æã\\
+\hyperlink{arrow3d}{arrow3d}(name,list,option) \>2点をçµã¶çŸ¢ç·šã‚’æã\\
+\hyperlink{poly3d}{poly3d}(name,list,option) \>多角形をæã\\ \hyperlink{circle3d}{circle3d}(name,center, r,vec,option) \>円をæã\\
+\hyperlink{drawarc3d}{circle3d}(name,center, r,vec,range,option) \>弧をæã\\
+\hyperlink{plate3d}{plate3d}(name,list,option) \>多角形を色塗りã™ã‚‹\\
+\hyperlink{disc3d}{disc3d}(name,center, r, vec,option) \>中を塗ã£ãŸå††ç›¤ã‚’æã\\
+\hyperlink{drawsphere}{drawsphere}(name,center,r,option) \>çƒé¢ã‚’æã\\
+\hyperlink{quasisphere}{quasisphere}(name,center,r,option) \>çƒé¢ã®ã‚ˆã†ãªã‚‚ã®ã‚’æã\\
+\hyperlink{frustum}{frustum}(name,fn,r1,r2,h, option) \>角éŒå°ã‚’æã\\
+\hyperlink{polyhedron}{polyhedron}(name,fd,option) \>é¢ã‚’色塗りã—ãŸå¤šé¢ä½“ã‚’æã\\
+\hyperlink{rpolyhedron}{rpolyhedron}(name,fn,r,option) \>é¢ã‚’色塗りã—ãŸæ­£å¤šé¢ä½“ã‚’æã\\
+\hyperlink{convexhedron}{convexhedron}(name,pd,size,option) \>é¢ã‚’色ã¬ã‚Šã—ãŸå‡¸åž‹å¤šé¢ä½“ã‚’æã\\
+\hyperlink{hatch3d}{hatch3d}(name,direc,PD,option) \> 閉曲線ã«ãƒãƒƒãƒã‚’ã‹ã‘ã‚‹\\
+
+\end{tabbing}
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
index 9b60514ba5d..de1caada09d 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
@@ -1,3 +1,7 @@
+// 20190128
+// Vertexedgeface changed ( size of point name, drawpoint )
+// 20190127
+// Nohiddenseg debugged ( for changing Ltype )
// 20181218
// Letter3d,Expr3d added
// 20181212
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
index 7f378e9cd87..e4e59151022 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d(20181218) loaded");
+println("ketcindylib3d(20190128) loaded");
//help:start();
@@ -625,7 +625,7 @@ Subgraph(name3,opcindy):=( //181029
);
tmp=name+"="+Textformat(sub2d,5);
parse(tmp);
- GCLIST=append(GCLIST,[name,0,opcindy]);
+ GCLIST=append(GCLIST,[name,[0,1],opcindy]); //190127
sub2d;
);
////%Subgraph end////
@@ -1189,6 +1189,7 @@ Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
);
////%Xyzax3paraname end////
+////%Datalist3d start////
Datalist3d():=(
//help:Datalist3d();
regional(out,tmp,tmp2,tmp3);
@@ -1198,7 +1199,9 @@ Datalist3d():=(
tmp3=apply(tmp2,replace(#,"2d","3d"));
out=tmp3;
);
+////%Datalist3d end////
+////%Datalist2d start////
Datalist2d():=(
//help:Datalist2d();
regional(out,tmp,tmp2,tmp3);
@@ -1208,7 +1211,9 @@ Datalist2d():=(
// tmp3=apply(tmp2,replace(#,"2d","3d"));
out=tmp2;
);
+////%Datalist2d end////
+////%Embed start////
Embed(nm,Pd2str,funstr,varstr):=
Embed(nm,Pd2str,funstr,varstr,[]);
Embed(nm,Pd2str,funstr,varstr,options):=(
@@ -1298,6 +1303,7 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
);
Out;
);
+////%Embed end////
////%Rotatepoint3d start////
Rotate3pt(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);
@@ -2422,18 +2428,15 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
tmp2=(ss>-Eps)&(ss<1+Eps)&(tt>-Eps)&(tt<1+Eps)&(ss+tt<1+Eps);//181029
out=[pR,tmp1,tmp2,tseg,ss,tt]; //181027to
tmp=ptflg_2;
- tmp1=(tmp1)%(substring(tmp,0,1)=="e"); //181025from
+ tmp1=(tmp1)%(substring(tmp,0,1)=="i"); //190114
tmp2=(tmp2)%(substring(tmp,1,2)=="e");
if(tmp1&tmp2&(scrflg=="Y"), //181031
if(ptflg_1=="P", //181025
- Putpoint3d([name,pR]);
- Fixpoint3d([name,pR]);
+ Putpoint3d([name,pR],"fix");
+// Fixpoint3d([name,pR]); //190114
,
Drawpoint3d(pR,options);
);
-// println(" pt"+name+" data:"+format(out,5));
- ,
-// println("pt"+name+" data:"+format(out,5));
);
,
println(" "+sgstr+" and "+pLstr+" may be parallel");//181025to
@@ -2933,7 +2936,8 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
parse(tmp);
Defvar(vname+"2d",parse(vname+"2d"));
if(dispflg==1, //181106
- drawtext(parse(vname+"2d"),vname);
+ drawtext(parse(vname+"2d"),vname,size->8); //190128
+ draw(parse(vname+"2d"),pointsize->3,color->[0,1,0]); //190128
);
); //180905to
);
@@ -3385,7 +3389,7 @@ Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
tmp=replace(seg,"3d","2d");
tmp1=select(GCLIST,#_1==tmp);
tmp1=tmp1_1;
- if(tmp1_2==0,
+ if(tmp1_2_1==0, //190127
tmp2=append(tmp2,seg);
);
);
@@ -3564,6 +3568,7 @@ Faceremovaldata(nm,vfdata,crvdata,options):=(
);
////%Faceremovaldata end////
+////%Fullformfunc start////
Fullformfunc(FdL):=(
regional(Out,nn,ii,Jrg,flg,Urg,Vrg,kk,Uname,
Zf,Xname,Xf,Yname,Yf,tmp,tmp1,tmp2);
@@ -3647,6 +3652,7 @@ Fullformfunc(FdL):=(
tmp=[DrwS,BdyL];
Out=concat(Out,tmp);
);
+////%Fullformfunc end////
Surffun(nm,Fd):=(
regional(name,coord,var1,var2,rng1,rng2,bdy,tmp,tmp1,tmp2);
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
index 813140039fd..ab492956087 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
@@ -1,5 +1,32 @@
-// 20181217
-// Drwxy debugged
+/ 20190128
+// Ketinit changed (Userhome added)
+// Changesetting majorly changed
+// 20190127
+// Mvprod added
+// 20190126
+// Pointdata changed ( list of list removed, Ltype)
+// 20190125
+// Assign debugged ( for 1 argument)
+// Getlinestyle changed ( Ltype)
+// 20190122
+// no ketjs added (Ketinit)
+// 20190119
+// Getlinestyle changed/debugged (Ltype changed )
+// 20190118
+// Divoptions changed ("dr,thickness" )
+// 20190116
+// Ketinit() debuggded ( Mackc for Linux)
+// 20190115
+// Plotdata debugged( ( => [ )
+// Pointdata change( colorcode => colorcmyk2rgb)
+// 20190103
+// Paramplot debugged ( "pt" localized )
+// 20181231
+// Pointdata changed ( "Inside=(cmyk list)" option added )
+// Setorigin debugged (GENTEN used)
+// 20181230
+// Pointdata changed ( "Inside" option added )
+// Integrate debugged (case of funstr)
// 20181216
// Ketinit changed (AXSTYLE changed)
// 20181215
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
index a3376741a8d..e473027def3 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
@@ -9,14 +9,14 @@
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-// f
+//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("KeTCindy V.3.2.3(20181216)");
+println("KeTCindy V.3.2.5");
println(ketjavaversion());
-println("ketcindylibbasic1(20181125) loaded");
+println("ketcindylibbasic1[20190131] loaded");
//help:start();
@@ -71,7 +71,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
KCOLOR=[0,0,0];
GLIST=[];
GCLIST=[];
-// GDATALIST=[];
+// GDATALIST=[]; //no ketjs
GOUTLIST=[];
POUTLIST=[];
VLIST=[];
@@ -97,6 +97,8 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
ADDPACK=[]; // 16.05.16
GPACK="tpic"; //180817
ErrFlag=0;
+ KETJSOP=[]; //190129
+ // no ketjs on 190122
setdirectory(Dirwork);
if(!isstring(Fhead), // 17.10.13from, 17.11.12
Fhead=text(curkernel());
@@ -122,8 +124,8 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
Dircdy=substring(Dircdy,1,length(Dircdy));
);
);
- Changesetting(Homehead+pathsep()+getname()); //180913
- Changesetting(Dircdy); //181017
+ Userhome=Homehead+pathsep()+getname(); //190128
+ Changesetting(); //190128
Changework(Dircdy+pathsep()+work); //180329to,181001
Fnametex=Fhead+".tex";
FnameR=Fhead+".r";
@@ -139,6 +141,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
Shellparent="/kc.command";
,
Shellparent="/kc.sh";
+ Mackc="sh"; //190116
); //181125to
if(!isexists(Dirwork,""),
println(Dirwork+" not exists");
@@ -152,6 +155,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
println(setexec(Dirwork,Shellparent));
);
);
+// no ketjs off 190122
ArrowlineNumber=1; // 15.01.05
ArrowheadNumber=1;
BezierNumber=1; //15.01.03
@@ -163,6 +167,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
YMIN=rangey_1/SCALEY;
YMAX=rangey_2/SCALEY;
Setwindow("Msg=n"); // 16.05.31
+// no ketjs on 190122
// for Presentation
letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged
@@ -173,6 +178,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")>0,
LibnameS=replace(LibnameS,"ketpic","ketpic2e");
);//17.12.03until
+// no ketjs off 190122
);
////%Ketinit end////
@@ -250,7 +256,7 @@ Readlines(path,file):=(
//help:Readlines(path,file);
regional(tmp,out);
out=readfile2str(path,file);
- out=tokenize(out,"/LF/");
+ out=tokenize(out,"/L"+"F/"); //190129
tmp=out_(length(out));
if(length(tmp)==0,
out=out_(1..(length(out)-1));
@@ -260,22 +266,22 @@ Readlines(path,file):=(
////%Readlines end////
////%Changesetting start////
-Changesetting(dir):=( //181017
- regional(fname);
- fname="ketcindychange.txt";
- if(!isexists(dir,fname),
- if(dir==Dircdy,
- fname="ketcindy.conf";
- ,
- fname=".ketcindy.conf";
- );
+Changesetting():=( //190128
+ regional(dir,fname);
+ dir=Homehead+pathsep()+getname();
+ fname=".ketcindy.conf";
+ if(isexists(dir,fname),
+ println("read "+fname+" in "+dir);
+ setdirectory(dir);
+ import(fname);
);
+ dir=Dircdy; fname="ketcindy.conf";
if(isexists(dir,fname),
println("read "+fname+" in "+dir);
setdirectory(dir);
import(fname);
);
-); //181017to
+);
////%Changesetting end////
////%Cindyname start////
@@ -308,7 +314,7 @@ Setwindow(str):=(
// createpoint("SW",Pcrd([XMIN,YMIN]));
// createpoint("NE", Pcrd([XMAX,YMAX]));
Putpoint("SW",Pcrd([XMIN,YMIN]));
- Putpoint("NE", Pcrd([XMAX,YMAX]));
+ Putpoint("NE", Pcrd([XMAX,YMAX]));
);
if(msg=="y",
println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
@@ -373,6 +379,47 @@ DqDq(str):=(
);
////%DqDq end////
+////%PPa start//// 190111
+PPa():=PPa("");
+PPa(str):="("+str+")";
+////%PPa end////
+
+////%PaO start//// 190111
+PaO():=PaO("");
+PaO(Arg):=(
+ regional(out);
+ if(isstring(Arg),
+ out="("+Arg;
+ ,
+ out="";
+ repeat(Arg,
+ out=out+"(";
+ );
+ );
+ out;
+);
+////%PaO end////
+
+////%PaC start//// 190111
+PaC():=PaC("");
+PaC(Arg):=(
+ regional(out);
+ if(isstring(Arg),
+ out=Arg+")";
+ ,
+ out="";
+ repeat(Arg,
+ out=out+")";
+ );
+ );
+ out;
+);
+////%PaC end////
+
+////%PPa start//// 190111
+PPa(str):="("+str+")";
+////%PPa end////
+
////%Tab2list start////
Tab2list(dtstr):=Tab2list(dtstr,[]);
Tab2list(dtstrorg,options):=(
@@ -787,7 +834,7 @@ Changework(dirorg,options):=( //16.10.21
,
println("Directory "+dir+" not exist, so "+Dqq(Dirwork)+" not changed");
); //180618to
-// println("Directory "+dir+" not exist, so set to "+Dircdy);//180604(2lines)
+// println("Directory "+dir+" not exist, so set to "+Dircdy);//180604[2lines]
// Dirwork=Dircdy;
// ErrFlag=-1;
,
@@ -826,17 +873,17 @@ Changestyle(nameL,style):=(
if(length(tmp)>0,
Ltype=Ltypeorg;
GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,
- (indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13
+ COM2ndlist=select(COM2ndlist, //no ketjs
+ (indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13 //no ketjs
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
+ ); //no ketjs off
,
if(Noflg==1,Ltype=0);
);
@@ -864,7 +911,7 @@ Op(n,object):=( // 16.05.25
////%Op end////
////%Ptselected start////
-Ptselected():=Isptselected(allpoints());//180711(2lines)
+Ptselected():=Isptselected(allpoints());//180711[2lines]
Ptselected(ptlist):=Isptselected(ptlist);
Isptselected():=Isptselected(allpoints()); //180706
Isptselected(ptlist):=(
@@ -1117,19 +1164,15 @@ Sprintf(value,dig):=(
);
////%Sprintf end////
-Assign(str):=( // old
- regional(out);
- out=str;
- forall(VLIST,
- tmp=substring(#_1,0,length(#_1)-1);
- out=replace(out,tmp,"("+#_2+")");
- );
- out;
-);
-
////%Assign start////
+Assign(str):=( //190125from
+ regional(tmp);
+ tmp=[];
+ forall(VLIST,tmp=concat(tmp,[#_1,#_2]));
+ Assign(str,tmp);
+); //190125to
Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
+ regional(nn,out);
nn=length(vrL)/2;
out=funstr;
forall(1..nn,
@@ -1137,7 +1180,6 @@ Assign(funstr,vrL):=(
);
out;
);
-
Assign(funstr,varname,rep):=(
//help:Assign("x^2+a*x","a",1.3);
//help:Assign("a*x^2+b*x",["a",1,"b",2]);
@@ -1154,7 +1196,7 @@ Assign(funstr,varname,rep):=(
ii=indexof(funstr,varname);
if(ii>0,
Flg=0;
- if(ii>1,
+ if(ii>1,
tmp=substring(funstr,ii-2,ii-1);
if(contains(Notvar,tmp),
tmp2=tmp2+substring(funstr,0,ii);
@@ -1270,7 +1312,7 @@ Divoptions(options):=(
tmp1=parse(tmp2);
color=tmp1;
if(length(tmp1)==4,
- tmp1=colorCmyk2Rgb(tmp1);
+ tmp1=Colorcmyk2rgb(tmp1);
);
,
tmp1=Colorname2rgb(tmp2); color=tmp1; //181212
@@ -1369,6 +1411,28 @@ Crossprod(a,b):=(
);
////%Crossprod end////
+////%Mvprod start////
+Mvprod(mat,vec):=( //190127
+ regional(vecL);
+ if(MeasureDepth(vec)==0,vecL=[vec],vecL=vec);
+ Mvprod(mat,vecL,length(vecL));
+);
+Mvprod(mat,vecL,nn):=(
+//help:Mvprod(mat,vec(list));
+ regional(tmp,out);
+ if(nn==1,
+ out=mat*vecL_1;
+ ,
+ out=[];
+ forall(1..nn,
+ tmp=mat*vecL_#;
+ out=append(out,tmp);
+ );
+ );
+ out;
+);
+////%Mvprod end////
+
////%Ptstart start////
Ptstart(Fig):=(
//help:Ptstart("gr1");
@@ -1427,7 +1491,7 @@ Paramoncrv(pP,Gdata):=Paramoncurve(pP,Gdata);//180723
////%Paramoncrv end////
////%ParamonCurve start////
ParamonCurve(point,Gdata):=(
-//help:ParamonCurve(A,"gr1");//180723(3lines)
+//help:ParamonCurve(A,"gr1");//180723[3lines]
regional(Tmp,PtL,pP);
if(ispoint(point),pP=point.xy,pP=point);
// Eps=10^(-8);
@@ -1631,7 +1695,7 @@ IntersectcrvsPp(Gr1,Gr2,options):=(
Data1=apply(Data1,LLcrd(#));
Data2=apply(Data2,LLcrd(#));
if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
+ Tmp1=reverse(Data2);
Eps0=10^(-6);
Tmp2=0;
forall(1..(length(Data1)),
@@ -2046,7 +2110,7 @@ Collectsameseg(ptdL):=(
);
gL=[];
tmp=apply(tmp1md,#_4);
- dst=min(tmp);
+ dst=min(tmp);
forall(tmp1md,
if(#_4<dst+Eps00,
gL=append(gL,#);
@@ -2194,7 +2258,7 @@ NearestptcrvPhy(point,PL):=(
////%Nearestptcrv start////
Nearestptcrv(point,plist):=(
//help:Nearestptcrv(A,"gr1");
- regional(tmp,pt);//180723(3lines)
+ regional(tmp,pt);//180723[3lines]
if(ispoint(point),pt=point.xy,pt=point);
tmp=Nearestpt(pt,plist);
tmp_1;
@@ -2334,7 +2398,7 @@ Derivative(fun,var,value,options):=(
);
);
if(method=="D",
- str="d(";
+ str="d"+PaO();
str=str+replace(fun,var,"#")+",";
str=str+value+")";
tmp=Pcrd([1,parse(str)]); // 14.11.08
@@ -2385,7 +2449,7 @@ Tangentplot(nm,pdstr,ptinfo,optionsorg):=(
println(" Derivative cannot be calculated");
flg=1;
,
- tmp=sort(tmp,[#_3]);//1807120(3lines)
+ tmp=sort(tmp,[#_3]);//1807120[3lines]
pt=tmp_ch_1;
par=tmp_ch_2;
);
@@ -2485,7 +2549,7 @@ Integratefn(fnstr,rngstr,options):=( //180708from
ex=range_2;
dx=(ex-sx)/Num;
xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(Assign(fnstr,[var,textformat(#,5)])));
+ yn=apply(xn,parse(Assign(fnstr,[var,#]))); //181230
plt=apply(1..(Num+1),[xn_#,yn_#]);
Sm=IntegrateO(plt,range);
);//180708to
@@ -2494,8 +2558,8 @@ Integratefn(fnstr,rngstr,options):=( //180708from
forall(1..Num,
Lx=range_1+(range_2-range_1)*(#-1)/Num;
Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
+ va1=parse(replace(fnstr,vastr,Textformat(Lx,5)));
+ va2=parse(replace(fnstr,vastr,Textformat(Rx,5)));
Sm=Sm+(va1+va2)*(Rx-Lx)/2;
);
);
@@ -2505,14 +2569,14 @@ Integratefn(fnstr,rngstr,options):=( //180708from
ex=range_2;
dx=(ex-sx)/Num;
xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
+ yn=apply(xn,parse(replace(fnstr,vastr,Textformat(#,5))));
dx=dx/2;
repeat(Num,s,
x0=xn_s;
x1=(xn_s+xn_(s+1))/2;
x2=xn_(s+1);
y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
+ y1=parse(replace(fnstr,vastr,Textformat(x1,5)));
y2=yn_(s+1);
Sm=Sm+dx*(y0+4*y1+y2)/3;
);
@@ -2701,19 +2765,19 @@ Inversefun(fnstr,rngstr,value):=(
x1=range_1; x2=range_2;
repeat(15,
x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
+ va1=parse(replace(fnstr,varstr,Textformat(x1,5)));
+ va2=parse(replace(fnstr,varstr,Textformat(x3,5)));
if((va1>value & va2>value) % (va1<value & va2<value),
x1=x3;
,
x2=x3;
);
);
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
+ va1=parse(replace(fnstr,varstr,Textformat(x1,5)))-value;
+ va2=parse(replace(fnstr,varstr,Textformat(x2,5)))-value;
if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
+ println("not found in ("+Textformat(range_1,5)
+ +","+Textformat(range_2,5)+")");
);
if(abs(va1)<=abs(va2),x1,x2);
);
@@ -2770,34 +2834,48 @@ Texcom(strorg):=( //17.09.22
);
////%Texcom end////
+////%Ketcindylogo start////
Ketcindylogo():=(
//help:Ketcindylogo();
Com2nd("Texcom("+Dq+"\def\ketcindy{{K\kern-.20em
\lower.5ex\hbox{E}\kern-.125em{TCindy}}}"+Dq+")");
);
+////%Ketcindylogo end////
-Drwline():=Drwline(textformat(GrL,5));
+////%Drwline start////
+Drwline():=Drwline(Textformat(GrL,5));
Drwline(gstr):=(
Com2nd("Drwline("+gstr+")");
);
+////%Drwline end////
+
+////%Dashline start////
Dashline(gstr):=(
Com2nd("Dashline("+gstr+")");
);
+////%Dashline end////
+////%Invdashline start////
Invdashline(gstr):=(
Com2nd("Invdashline("+gstr+")");
);
+////%Invdashline end////
+////%Dottedline start////
Dottedline(gstr):=(
Com2nd("Dottedline("+gstr+")");
);
+////%Dottedline end////
+////%SetEnglish start////
SetEnglish():=(
//help:SetEnglish();
Com0th("setlanguage('en')");
);
+////%SetEnglish end////
+////%Drawlinetype start////
Drawlinetype(name,type):=(
//help:Drawlinetype("gr1","da,1");
regional(Dop,tmp,tmp1,tmp2);
@@ -2820,6 +2898,7 @@ Drawlinetype(name,type):=(
Dottedline(name+Dop);
);
);
+////%Drawlinetype end////
////%Setunitlen start////
Setunitlen():=(
@@ -2836,7 +2915,7 @@ Setunitlen(UI):=(
OL="+-*/";
if(length(UI)>0,
ULEN=UI;
- GLIST=append(GLIST,"Setunitlen("+Dq+UI+Dq+")");//180513
+ GLIST=append(GLIST,"Setunitlen("+Dq+UI+Dq+")");//180513 //no ketjs
);
Is=1;
VL="";
@@ -2881,14 +2960,15 @@ Setunitlen(UI):=(
Setmarklen(ratio):=(
//help:Setmarklen(0.2);
MARKLEN=ratio*0.2;//16.11.01
- Com2nd("Setmarklen("+textformat(ratio,5)+")");
+ Com2nd("Setmarklen("+Textformat(ratio,5)+")");
);
////%Setmarklen end////
////%Setorigin start////
Setorigin(point):=(
//help:Setorigin([1,2]);
- Com2nd("Setorigin("+textformat(point,5)+")");
+ GENTEN=point; //181231
+ Com2nd("Setorigin("+Textformat(point,5)+")");
);
////%Setorigin end////
@@ -3065,20 +3145,20 @@ Setcolor(parorg):=( //180603renew
cstr=text(par);
cstr=substring(cstr,1,length(cstr)-1);
if(length(par)==3,
- cstr="Texcom('\\color[rgb]{"+cstr+"}')";
+ cstr="Texcom('\\color[rgb]{"+cstr+"}')"; //no ketjs
KCOLOR=par;
);
if(length(par)==4,
- cstr="Texcom('\\color[cmyk]{"+cstr+"}')";
- tmp=ColorCmyk2Rgb(par);
+ cstr="Texcom('\\color[cmyk]{"+cstr+"}')"; //no ketjs
+ tmp=Colorcmyk2rgb(par);
KCOLOR=tmp;
);
- Com2nd(cstr);
+ Com2nd(cstr); //no ketjs
);
////%Setcolor end////
-////%ColorRgb2Cmyk start////
-ColorRgb2Cmyk(clr):=(
+////%Colorrgb2cmyk start////
+Colorrgb2cmyk(clr):=(
// help:ColorRgb([0.2,0.5,0.1]);
regional(clrnew,tmp,black);
tmp=apply(clr,1-#);
@@ -3091,10 +3171,10 @@ ColorRgb2Cmyk(clr):=(
); //181112to
clrnew;
);
-////%ColorRgb2Cmyk end////
+////%Colorrgb2cmyk end////
-////%ColorCmyk2Rgb start////
-ColorCmyk2Rgb(clr):=(
+////%Colorcmyk2rgb start////
+Colorcmyk2rgb(clr):=(
// help:ColorRgb([0.2,0.5,0.1,0.2]);
regional(clrnew,tmp,black);
black=clr_4;
@@ -3102,7 +3182,7 @@ ColorCmyk2Rgb(clr):=(
clrnew=tmp_(1..3);
clrnew;
);
-////%ColorCmyk2Rgb end////
+////%Colorcmyk2rgb end////
////%Colorrgbhsv start////
Colorrgbhsv(rgb):=(
@@ -3215,16 +3295,16 @@ Colorhslrgb(hsl):=(
var2 = ( ll + ss ) - ( ss * ll );
);
var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
+ rr = Hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
+ gg = Hue2rgb( var1, var2, hh );
+ bb = Hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
);
[rr,gg,bb];
);
////%Colorhslrgb end////
-////%Colorhue2rgb start////
-hue2rgb(vv1,vv2,vh):=(
+////%Hue2rgb start////
+Hue2rgb(vv1,vv2,vh):=(
regional(out);
if ( vh < 0.0 ,vh =vh+1);
if ( vh > 1.0 ,vh =vh-1);
@@ -3243,7 +3323,7 @@ hue2rgb(vv1,vv2,vh):=(
);
out;
);
-////%Colorhue2rgb end////
+////%Hue2rgb end////
////%Colorrgbhwb start////
Colorrgbhwb(sL):=(
@@ -3365,36 +3445,51 @@ GetLinestyle(str,name):=(
noflg=parse(substring(str,0,1));
if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
tmp1=substring(str,1,3);
+ tmp2=""; //190119from
+ tmp=indexof(str,",");
+ if(tmp>0,
+ tmp2=substring(str,tmp,length(str));
+ ); //190119to
if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
+// Ltype=0;
+ if(length(tmp2)==0,tmp2="1"); //190125
+ Ltype=[0,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Drwline(name+Dop);
);
);
if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
+// Ltype=1;
+ if(length(tmp2)==0,tmp2="1,1"); //190125
+ Ltype=[1,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Dashline(name+Dop);
);
);
if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
+// Ltype=2; // 15.11.09
+ if(length(tmp2)==0,tmp2="1,1"); //190125
+ Ltype=[2,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Invdashline(name+Dop);
);
);
if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
+// Ltype=3;
+ if(length(tmp2)==0,tmp2="1,1"); //190125
+ Ltype=[3,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Dottedline(name+Dop);
);
);
if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
+// Ltype=0;
+ if(length(tmp2)==0,tmp2="1"); //190125
+ Ltype=[0,tmp2]; //190119
tmp1=parse(name);
tmp2="";
forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
+ tmp2=tmp2+Textformat(#_1,5)+",";
);
tmp2=substring(tmp2,0,length(tmp2)-1);
if(noflg==0,
@@ -3439,7 +3534,7 @@ Chunderscore(str):=(
);
if(indexof(str,"]")>0,
tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
+ tmp1=replace(tmp1,"[","list"+PaO());
,
tmp1=substring(tmp1,0,length(tmp1)-1);
);
@@ -3480,11 +3575,11 @@ AddGraph(nm,pltdata,options):=(
pdata=tmp1;
if(Noflg<3,
println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
+ tmp=name+"="+Textformat(pdata,5);
parse(tmp);
if(isstring(pltdata), // 16.04.04 from
if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
+ tmp1="list"+PaO()+"Listplot"+PaO()+substring(pltdata,1,length(pltdata));
tmp1=replace(tmp1,"]",",]");
,
tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
@@ -3513,37 +3608,37 @@ AddGraph(nm,pltdata,options):=(
if(indexof(pltdata,"[")>0,
tmp1=tmp1+")";
);
- GLIST=append(GLIST,name+"="+tmp1);
+ GLIST=append(GLIST,name+"="+tmp1); //no ketjs
,
if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
+ tmp1=name+"=Listplot("+Textformat(pdata,5)+")";
,
- tmp1="list(";
+ tmp1="list"+PaO();
forall(1..(length(pdata)),
- tmp=name+"p"+textformat(#,5)+"=";
+ tmp=name+"p"+Textformat(#,5)+"=";
if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
+ tmp=tmp+"Listplot("+Textformat(pdata_#,5)+")";
,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
+ tmp=tmp+"Pointdata("+Textformat(pdata_#_1,5)+")";
);
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
+ GLIST=append(GLIST,tmp); //no ketjs
+ tmp1=tmp1+name+"p"+Textformat(#,5)+",";
);
tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
);
- GLIST=append(GLIST,tmp1);
+ GLIST=append(GLIST,tmp1); //no ketjs
);
); // 16.04.04 until
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -3600,7 +3695,7 @@ Joincrvs(nm,plotstrL,options):=(
pS=Ptstart(PtL);
pQ=Ptstart(Qd);
pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
+ rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
if(rMN==|pP-pR|,
Qd=reverse(Qd);
,
@@ -3624,25 +3719,25 @@ Joincrvs(nm,plotstrL,options):=(
if(Noflg<3,
println("generate joincurve "+name);
tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
tmp1="";
forall(plotstrL,
tmp1=tmp1+#+",";
);
tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
+ GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")"); //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -3680,7 +3775,7 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
tmp=Ptstart(PkL)-Ptend(PkL);
if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
+ Ans=Joincrvs("",[Out1,Out2],["nodata"]);
,
Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
);
@@ -3688,8 +3783,8 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
);
if(Flg==0,
nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
+ nE=floor(pB);
+ PPL=[];
if(pA<nS-Eps,
pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
PPL=[pP];
@@ -3707,14 +3802,14 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
Ta=tmp_2;
tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
+ Tb=tmp_2;
Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
Ans=apply(Ans,Pcrd(#));
);
if(Noflg<3,
println("generate partcrv "+name);
tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
// GLIST=append(GLIST, // 16.04.03
if(DepthFlg==0,
@@ -3722,20 +3817,20 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
,
tmp=PkLstr+"(1)";
);
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
+ tmp1=name+"=Partcrv("+Textformat(Lcrd(pA),5)
+ +","+Textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
+ GLIST=append(GLIST,tmp1); //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -3761,8 +3856,11 @@ Pointdata(nm,list):=Pointdata(nm,list,[]);
Pointdata(nm,listorg,options):=(
//help:Pointdata("1",[2,4],["Size=5"]);
//help:Pointdata("2",[[2,3],[4,1]]);
+//help:Pointdata(options=["Size=(1)","Disp=(y)","Inside="]);
+//help:Pointdata("Inside=1(def)/ratio/rgblist/colorname/-1"]);
regional(list,name,nameL,ptlist,opstr,opcindy,
- eqL,dispflg,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg,color);
+ eqL,dispflg,size,thick,tmp,tmp1,tmp2,tmp3,
+ Ltype,Noflg,color,inside);
name="pt"+nm;
nameL=name+"L";
tmp=Divoptions(options);
@@ -3770,65 +3868,80 @@ Pointdata(nm,listorg,options):=(
Noflg=tmp_2;
eqL=tmp_5;
opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
+// opstr=tmp_(length(tmp)-1);
color=tmp_(length(tmp)-2);
size="";
dispflg="Y";
- if(length(eqL)>0,
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
- tmp2=Toupper(substring(tmp_2,0,1));
- if(tmp1=="S",
- size=tmp2;
- opcindy=opcindy+",size->"+text(size); //181013
- );
- if(tmp1=="D", //181030from
- dispflg=tmp2;
- );
+ inside=color;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="S",
+ size=Toupper(substring(tmp_2,0,1));;
+ opcindy=opcindy+",size->"+text(size); //181013
+ );
+ if(tmp1=="D", //181030from
+ dispflg=Toupper(substring(tmp_2,0,1));
);
+ if(tmp1=="I", //181229from
+ if(contains(["","no"],tmp_2),
+ if(tmp_2=="no",inside=append(inside,-1));
+ ,
+ tmp2=substring(tmp_2,0,1);
+ if(contains(["-","0","1",".","["],tmp2),
+ tmp=parse(tmp_2);
+ if(length(tmp)==4,tmp=Colorcmyk2rgb(tmp)); //190115
+ if(!isstring(tmp),tmp=[tmp]);
+ ,
+ tmp=Colorname2rgb(tmp_2);
+ );
+ inside=concat(inside,tmp);
+ );
+ ); //181229to
);
if(dispflg=="Y",
println("generate pointdata "+name);
); //181030to
- if(isstring(listorg),list=parse(listorg),list=listorg); //17.10.23
+ if(isstring(listorg),
+ list=parse(listorg)
+ ,
+ list=listorg
+ ); //17.10.23
if(MeasureDepth(list)==0,list=[list]);//180530
tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
+ if(tmp==1,ptlist=list,ptlist=list_1); //190126from
+ tmp=apply(ptlist,[Textformat(Pcrd(#),5)]);
+ tmp1=text(tmp);
+ tmp2=substring(tmp1,1,length(tmp1)-1);
+ tmp3=tmp1;
tmp=name+"="+tmp1;
parse(tmp);
tmp=nameL+"="+tmp3;
- parse(tmp);
+ parse(tmp); //190126to
if(Noflg<3,
if(isstring(listorg), //17.10.23
tmp2=listorg;
,
- tmp2="list("; //17.10.10from
+ tmp2="list"+PaO(); //17.10.10from
forall(list,
if(isstring(#),
tmp=#;
,
- if(ispoint(#),tmp=text(#),tmp=textformat(#,6));
+ if(ispoint(#),
+ tmp=text(#);
+ ,
+ tmp=Textformat(#,6);
+ );
);
tmp2=tmp2+tmp+",";
);
- tmp2=substring(tmp2,0,length(tmp2)-1)+")"; //17.10.10until
+ tmp2=substring(tmp2,0,length(tmp2)-1)+")";
+ //17.10.10until
);
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
+ GLIST=append(GLIST,name+"=Pointdata("+tmp2+")"); //no ketjs
);
if(Noflg<2,
- tmp=[nameL,0,opcindy];
+ tmp=[nameL,[0,1],opcindy]; //190126
GCLIST=append(GCLIST,tmp);
if(Noflg==0,
if(length(size)>0,
@@ -3838,17 +3951,20 @@ Pointdata(nm,listorg,options):=(
if(length(size)>0,tmp1=parse(size),tmp1=1);
tmp1=max(tmp1,1)/8;
Setpen(tmp1); // 16.04.09 until
- if((Noflg==0)&(color!=KCOLOR), //181020
- Texcom("{");Com2nd("Setcolor("+color+")");//180711
- );
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
+ Texcom("{");
+ Com2nd("Setcolor("+color+")");//180711
+ ); //no ketjs off
+ opstr=","+Textformat(inside,2);
+ Com2nd("Drwpt"+PaO()+"list"+PaO()+name+")"+opstr+")");
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180711
- );
+ ); //no ketjs off
Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
+ if(length(size)>0, //no ketjs on
+ tmp=Textformat(TenSize/TenSizeInit,1);
+ Com2nd("Setpt("+tmp+")");
+ ); //no ketjs off
);
);
ptlist;
@@ -3856,6 +3972,23 @@ Pointdata(nm,listorg,options):=(
////%Pointdata end////
////%Listplot start////
+Listplot(list):=Listplot(list,[]);
+Listplot(Arg1,Arg2):=(
+ regional(name,list,options,str);
+ if(isstring(Arg1),
+ name=Arg1;
+ list=Arg2;
+ Listplot(name,list,[]);
+ ,
+ list=Arg1;
+ options=Arg2;
+ name="";
+ forall(list, // 16.10.07from
+ name=name+#.name;
+ );// 16.10.07until
+ Listplot(name,list,options);
+ );
+);
Listplot(nm,list,options):=(
//help:Listplot([A,B]);
// help:Listplot(["A","B"]);
@@ -3866,7 +3999,7 @@ Listplot(nm,list,options):=(
name=substring(nm,1,length(nm));
,
name="sg"+nm;
- ); // until
+ ); // upto
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -3877,7 +4010,7 @@ Listplot(nm,list,options):=(
cutend=[0,0];//180719
forall(eqL,
tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
+ tmp1=Toupper(substring(tmp_1,0,1));
tmp2=tmp_2;
if(tmp1=="M",
tmp=Toupper(substring(tmp2,0,1));
@@ -3904,19 +4037,19 @@ Listplot(nm,list,options):=(
ptlist_1=ptlist_1+tmp*cutend_1;
ptlist_(length(ptlist))=ptlist_(length(ptlist))-tmp*cutend_2;
);//180719to
- tmp=name+"="+textformat(ptlist,5);
+ tmp=name+"="+Textformat(ptlist,5);
parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(ptlist,5)+")"); // 180719
+ GLIST=append(GLIST,name+"=Listplot("+Textformat(ptlist,5)+")"); // 180719 //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180711
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180711
- );
+ ); //no ketjs off
,
if(Noflg==1,Ltype=0);
);
@@ -3925,23 +4058,6 @@ Listplot(nm,list,options):=(
tmp1=apply(list,Lcrd(#));
tmp1;
);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07until
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
////%Listplot end////
////%Lineplot start////
@@ -3977,20 +4093,20 @@ Lineplot(nm,list,options):=(
if(Noflg<3,
println("generate Lineplot "+name);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
+ GLIST=append(GLIST,name+"=Lineplot("+Textformat(list,5)+opstr+")"); //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4049,7 +4165,7 @@ Plotdata(name1,func,variable,options):=(
if(substring(#,0,1)=="E",
if(substring(tmp1,0,1)=="[", //180817from
Ec=parse(tmp1);
- tmp1=replace(tmp1,"[","c(");
+ tmp1=replace(tmp1,"[","c"+PaO());
tmp1=replace(tmp1,",",".0,");
tmp1=replace(tmp1,"]",".0)");
opstr=opstr+","+Dqq("Exc="+tmp1); //180817to
@@ -4084,7 +4200,7 @@ Plotdata(name1,func,variable,options):=(
PdL=[];
Ke=1;
forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
+ xx=x1+#*(x2-x1)/Num; // differs from Scilab [ / Num-1]
if(length(Exfun)>0,
tmp=parse(Exfun);
if(abs(tmp)<Eps,
@@ -4103,7 +4219,7 @@ Plotdata(name1,func,variable,options):=(
,
PdL=concat(PdL,[["inf"],tmp]);
);
- );
+ );
,
PdL=[tmp];
);
@@ -4172,22 +4288,22 @@ Plotdata(name1,func,variable,options):=(
tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
);
);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=replace(func,LFmark,"");
+ tmp1=replace(func,LFmark,""); //no ketjs on
tmp2=replace(variable,LFmark,"");
tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
+ ); //no ketjs off
,
if(Noflg==1,Ltype=0);
);
@@ -4197,13 +4313,13 @@ Plotdata(name1,func,variable,options):=(
,
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
+ ); //no ketjs off
,
if(Noflg==1,Ltype=0);
);
@@ -4220,7 +4336,7 @@ Paramplot(nm,funstr,variable):=Paramplot(nm,funstr,variable,[]);
Paramplot(nm,funstr,variable,options):=(
//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
+ Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke, pt, //190103
Ltype,Noflg,Inflg,Outflg,opstr,opcindy,color);
if(substring(nm,0,1)=="-", // 180928from
name=substring(nm,1,length(nm));
@@ -4251,7 +4367,7 @@ Paramplot(nm,funstr,variable,options):=(
if(substring(#,0,1)=="E",
if(substring(tmp1,0,1)=="[", //180817from
Ec=parse(tmp1);
- tmp1=replace(tmp1,"[","c(");
+ tmp1=replace(tmp1,"[","c"+PaO());
tmp1=replace(tmp1,",",".0,");
tmp1=replace(tmp1,"]",".0)");
opstr=opstr+","+Dqq("Exc="+tmp1); //180817to
@@ -4342,22 +4458,22 @@ Paramplot(nm,funstr,variable,options):=(
tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
);
);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
+ tmp1=replace(funstr,LFmark,""); // 15.11.13 //no ketjs on
tmp2=replace(variable,LFmark,"");
tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
+ ); //no ketjs off
,
if(Noflg==1,Ltype=0);
);
@@ -4367,14 +4483,14 @@ Paramplot(nm,funstr,variable,options):=(
,
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
if(Inflg==1,
@@ -4408,7 +4524,7 @@ Connectseg(Pdata):=(
ctr=0;
while((length(vL)>0)&(ctr<1000),
ctr=ctr+1;
- qd=PlotL_(length(PlotL));
+ qd=PlotL_(length(PlotL));
ah=qd_1; ao=qd_(length(qd));
flg=0;
forall(1..(length(vL)),jj,
@@ -4416,7 +4532,7 @@ Connectseg(Pdata):=(
tmp1=Pdata_(vL_jj);
pp=tmp1_1; qq=tmp1_(length(tmp1));
if(Norm(pp-ao)<Eps,
- tmp=tmp1_(2..(length(tmp1)));
+ tmp=tmp1_(2..(length(tmp1)));
if(length(tmp)>0,
qd=concat(qd,tmp);
);
@@ -4560,7 +4676,7 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
xval1=xval2;
eval11=eval21;
eval12=eval22;
- if(length(qL)==2,
+ if(length(qL)==2,
out=append(out,qL);
);
);
@@ -4583,21 +4699,21 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
);
);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp=name+"=Implicitplot('"+func+"','"+xrng+"','"+yrng+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
+ tmp=name+"=Implicitplot('"+func+"','"+xrng+"','"+yrng+"'"+opstr+")"; //no ketjs
+ GLIST=append(GLIST,tmp); //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4688,9 +4804,9 @@ Circledata(nm,cenrad,options):=(
if(Noflg<3,
println("generate Circledata "+name);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- if(length(cenrad)==2,
+ if(length(cenrad)==2, //no ketjs on
tmp=name+"=Circledata("+cenrad+opstr+")";
,
if(ra>0,
@@ -4699,18 +4815,18 @@ Circledata(nm,cenrad,options):=(
tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
);
);
- GLIST=append(GLIST,tmp);
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4790,20 +4906,20 @@ Framedata(nm,list,optionsorg):=(
if(Noflg<3,
println("generate Framedata "+name);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
+ GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")"); //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4826,20 +4942,20 @@ Framedata(nm,cent,dx,dy,options):=(
if(Noflg<3,
println("generate Framedata "+name);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
+ GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")"); //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4906,28 +5022,28 @@ Ovaldata(nm,Pdata,options):=(
if(Noflg<3,
println("generate Ovaldata "+name);
tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
+ GLIST=append(GLIST, //no ketjs
+ name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30 //no ketjs
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
+ tmp=Textformat(Ctr,5)+","+Textformat(Dx,5)+","+Textformat(Dy,5);
);
Graph;
);
@@ -5035,7 +5151,7 @@ Parabolaplot(nm,ptlist,rng,options):=(
tmp=tmp+"+("+format(tmp2,5)+")";
tmp1=parse(rng);
tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
+ tmp2="x="+Textformat(tmp1,5);
Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
);
@@ -5194,7 +5310,7 @@ println([4573,ptlist]);
tmp=angle+#*2*pi/number;
tmp1=pA+rr*[cos(tmp),sin(tmp)];
if(#>0 & #<number,
- if((ispoint(ptlist_2))&(geo=="Y"), //180708(3lines)
+ if((ispoint(ptlist_2))&(geo=="Y"), //180708[3lines]
Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
);
//Pointdata(nm,ptL);
@@ -5266,7 +5382,7 @@ Setarrow(arglist):=(
);
[YaSize,YaAngle,YaPosition,YaCut,YasenStyle];
);
-////%Setarrow start////
+////%Setarrow end////
////%Arrowheaddata start////
@@ -5331,7 +5447,7 @@ Arrowheaddata(point,direction,options):=(
);
);
gG=apply(0..10,pP+ookisa*cos(hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
+ Flg=0;
forall(1..rF,Nj,
if(Flg==0,
pB=Ptcrv(rF+1-Nj,Houkou);
@@ -5429,7 +5545,7 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
if(!Inwindow(LLcrd(pP)),Noflg=2);//181018
if(Noflg<3,
tmp1=apply(list,LLcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
);
if(Noflg<2,
@@ -5451,14 +5567,14 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
hostr=format(apply(Houkou,LLcrd(#)),5);
);
);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
+ ); //no ketjs off
Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
-);
+ ); //no ketjs off
+ );
);
////%Arrowhead end////
@@ -5580,7 +5696,7 @@ Anglemark(Arg1,Arg2):=( // 2015.04.28 from
,
plist=Arg1;
options=Arg2;
- tmp=textformat(plist,5);
+ tmp=Textformat(plist,5);
tmp=replace(tmp,",","");
nm=substring(tmp,1,length(tmp)-1);
Anglemark(nm,plist,options);
@@ -5642,34 +5758,34 @@ Anglemark(nm,plist,options):=(
Th=Rg_1+#*(Rg_2-Rg_1)/Num;
Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
);
- Th=(Rg_1+Rg_2)/2; //16.10.31from(moved)
+ Th=(Rg_1+Rg_2)/2; //16.10.31from[moved]
tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);//16.10.31until(moved)
+ tmp=tmp+Textformat(tmp1,5)+Dq+");";
+ parse(tmp);//16.10.31to[moved]
if(length(Bname)>0,
parse(Bname);
);
if(Noflg<3,
println("generate anglemark "+name+" and "+Bpos);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp=textformat(plist,5);
+ tmp=Textformat(plist,5); //no ketjs on
tmp1=substring(tmp,1,length(tmp)-1);
tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -5690,7 +5806,7 @@ Paramark(Arg1,Arg2):=( // 17.03.27 from
,
plist=Arg1;
options=Arg2;
- tmp=textformat(plist,5);
+ tmp=Textformat(plist,5);
tmp=replace(tmp,",","");
nm=substring(tmp,1,length(tmp)-1);
Paramark(nm,plist,options);
@@ -5738,29 +5854,29 @@ Paramark(nm,plist,options):=(
Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
if(length(Bname)>0,
tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
+ tmp="Defvar("+Dq+Bpos+"="+Textformat(tmp1,5)+Dq+");";
parse(tmp);
- parse(Bname);
+ parse(Bname);
);
if(Noflg<3,
println("generate paramark "+name);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
+ tmp1=substring(Textformat(plist,5),1,length(Textformat(plist,5))-1); //no ketjs on
tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -5791,7 +5907,7 @@ Bowdata(plist):=Bowdata(plist,[]);
Bowdata(plist,options):=(
regional(nm,tmp);
if(islist(plist), // 16.12.04from
- tmp=textformat(plist,5);
+ tmp=Textformat(plist,5);
tmp=replace(tmp,",","");
nm=substring(tmp,1,length(tmp)-1);
Bowdata(nm,plist,options);
@@ -5854,9 +5970,9 @@ Bowdata(nm,plist,options):=(
ra=Ydata_2;
Th=(Ydata_3+Ydata_4)*0.5;
BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31until(moved)
+ Bpos="md"+name; // 16.10.31from[moved]
+ tmp="Defvar("+Dq+Bpos+"="+Textformat(BOWMIDDLE,5)+Dq+");";
+ parse(tmp);// 16.10.31to[moved]
if(length(Bname)>0, //16.11.01from
tmp=indexof(Bops,",");
if(tmp>0,
@@ -5892,7 +6008,7 @@ Bowdata(nm,plist,options):=(
Bname=Bname+",";
if(indexof(Bname,"rot")>0,
if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
+ Bname=Bname+Textformat(tmp,5)+",";
,
Bname=Bname+Dq+"c"+Dq+",";
);
@@ -5927,27 +6043,27 @@ Bowdata(nm,plist,options):=(
if(Noflg<3,
println("generate bowdata "+name+" and "+Bpos);//16.10.31
if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
+ tmp1=[];
forall(Out,tmp2,
tmp=apply(tmp2,Pcrd(#));
tmp1=append(tmp1,tmp);
);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
+ tmp1=substring(Textformat(plist,5),1,length(Textformat(plist,5))-1); //no ketjs on
tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
- Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -6082,7 +6198,7 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
);
rng=rngorg;
if(indexof(rng,"=")==0,
- rng=rng+"="+textformat([XMIN,XMAX],6);
+ rng=rng+"="+Textformat([XMIN,XMAX],6);
);
deq=deqorg;
deq=replace(deq,"'","`"); //180527
@@ -6137,33 +6253,33 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
deq=deq+"]";
);
if(Noflg<3,
- pdL=deqdata(deq,rng,initt,initf,Num);
+ pdL=Deqdata(deq,rng,initt,initf,Num);
if(phase==1,
pdL=apply(pdL,#_(2..3));
);
tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
);
- if(Noflg<1,
+ if(Noflg<1, //no ketjs on
tmp=Assign(deq);
tmp=replace(deq,"'","`");
tmp=name+"=Deqplot('"+tmp+"','"+rng+"',";
- tmp=tmp+format(initt,6)+","+textformat(initf,6);
+ tmp=tmp+format(initt,6)+","+Textformat(initf,6);
tmp=tmp+","+text(sel)+",'Num="+text(Num)+"')";
tmp=RSform(tmp);
GLIST=append(GLIST,tmp);
- );
+ ); //no ketjs off
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -6194,7 +6310,7 @@ EnclosingS(nm,plist,options):=(
Start=[];
Flg=0;
forall(realL,
- if(isList(#) % ispoint(#),
+ if(islist(#) % ispoint(#),
Start=Lcrd(#); // 15.09.12
,
Flg=Flg+1;
@@ -6305,26 +6421,26 @@ EnclosingS(nm,plist,options):=(
AnsL_(length(AnsL))=AnsL_1;//16.10.20
if(Noflg<3,
println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
+ tmp=name+"="+Textformat(AnsL,5);
parse(tmp);
- tmp=name+"=Enclosing(";//16.11.07from
- tmp1="list(";
+ tmp=name+"=Enclosing(";//16.11.07from //no ketjs on
+ tmp1="list"+PaO();
forall(plist,
tmp1=tmp1+#+",";
);
tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- GLIST=append(GLIST,tmp);//16.11.07until
+ GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -6336,7 +6452,7 @@ EnclosingS(nm,plist,options):=(
/////////// new enclosing ///////////
////%Enclosing start////
-Enclosing(nm,plist):=Enclosing2(nm,plist,[]);//180706(2lines)
+Enclosing(nm,plist):=Enclosing2(nm,plist,[]);//180706[2lines]
Enclosing(nm,plistorg,options):=Enclosing2(nm,plistorg,options);
Enclosing2(nm,plist):=Enclosing2(nm,plist,[]);
Enclosing2(nm,plistorg,options):=(
@@ -6433,7 +6549,7 @@ Enclosing2(nm,plistorg,options):=(
tmp2=Prepend(Op(length(tmp1),tmp),tmp2);
Gdata=replace(Gdata,"(","");
Gdata=replace(Gdata,")","");
- tmp=Gdata+"="+textformat(tmp2,6);
+ tmp=Gdata+"="+Textformat(tmp2,6);
parse(tmp);
plist_nxtno=Gdata;
t2=Length(tmp1);
@@ -6474,28 +6590,28 @@ Enclosing2(nm,plistorg,options):=(
);
if(Noflg<3,
println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
+ tmp=name+"="+Textformat(AnsL,5);
parse(tmp);
tmp=name+"=Enclosing2(";//16.11.07from
- tmp1="list(";
+ tmp1="list"+PaO();
forall(plistorg, //18.02.02
tmp1=tmp1+#+",";
);
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")";//18.0706from
+ tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")";//18.0706from //no ketjs on
if(length(Start)>0,tmp=tmp+","+Textformat(Start,6));
tmp=tmp+","+text(epspara)+")";//18.0706to,180707
- GLIST=append(GLIST,tmp);//16.11.07until
+ GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -6524,7 +6640,7 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
tmp="["+substring(tmp,0,length(tmp)-1)+"]";
iolist_#=parse(tmp);
);
- Scalebkup=[SCALEX,SCALEY];//181020(2lines)
+ Scalebkup=[SCALEX,SCALEY];//181020[2lines]
SCALEX=1;
SCALEY=1;
sg=Lineplot("",[pt,pt+vec],["nodata"]);
@@ -6697,14 +6813,14 @@ Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
);
);//180717to
if(tmp=="s",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMIN-YMAX], //180717(2lines)
+ Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMIN-YMAX], //180717[2lines]
[tmp2_(length(tmp2))_1,2*YMIN-YMAX],LLcrd(tmp2_(length(tmp2)))],
["nodisp"]);
Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
bname="join"+text(kk)+name;
);
if(tmp=="n",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMAX-YMIN], //180717(2lines)
+ Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMAX-YMIN], //180717[2lines]
[tmp2_(length(tmp2))_1,2*YMAX-YMIN],LLcrd(tmp2_(length(tmp2)))],
["nodisp"]);
Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);
@@ -6722,8 +6838,8 @@ Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
bname="join"+text(kk)+name;
);
- ,
- Enclosing2(text(kk)+name,tmp,["nodisp"]);//180619(2lines);
+ ,
+ Enclosing2(text(kk)+name,tmp,["nodisp"]);//180619[2lines]
bname="en"+text(kk)+name;
);
);
@@ -6851,7 +6967,7 @@ Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
vec=[cos(angle),sin(angle)];
nvec=[-sin(angle),cos(angle)];
AnsL=[];
- ctr=0;//181005(2lines)
+ ctr=0;//181005[2lines]
forall(0..(maxnum_1), kk,
pt=startP+kk*interval*nvec;
sha=Makehatch(iostr,pt,vec,bdylist);
@@ -6868,41 +6984,41 @@ Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
AnsL=concat(AnsL,sha);
);
);
- tmp1=apply(AnsL,textformat(#,5));
+ tmp1=apply(AnsL,Textformat(#,5));
tmp=name+"="+tmp1;
parse(tmp);
);
if((Noflg<3)&(mkflg>-1),
if(fileflg!="Y", //181102
println("generate Hatchdata "+name);
- tmp=name+"="+textformat(AnsL,5);
+ tmp=name+"="+Textformat(AnsL,5);
parse(tmp);
- if(!islist(iostr),tmp1=[iostr],tmp1=iostr);
- tmp="c(";
+ if(!islist(iostr),tmp1=[iostr],tmp1=iostr); //no ketjs on
+ tmp="c"+PaO();
forall(tmp1,
tmp=tmp+Dq+#+Dq+",";
);
tmp=substring(tmp,0,length(tmp)-1)+")";
tmp2=name+"=Hatchdata("+tmp;
forall(bdynameL,
- tmp2=tmp2+",list("+#+")";
+ tmp2=tmp2+",list"+PaO()+#+")";
);
tmp2=tmp2+opstr+")";
- GLIST=append(GLIST,tmp2);
+ GLIST=append(GLIST,tmp2); //no ketjs off
,
- GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102
+ GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102 //no ketjs
);
);
if((Noflg<2)&(mkflg>-1),
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -6980,7 +7096,7 @@ Shade(nm,plistorg,options):=( //180613to
);
); //180929to
if(length(color)==4, //180602from
- tmp=colorCmyk2rgb(color);
+ tmp=Colorcmyk2rgb(color);
);
flg=0; ctr=1;
if(encflg==1, //180929from
@@ -7004,7 +7120,7 @@ Shade(nm,plistorg,options):=( //180613to
tmp2=append(tmp2,tmp);
);
tmp1=Dqq("-"+name+text(ctr));
- tmp2=textformat(tmp2,6)+",["+Dqq("nodisp")+"]";
+ tmp2=Textformat(tmp2,6)+",["+Dqq("nodisp")+"]";
tmp=name+text(ctr)+"=Listplot("+tmp1+","+tmp2+")";
parse(tmp);
plist_jj=name+text(ctr);
@@ -7018,11 +7134,11 @@ Shade(nm,plistorg,options):=( //180613to
,
G2=Joincrvs("1",plist,["nodata"]);
G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
+ tmp1="fillpoly("+Textformat(G2,5)+opcindy+");";
parse(tmp1);
);
Str="Shade(";
- tmp1="list(";
+ tmp1="list"+PaO();
forall(plist,
if(isstring(#), // from 16.01.24
if(length(#)>1,
@@ -7031,13 +7147,13 @@ Shade(nm,plistorg,options):=( //180613to
tmp1=tmp1+Dq+#+Dq+",";
);
,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
+ tmp1=tmp1+"Listplot("+Textformat(#,5)+"),";
); //16.01.24to
);
Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+")"; //180929
- Com2nd("Texcom("+Dqq("{")+")",["before"]);Com2nd("Setcolor("+color+")",["before"]);//180722
+ Com2nd("Texcom("+Dqq("{")+")",["before"]);Com2nd("Setcolor("+color+")",["before"]);//180722 //no ketjs on
Com2nd(Str,["before"]);
- Com2nd("Texcom("+Dqq("}")+")",["before"]);//180722
+ Com2nd("Texcom("+Dqq("}")+")",["before"]);//180722 //no ketjs off
);
////%Shade end////
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
index 849afc3c4b7..64a995c970e 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
@@ -1,9 +1,67 @@
+// 20190203
+// Mkketcindyjs debugged ( in case of local=y )
+// 20190202
+// Bezier changed ( (nm, ptlist(2)) supported)
+// Htickmark,Vtickmark changed ( option added)
+// 20190201
+// Mkketcindyjs debugged ( for removing button case the last is not "," )
+// Ketjsoption renamed to Setketcindyjs
+// Mkketcindyjs changed ( "grid" option added )
+// 20190131
+// Mkketcindyjs changed (removespace of ignoretun,buttons to be removed)
+// 20190130
+// Mkketcindyjs changed (USEDFUN (global) added)
+// Ketjsoption changed (color)
+// 20190129
+// "/LF/" => "/L"+"F/"
+// Ketjsoption added
+// Mkketcindyjs changed ( option "Web","Local","Scale","Nolabel")
+// Copyketcindyjs debugged ( for Windows )
+// Mkketcindyjs changed ( option "Color" added)
+// 20190128
+// Mkketcindyjs changed ( texflg removed , katex is OK )
+// Copyketcindyjs added
+// 20190126
+// Windispg debugged (for Pointdata)
+// Mkketcindyjs change ( point size )
+// 20190125
+// Windispg redebugged ("size")
+// 20190123
+// Windispg debugged ("size")
+// 20190123
+// Dashlinedata debugged/changed (ptn )
+// Windispg changed (ptn=0)
+// 20190122
+// Windispg changed ("connect"=>"drawall" for do,da )
+// no ketjs added (Windispg,Mkketcindyjs)
+// Dashlinedata added
+// 20190120
+// Slider changed (color,size options )
+// 20190119
+// Mkketcindyjs debugge ( ketlib slot addede to csinit )
+// Windispg changed ( size of "dr" supported);
+// 20190118
+// Mkketcindyjs changed ( position of "katex", ketlib slot addede to csinit )
+// Windispg debugged ( dashtype,linecolor v.s. opcindy )
+// 20190116
+// Findfun, Extractfun, Extractall, Mkketcindyjs added (for new ketcindyjs)
+// 20190103
+// Drwxy changed (Addax(0) added in the case of add=0 )
+// Drwxy changed ( "O=" option added )
+// 20190101
+// Viewtex changed ( for tikz )
+// // 20181231
+// Drwxy debugged (GENTEN used, xrng/yrng changed )
+// Drwpt debugged ( Pointdata used )
+// Viewtex debugged ( tikz )
// 20181224
// WritetoRS changed (Closefile("0"))
// 20181219
// BBdata debugged (macosx => ismacosx )
// 20181218
// Letter, Expr changed (pt,dir,str,options added )
+// 20181217
+// Drwxy debugged
// 20181216
// Drwxy changed ( linestyle,colorax,colorla )
// 20181215
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
index c904a1d0fae..a9611b0f98d 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindybasic2(20181224) loaded");
+println("ketcindybasic2[20190203] loaded");
//help:start();
@@ -164,24 +164,24 @@ Rotatedata(nm,plist,angle,options):=(
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=text(plist);
+ tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1);// 180602
tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+RSform(textformat(Pt,5))+")"; //17.12.23
- GLIST=append(GLIST,tmp);
+ +Textformat(angle,5)+","+RSform(Textformat(Pt,5))+")"; //17.12.23
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -234,23 +234,23 @@ Translatedata(nm,plist,mov,options):=(
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=text(plist);
+ tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1);// 180602
- tmp=name+"=Translatedata("+tmp1+","+RSform(textformat(mov,5))+")";
- GLIST=append(GLIST,tmp);
+ tmp=name+"=Translatedata("+tmp1+","+RSform(Textformat(mov,5))+")";
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -272,10 +272,10 @@ Scaledata(nm,plist,Arg1,Arg2):=(
//help:Scaledata("1",["crAB","pt1"],2,[[0,0]]);
regional(tmp,options);
if(islist(Arg2),
- tmp=Arg1;//180603(2lines)
+ tmp=Arg1;//180603[2lines]
if(!islist(tmp),tmp=[tmp,tmp]);
tmp=Lcrd(tmp);
- options=Arg2;
+ options=Arg2;
Scaledata(nm,plist,tmp_1,tmp_2,options);
,
Scaledata(nm,plist,Arg1,Arg2,[]);
@@ -326,24 +326,24 @@ Scaledata(nm,plist,rx,ry,options):=(
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=text(plist);
+ tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1); // 180602
tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+RSform(textformat(Pt,5))+")";
- GLIST=append(GLIST,tmp);
+ +Textformat(rx,5)+","+Textformat(ry,5)+","+RSform(Textformat(Pt,5))+")";
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -412,23 +412,23 @@ Reflectdata(nm,plist,symL,options):=(
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5);
parse(tmp);
- tmp1=text(plist);
+ tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1);// 180602
- tmp=name+"=Reflectdata("+tmp1+","+RSform(textformat(symL,5))+")";//17.12.23
- GLIST=append(GLIST,tmp);
+ tmp=name+"=Reflectdata("+tmp1+","+RSform(Textformat(symL,5))+")";//17.12.23
+ GLIST=append(GLIST,tmp); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -490,7 +490,7 @@ MakeRarg(arglist):=(
if(isstring(#),
tmpstr=Dq+RSslash(#)+Dq;
,
- tmpstr=textformat(#,6);
+ tmpstr=Textformat(#,6);
);
str=str+tmpstr+",";
);
@@ -500,23 +500,24 @@ MakeRarg(arglist):=(
////%MakeRarg end////
////%Htickmark start////
-Htickmark(arglist):=(
+Htickmark(arglist):=Htickmark(arglist,[]); //190203
+Htickmark(arglist,options):=( //190203
//help:Htickmark([1,"1",2,"sw","2"]);
regional(nn,tmp,tmp1,tmp2,mark);
mark=MARKLEN/SCALEY;
tmp1=select(1..(length(arglist)),!isstring(arglist_#)); //180710from
forall(tmp1,nn,
Listplot("ht"+text(nn),
- [[arglist_nn,mark],[arglist_nn,-mark]],["Msg=n"]);//181017
+ [[arglist_nn,mark],[arglist_nn,-mark]],["Msg=n"]);//181017
if(nn+2<=length(arglist),
tmp=arglist_(nn+2);
if(!isstring(tmp),
- Expr([[arglist_nn,0],"s1",arglist_(nn+1)]);
+ Expr([[arglist_nn,0],"s1",arglist_(nn+1)],options); //190203
,
- Expr([[arglist_nn,0],arglist_(nn+1),arglist_(nn+2)]);
+ Expr([[arglist_nn,0],arglist_(nn+1),arglist_(nn+2)],options); //190203
);
,
- Expr([[arglist_nn,0],"s1",arglist_(nn+1)]);
+ Expr([[arglist_nn,0],"s1",arglist_(nn+1)],options); //190203
);
);//180710to
// tmp="";
@@ -526,23 +527,24 @@ Htickmark(arglist):=(
////%Htickmark end////
////%Vtickmark start////
-Vtickmark(arglist):=(
+Vtickmark(arglist):=Vtickmark(arglist,[]); //190203
+Vtickmark(arglist,options):=( //190203
//help:Vtickmark([1,"1",2,"sw","2"]);
regional(nn,tmp,tmp1,tmp2,mark);
mark=MARKLEN/SCALEX;
tmp1=select(1..(length(arglist)),!isstring(arglist_#)); //180710from
forall(tmp1,nn,
Listplot("vt"+text(nn),
- [[mark,arglist_nn],[-mark,arglist_nn]],["Msg=n"]); //181021
+ [[mark,arglist_nn],[-mark,arglist_nn]],["Msg=n"]); //181021
if(nn+2<=length(arglist),
tmp=arglist_(nn+2);
if(!isstring(tmp),
- Expr([[0,arglist_nn],"w1",arglist_(nn+1)]);
+ Expr([[0,arglist_nn],"w1",arglist_(nn+1)],options); //190203
,
- Expr([[0,arglist_nn],arglist_(nn+1),arglist_(nn+2)]);
+ Expr([[0,arglist_nn],arglist_(nn+1),arglist_(nn+2)],options); //190203
);
,
- Expr([[0,arglist_nn],"w1",arglist_(nn+1)]);
+ Expr([[0,arglist_nn],"w1",arglist_(nn+1)],options); //190203
);
);//180710to// tmp=MakeRarg(arglist);
// Com2nd("Vtickmark("+tmp+")");
@@ -581,7 +583,7 @@ Htick(px,lenorg,options):=(
////%Setax start////
Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw",]);
+//help:Setax(["l","x","e","y","n","O","sw"]);
//help:Setax([7,"nw"]);
//help:Setax([8,linestyle,colorax,colorlabel]);
regional(st,nn,tmp); //181215from
@@ -601,19 +603,29 @@ Setax(arglist):=(
////%Setax end////
////%Drwxy start////
-Drwxy():=Drwxy([]);
-Drwxy(optionsorg):=(
+Drwxy():=Drwxy(0,[]); //190103from
+Drwxy(Arg):=(
+ if(islist(Arg),Drwxy(0,Arg); Drwxy(Arg,[]));
+);
+Drwxy(add):=Drwxy(add,[]);
+Drwxy(add,optionsorg):=( //190103to
//help:Drwxy();
-//help:Drwxy(options=["Origin=[0,0]","Xrng=","Yrng=","Ax=l,x,e,..."]);
+//help:Drwxy(1[the last axis will be drawn],oprions);
+//help:Drwxy(options);
+//help:Drwxy(options=["Xrng=","Yrng=","Ax=l,x,e,..."]);
regional(options,color,eqL,strL,org,xrng,yrng,ax,st,nn,size,
linesty,colorax,colorla,tmp,tmp1,tmp2);
options=optionsorg;
tmp=Divoptions(options);
color=tmp_(length(tmp)-2);
eqL=tmp_5;
- org=[0,0];
- xrng=[XMIN,XMAX];
- yrng=[YMIN,YMAX];
+ org=GENTEN;
+ //tmp1=max([org_1+XMIN,XMIN]);
+ //tmp2=min([org_1+XMAX,XMAX]);
+ xrng=[XMIN,XMAX]; //190103
+ //tmp1=max([org_2+YMIN,YMIN]);
+ //tmp2=min([org_2+YMAX,YMAX]);
+ yrng=[YMIN,YMAX]; //190103
ax=AXSTYLE;
linesty=ax_8;
if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9));
@@ -631,10 +643,10 @@ Drwxy(optionsorg):=(
forall(eqL,
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
- if(tmp1=="O",
+ if(tmp1=="O", //190103from
org=parse(tmp_2);
options=remove(options,[#]);
- );
+ ); //190103to
if(tmp1=="X",
xrng=parse(tmp_2);
options=remove(options,[#]);
@@ -663,7 +675,7 @@ Drwxy(optionsorg):=(
strL=select(options,isstring(#)); //181216
tmp=select(strL,contains(["dr","da","do","id"],substring(#,0,2)));
if(length(tmp)==0,options=append(options,YasenStyle));
- tmp=substring(ax_1,1,length(ax_1)); //181216(2lines)
+ tmp=substring(ax_1,1,length(ax_1)); //181216[2lines]
if(length(tmp)>0,size=parse(tmp),size=YaSize);
tmp1=concat(options,[size,YaAngle,YaPosition,YaCut,colorax]);//181216
tmp=[[xrng_1,org_2],[xrng_2,org_2]];
@@ -678,22 +690,28 @@ Drwxy(optionsorg):=(
Listplot("axy"+text(AXCOUNT),tmp,tmp1);
);
AXCOUNT=AXCOUNT+1;
- Expr([[xrng_2,org_2],ax_3,ax_2],[colorla]);//181216(3lines)
+ Expr([[xrng_2,org_2],ax_3,ax_2],[colorla]);//181216[3lines]
Expr([[org_1,yrng_2],ax_5,ax_4],[colorla]);
Letter([org,ax_7,ax_6],[colorla]);
- // Addax(0); // 16.01.21
+ if(add==0, //190103
+ Addax(0);
+ );
);
////%Drwxy end////
////%Drwpt start////
-Drwpt(pstr):=Drawpoint(pstr);
+Drwpt(pstr):=Drwpt(pstr,1); //181231
Drwpt(ptlist,nn):=( // 16.03.05 from
//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
+ if(!isreal(DrwPtCtr), //181231from
+ DrwPtCtr=1;
+ );
+ Pointdata(text(DrwPtCtr),ptlist,["Inside="+text(nn)]);
+ DrwPtCtr=DrwPtCtr+1; //181231to
);
+////%Drwpt end////
+////%Drawpoint start////
Drawpoint(pstr):=(
if(isstring(pstr),
println("Drwpt : "+pstr);
@@ -718,12 +736,12 @@ Drawpoint(ptlistorg,nn):=(
tmp1=max(TenSize/TenSizeInit,1)/8;
Setpen(tmp1); // 16.04.09 until
forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
+ tmp=Textformat(#,5)+","+text(nn);
Com2nd("Drwpt("+tmp+")"); // 16.04.09
);
Setpen(thick); // 16.04.09
);// 16.03.05 until
-////%Drwpt end////
+////%Drawpoint end////
////%Addax start////
Addax(param):=(
@@ -770,7 +788,7 @@ Letter(list,options):=(
aln="left";
forall(opL,
tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
+ tmp1=Removespace(substring(#,0,tmp-1));
tmp2=substring(#,tmp+1,length(#));
if(tmp1=="size",sz=parse(tmp2));
if(tmp1=="color",clr=parse(tmp2));
@@ -781,7 +799,7 @@ Letter(list,options):=(
Dmv=8;
Nj=1;
while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
+// Pos=Textformat(list_Nj,5);
Pos=list_Nj;
Dir=list_(Nj+1);
tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
@@ -799,15 +817,15 @@ Letter(list,options):=(
Str=RSslash(Str); // 17.09.24
Str=replace(Str,"`","'");//180303
tmp=Dq+","+Dq+Str+Dq+")";
- if(Noflg==0,
+ if(Noflg==0, //no ketjs on
if((Noflg==0)&(color!=KCOLOR), //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- if((Noflg==0)&(color!=KCOLOR), //180904
+ Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
+ if((Noflg==0)&(color!=KCOLOR), //180904
Texcom("}");//180722
);
- );
+ ); //no ketjs off
if(Noflg<2,
Xmv=0;//16.10.13
Ymv=-4;
@@ -936,11 +954,24 @@ Exprrot(pt,dir,tmov,nmov,str,options):=(
////%Exprrot end////
////%Slider start////
-Putslider(ptstr,p1,p2):=Slider(ptstr,p1,p2);
-Slider(ptstr,p1,p2):=( //17.04.11
+Slider(ptstr,p1,p2):=Slider(ptstr,p1,p2,[]);
+Slider(ptstr,p1,p2,options):=(//190120
//help:Slider("A-C-B",[-3,0],[3,0]);
- regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1);
- tmp=indexall(ptstr,"-");
+//help:Slider(options=["Color=0.6*[0,0,1]","Size=2"]);
+ regional(pA,pB,pC,seg,sname,Alpha,color,size,tmp,tmp1);
+ color="Color=0.6*[0,0,1]"; //190120from
+ size="size->2";
+ forall(options,
+ tmp=Toupper(substring(#,0,1));
+ if(tmp=="C",
+ color=#;
+ );
+ if(tmp=="S",
+ tmp=Strsplit(#,"=");
+ size="size->"+tmp_2;
+ );
+ ); //190120to
+ tmp=Indexall(ptstr,"-");
pA=substring(ptstr,0,tmp_1-1);
pC=substring(ptstr,tmp_1,tmp_2-1);
pB=substring(ptstr,tmp_2,length(ptstr));
@@ -958,7 +989,7 @@ Slider(ptstr,p1,p2):=( //17.04.11
);
Putpoint(pA,p1);
Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]);
+ Listplot([parse(pA),parse(pB)],["Msg=n","notex",color,size]);
// create([sname],"Segment",[parse(pA),parse(pB)]);
// tmp2=Listplot("",[p1,p2],["nodata"]);
Putonseg(pC,parse("sg"+pA+pB));
@@ -975,7 +1006,22 @@ Putpoint(name,Ptinit,Pt):=(
if(!contains(ptstr,name),
createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
+ ptstr=name+".xy="+Textformat(Pcrd(Pt),5);
+ parse(ptstr);
+ );
+);
+////%Putpoint end////
+
+////%Putpoint start////
+Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
+Putpoint(name,Ptinit,Pt):=(
+//help:Putpoint("A",[1,2],[1,A.y]);
+ regional(ptstr);
+ ptstr=apply(allpoints(),#.name);//16.10.06
+ if(!contains(ptstr,name),
+ createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
+ ,
+ ptstr=name+".xy="+Textformat(Pcrd(Pt),5);
parse(ptstr);
);
);
@@ -1012,7 +1058,16 @@ Bezierpt(t,ptlist,ctrlist):=(
////%Bezier start////
Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
+Bezier(Arg1,Arg2):=( //190202from
+ regional(nm,ptctrlist,options);
+ if(islist(Arg1),
+ ptctrlist=Arg1; options=Arg2;
+ BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
+ ,
+ nm=Arg1; ptctrlist=Arg2;
+ BezierCurve(nm,ptctrlist_1,ptctrlist_2,[]);
+ );
+); //190202to
Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
////%Bezier end////
@@ -1042,9 +1097,9 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
ctrlist=[]; // 14.12.31
if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
+ forall(1..(length(ctrlistorg)),ii, //190202
+ tmp1=apply(ctrlistorg_ii,Lcrd(#)); //190202
if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
ctrlist=append(ctrlist,tmp);
);
,
@@ -1070,24 +1125,24 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
if(Noflg<3,
println("generate Bezier "+name);
out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
+ tmp=name+"="+Textformat(out,5);
parse(tmp);
- tmp1=textformat(ptlist,5);
+ tmp1=Textformat(ptlist,5); //no ketjs on
tmp1=RSform(tmp1,2); //17.12.23
- tmp2=textformat(ctrlist,5);
+ tmp2=Textformat(ctrlist,5);
tmp2=RSform(tmp2,3); //17.12.23
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
+ GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")"); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -1188,14 +1243,14 @@ Putbezierdata(name,ptL,options):=(
tmp1=name+"p"+text(#-1);
Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
+ Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
inspect(parse(tmp1),"ptsize",psize);
inspect(parse(tmp1),"color",3);
tmp=(p1+2*p2)/3;
tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
+ Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
+ Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
inspect(parse(tmp2),"ptsize",psize);
inspect(parse(tmp2),"color",3);
ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
@@ -1204,7 +1259,7 @@ Putbezierdata(name,ptL,options):=(
tmp1=name+"p"+text(#-1);
Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
+ Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
inspect(parse(tmp1),"ptsize",psize);
inspect(parse(tmp1),"color",3);
ctrs=append(ctrs,[parse(tmp1)]);
@@ -1294,7 +1349,7 @@ Writebezier(head,seL):=(
tmp1=bz_#;
);
tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
+ tmp1=replace(tmp1,"list"+PaO(),"[");
tmp1=replace(tmp1,")","]");
tmp1=replace(tmp1,",",".xy,");
tmp1=replace(tmp1,"]",".xy]");
@@ -1336,7 +1391,7 @@ Readbezier(file,optionorg):=(
tmp1=parse(tmp+"k");
tmp2=parse(tmp+"c");
if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
+ if(geo==1,
alpha="abcdefghijklmnopqrstuvwxyz";
forall(1..length(tmp1),
tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
@@ -1507,7 +1562,7 @@ Bzspline(nm,ptLorg,options):=(
pt1=parse("C"+text(#-1)+"q");
create([lstr],"Join",[pt1,pt]);
tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
+ tmp=append((2*pt.xy-pt1.xy),1);
create([tmp2],"PointOnLine",[parse(lstr),tmp]);
);
);
@@ -1523,7 +1578,7 @@ Bzspline(nm,ptLorg,options):=(
pt1=parse("C"+text(length(ptL)-1)+"q");
create([lstr],"Join",[pt1,pt]);
tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
+ tmp=append((2*pt.xy-pt1.xy),1);
create([tmp1],"PointOnLine",[parse(lstr),tmp]);
);
ctrlist=[];
@@ -1575,14 +1630,14 @@ Bzsspline(nm,ptLorg,options):=(
if(cflg==0,
pt=ptL_1;
pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
+ Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
inspect(C1p,"ptsize",3);
inspect(C1p,"color",3);
);
if(cflg==1,
pt=ptL_1;
pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
+ tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
parse(tmp1);
);
ctrlist=[];
@@ -1659,7 +1714,7 @@ MeetCurve(Crv,Xorg,Yorg):=(
Ban=concat(tmp1,tmp2);
Tate=select(Ban,
abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
+ 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
);
Ban=remove(Ban,Tate);
Ylist=[];
@@ -1694,11 +1749,11 @@ MeetCurve(Crv,Xorg,Yorg):=(
);
////%MeetCurve end////
-////%PutonLine start////
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
+////%Putonline start////
+Putonline(name,p1,p2):=PutonLine(name,p1,p2,[]);
+Putonline(name,p1org,p2org,options):=(
+//help:Putonline("C","sgAB");
+//help:Putonline("C",pA,pB);
regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
par=0.5;
tmp=Divoptions(options);
@@ -1725,19 +1780,20 @@ PutonLine(name,p1org,p2org,options):=(
);
);
);
-////%PutonLine end////
+////%Putonline end////
-////%PutonSeg start////
-PutonSeg(name,sgstr):=(
+////%Putonseg start////
+Putonseg(name,sgstr):=(
regional(seg,p1,p2);
if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
+ Putonseg(name,LLcrd(seg_1),LLcrd(seg_2));
);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
+Putonseg(name,p1,p2):=Putonseg(name,p1,p2,[]);
+Putonseg(name,p1org,p2org,options):=(
+//help:Putonseg("C","sgAB");
+//help:Putonseg("C",pA,pB);
+ regional(Eps,par,dx,dy,p,tmp,tmp1,tmp2);
+ Eps=10^(-5);
par=0.5;
tmp=Divoptions(options);
if(length(tmp_6)>0,
@@ -1745,31 +1801,31 @@ PutonSeg(name,p1org,p2org,options):=(
);
p1=Lcrd(p1org);//16.10.11from
p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
+ Putonline(name,p1,p2,[par]);
+ p1=Pcrd(p1); p2=Pcrd(p2); //190120
dx=p2_1-p1_1;
dy=p2_2-p1_2;
p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11until
- );
- );
-);
-////%PutonSeg end////
+// p=LLcrd(p);
+ if(abs(dx)>abs(dy), //190120from
+ if(p1_1>p2_1,tmp=p1;p1=p2;p2=tmp);
+ if(p_1<p1_1,parse(name+".xy="+Textformat(p1,5));p=p1);
+ if(p_1>p2_1,parse(name+".xy="+Textformat(p2,5));p=p2);
+ tmp=(p2_2-p1_2)/(p2_1-p1_1)*(p_1-p1_1)+p1_2;
+ parse(name+".y="+tmp);
+ ,
+ if(p1_2>p2_2,tmp=p1;p1=p2;p2=tmp);
+ if(p_2<p1_2,parse(name+".xy="+Textformat(p1,5));p=p1);
+ if(p_2>p2_2,parse(name+".xy="+Textformat(p2,5));p=p2);
+ tmp=(p2_1-p1_1)/(p2_2-p1_2)*(p_2-p1_2)+p1_1;
+ parse(name+".x="+tmp);
+ ); //190120to
+);
+////%Putonseg end////
-////%PutonCurve start////
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
+////%Putoncurve start////
+Putoncurve(pn,crv):=Putoncurve(pn,crv,[]);
+Putoncurve(pn,crv,options):=(
//help:Putoncurve("A","gr1");
//help:Putoncurve("A","gr1",[0,XMAX]);
regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
@@ -1793,25 +1849,25 @@ PutonCurve(pn,crv,options):=(
);
);
Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
+ pstr=apply(allpoints(),Textformat(#,5)); // 15.04.07
if(!contains(pstr,pn),
createpoint(pn,Pcrd(Pmt));
,
tmp1=parse(pn+".x");
if(tmp1< leftlim % tmp1>rightlim,
if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
+ Pmt=MeetCurve(crv,Textformat(tmp,5),pn+".y");
,
Pmt=MeetCurve(crv,pn+".x",pn+".y");
);
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
+ ptstr=pn+".xy="+Textformat(Pcrd(Pmt),5)+";";
parse(ptstr);
);
if(Msg=="y",
println("Put "+pn+" on Curve "+text(crv));
);
);
-////%PutonCurve end////
+////%Putoncurve end////
////%CrossPoint start////
CrossPoint(name,Crv1,Crv2,range):=(
@@ -1872,16 +1928,16 @@ Periodfun(defL,reporg,optionorg):=( // 16.11.24
forall(1..(length(defL)/3),nn,
fun=defL_(3*nn-2);
range=defL_(3*nn-1);
- tmp1=if(isstring(range_1),parse(range_1),range_1); //17.06.11(2lines)
+ tmp1=if(isstring(range_1),parse(range_1),range_1); //17.06.11[2lines]
tmp2=if(isstring(range_2),parse(range_2),range_2);
minx=min(minx,tmp1);
maxx=max(maxx,tmp2);
num=defL_(3*nn);
options=append(options,"Num="+text(num));
Plotdata("pe"+text(nn),fun,
- "x="+textformat([tmp1,tmp2],5),options);
+ "x="+Textformat([tmp1,tmp2],5),options);
pdata=append(pdata,"grpe"+text(nn));
- tmp1=range_1; //17.06.11(4lines)
+ tmp1=range_1; //17.06.11[4lines]
if(isstring(tmp1),tmp1=replace(tmp1,"pi","%pi"),tmp1=format(tmp1,5));
tmp2=range_2;
if(isstring(tmp2),tmp2=replace(tmp2,"pi","%pi"),tmp2=format(tmp2,5));
@@ -1900,7 +1956,7 @@ Periodfun(defL,reporg,optionorg):=( // 16.11.24
forall(1..(rep_2),nr,
forall(1..(length(pdata)),np,
Translatedata("p"+np+text(nr),pdata_np,[per*nr,0],options);
- tmp2=concat(tmp2,["trp"+np+text(nr)]);
+ tmp2=concat(tmp2,["trp"+np+text(nr)]);
);
);//180724to
pdata=concat(tmp1,pdata);
@@ -2125,9 +2181,9 @@ Tabledata(nm,xLst,yLst,rmvL,optionorg):=(
Putpoint(tmp,Tgrid(tmp1));
,
Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
+ rlist_(#+1)=parse(tmp+".xy"); //no ketjs
);
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
+ Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
inspect(parse(tmp),"ptsize",3);
inspect(parse(tmp),"labeled",false);
if(mod(#,tick)==0 % #==n,
@@ -2358,7 +2414,7 @@ Findcell(Tbdata,pos1,pos2):=(
regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
if(isstring(pos1),
posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
+ posse=Tgrid(pos2);
//posnw=parse(pos1);
//posse=parse(pos2);
,
@@ -2479,9 +2535,9 @@ RSform(str,listfrom):=(
//help:RSform(string,listfrom);
regional(posL,mxlv,rep1,rep2,rep3,prev,out,
tmp,tmp1,tmp2);
- rep1="c("; rep2="c("; rep3="list(";
- if(listfrom<3,rep2="list(");
- if(listfrom==1,rep1="list(");
+ rep1="c"+PaO(); rep2="c"+PaO(); rep3="list"+PaO();
+ if(listfrom<3,rep2="list"+PaO());
+ if(listfrom==1,rep1="list"+PaO());
posL=Bracket(str,"[]");
tmp=apply(posL,#_2);
mxlv=max(tmp);
@@ -2505,8 +2561,8 @@ RSform(str,listfrom):=(
out=replace(out,".xy","");
out=replace(out,".x","[1]");
out=replace(out,".y","[2]");
- out=replace(out,"c(1)","[1]");//17.10.06(2lines)
- out=replace(out,"c(2)","[2]");
+ out=replace(out,"c"+PPa("1"),"[1]");//17.10.06[2lines]
+ out=replace(out,"c"+PPa("2"),"[2]");
out;
);
////%RSform end////
@@ -2524,8 +2580,8 @@ RSslash(str):=( //17.09.24
Rform(list):=(
regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
+ out=replace(out,"[[[","list"+PaO()+"[[");
+ out=replace(out,"[","c"+PaO());
out=replace(out,"]",")");
out=replace(out,".xy","");
out=replace(out,".x","[1]");
@@ -2587,7 +2643,7 @@ IftoR(strorg):=( //180802
regional(str,ifL,ppL,cpL,kk,sL,out,
tmp,tmp1,tmp2,tmp3,tmp4);
str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
+ ifL=Indexall(str,"if"+PaO());
ppL=Bracket(str,"()");
cpL=Indexall(str,",");
tmp1=Bracket(str,"[]");
@@ -2633,7 +2689,7 @@ FortoR(strorg):=(
if(forstr==0,
out=str;
,
- pre=substring(str,0,forstr-1)+"for(";
+ pre=substring(str,0,forstr-1)+"for"+PaO();
ppL=Bracket(str,"()");
tmp1=forstr+6;
tmp=select(ppL,#_1==tmp1);
@@ -2669,7 +2725,7 @@ Deffun(name,bodylist):=(
funstr=funstr+");";
parse(funstr);
tmp=indexof(name,"(");
- str=substring(name,0,tmp-1)+"<-function(";
+ str=substring(name,0,tmp-1)+"<-function"+PaO();
str=str+substring(name,tmp,length(name))+"{";
forall(1..(length(bodylist)-1),nbody,
bdy=bodylist_nbody;
@@ -2704,7 +2760,7 @@ Deffun(name,bodylist):=(
str=str+bdy+";";
);
);
- str=str+"return("+bodylist_(length(bodylist))+")}";
+ str=str+"return"+PaO()+bodylist_(length(bodylist))+")}";
FUNLIST=append(FUNLIST,str);
);
////%Deffun end////
@@ -2725,69 +2781,141 @@ Inwindow(point,xrng,yrng):=(
);
////%Inwindow end////
-////%Windispg start////
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,opcindy);
- if(ADDAXES=="1", //181215from
- Drwxy();
-// ADDAXES="0";
- ); //181215to
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- tmp="connect("+textformat(tmp2,5)+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
+////%Dashlinedata start////
+Dashlinedata(dataorg,sen,gap,ptn):=(
+ regional(data,eps,dtall,len,lenlist,ii,lenall,kari,
+ naga,tobi,nsen,seglist,segunit,hajime,owari,jj,
+ flg,tt,ptL,out,tmp,tmp1,tmp2);
+ eps=10.0^(-6);
+ if(isstring(dataorg),data=parse(dataorg),data=dataorg);
+ dtall=length(data);
+ out=[];
+ len=0; lenlist=[0];
+ forall(2..dtall,ii,
+ len=len+|data_ii-data_(ii-1)|;
+ lenlist=append(lenlist,len);
+ );
+ lenall=lenlist_dtall;
+ if(lenall>0,
+ kari=(sen+gap)*0.1;naga=sen*0.1;tobi=gap*0.1;
+ if(|data_1-data_dtall|<eps,
+ nsen=max([re(ceil(lenall/kari)),3]);
+ segunit=lenall/nsen;
+ naga=segunit*sen/(sen+gap);
+ tobi=segunit*gap/(sen+gap);
+ seglist=apply(0..(nsen-1),#*segunit);
+ ,
+ if(ptn==0,
+ nsen=max([re(ceil((lenall+tobi)/kari)),3]);
+ segunit=lenall*(sen+gap)/(nsen*sen+(nsen-1)*gap);
+ naga=segunit*sen/(sen+gap);
+ tobi=segunit*gap/(sen+gap);
+ seglist=apply(0..(nsen-1),#*segunit);
+ ,
+ nsen=max([re(ceil((lenall+naga)/kari)),3]);
+ segunit=lenall*(sen+gap)/((nsen-1)*sen+nsen*gap);
+ naga=segunit*sen/(sen+gap);
+ tobi=segunit*gap/(sen+gap);
+ seglist=apply(0..(nsen-2),tobi+#*segunit);
+ );
+ );
+ hajime=1;owari=1;
+ forall(1..(length(seglist)),ii,
+ len=seglist_ii;
+ flg=0;
+ forall(owari..dtall,jj,
+ if(flg==0,
+ if(len<lenlist_jj-eps,
+ flg=jj;
+ );
+ );
+ );
+ if(flg>0,hajime=flg-1);
+ flg=0;
+ forall(hajime..dtall,jj,
+ if(flg==0,
+ if(len+naga<lenlist_jj-eps,
+ flg=jj;
);
);
);
+ if(flg>0,owari=flg-1);
+ tt=len-lenlist_hajime;
+ tt=tt/(lenlist_(hajime+1)-lenlist_hajime);
+ tmp=data_hajime+tt*(data_(hajime+1)-data_hajime);
+ ptL=[tmp];
+ forall((hajime+1)..owari,jj,
+ ptL=append(ptL,data_jj);
+ );
+ tt=(len+naga-lenlist_owari);
+ tt=tt/(lenlist_(owari+1)-lenlist_owari);
+ tmp=data_owari+tt*(data_(owari+1)-data_owari);
+ ptL=append(ptL,tmp);
+ out=append(out,ptL);
);
);
- grestore();
- layer(0);
+ out;
);
-Windispg(pltdata):=(
- regional(pdata,Nj,Nk,Dt,tmp,tmp1,tmp2,opcindy);
+////%Dashlinedata end////
+
+////%Windispg start////
+Windispg():=(
+ if(ADDAXES=="1", //181215from
+ Drwxy();
+ ADDAXES="0";
+ ); //181215to
+ Windispg(GCLIST); //190125
+);
+Windispg(gcLorg):=( //190125
+ regional(gcL,Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,tmp4,opcindy);
+ gcL=gcLorg; //190125from
+ if(length(gcL)>0,
+ if(!islist(gcL_1),gcL=[gcL]);
+ ); //190125to
gsave();
layer(KETPIClayer);
- if(!islist(pltdata),tmp=[pltdata],tmp=pltdata);
- pdata=select(GCLIST,contains(tmp,#_1));
- forall(pdata,Nj,
+ forall(gcL,Nj,
if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
if(islist(Dt) & length(Dt)>0, // 12.19,12.22
tmp=MeasureDepth(Dt);
if(tmp==1,Dt=[Dt]);
opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
+ tmp=Nj_2; //190119from
+ if(!islist(tmp),tmp=[tmp,""]); //190123
+ if(tmp_1<0,tmp1=0,tmp1=tmp_1); //190119from
if(tmp1<10,
forall(Dt,Nk,
- tmp2=Nk; // 14.12.04
if(length(Nk)>1,
- tmp="connect("+textformat(tmp2,5)+ // 15.05.11
- ",dashtype->"+text(tmp1)+
- ",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
+ tmp3="";
+ if(indexof(opcindy,"color")==0, //190122from
+ tmp3=tmp3+",linecolor->"+KCOLOR;
+ );
+ tmp3=tmp3+opcindy;
+ if(tmp1==0, //190126from
+ if((length(tmp_2)>0)&(indexof(opcindy,"size")==0),
+ tmp3=tmp3+",size->"+tmp_2;
+ ); //190124to
+ tmp="connect("+Textformat(Nk,5)+tmp3+");";//190125
parse(tmp);
+ ,
+ if(tmp1==1,
+ tmp4=Dashlinedata(Nk,2.5,2.5,0);
+ forall(tmp4,
+ tmp="connect("+Textformat(#,5)+tmp3+");";
+ parse(tmp);
+ );
+ ,
+ tmp3=",dashtype->"+text(tmp1)+tmp3;
+ forall(1..(length(Nk)-1),
+ tmp="draw("+Textformat([Nk_#,Nk_(#+1)],5)+tmp3+");";
+ parse(tmp);
+ );
+ );
);
- );
+ ,
+ tmp="draw("+text(Nk_1)+opcindy+");"; // 14.12.31
+ parse(tmp);
+ ); //190126to
);
);
);
@@ -2830,7 +2958,7 @@ WritetoRS(filename,shchoice):=(
tmp1=format(re(tmp_1),6);// 15.02.05
tmp2=format(re(tmp_2),6);
tmp=#.name+"="+"c("+tmp1+","+tmp2+");";
- tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
+ tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
Plist=append(Plist,tmp);
,
println("Remove the abnormal poiint "+#.name); //181106
@@ -2850,26 +2978,26 @@ WritetoRS(filename,shchoice):=(
println(SCEOUTPUT,"");
);
if(iswindows(),
- println(SCEOUTPUT,"options(encoding='UTF-8')"); //180513
+ println(SCEOUTPUT,"options"+PaO()+"encoding='UTF-8')"); //190111
);
tmp1=replace(Dirwork,"\","/");
if((iswindows())&(indexof(tmp1,"Users")>0),
tmp=Indexall(tmp1,"/");
tmp2=substring(tmp1,tmp_3-1,length(tmp1));
tmp1=substring(tmp1,0,tmp_3-1);
- println(SCEOUTPUT,"Drv=shell('echo %HOMEDRIVE%',intern=TRUE)");
- println(SCEOUTPUT,"Drv=Drv[length(Drv)]");
- println(SCEOUTPUT,"Hpath=shell('echo %HOMEPATH%',intern=TRUE)");
- println(SCEOUTPUT,"Hpath=Hpath[length(Hpath)]");
+ println(SCEOUTPUT,"Drv=shell"+PaO()+"'echo %HOMEDRIVE%',intern=TRUE)"); //190111
+ println(SCEOUTPUT,"Drv=Drv[length"+PaO()+"Drv)]");
+ println(SCEOUTPUT,"Hpath=shell"+PaO()+"'echo %HOMEPATH%',intern=TRUE)");
+ println(SCEOUTPUT,"Hpath=Hpath[length"+PaO()+"Hpath)]");
println(SCEOUTPUT,"Rest="+Dqq(tmp2));
- println(SCEOUTPUT,"Path=paste(Drv,Hpath,Rest,sep='')");
- println(SCEOUTPUT,"Path=gsub('\\','/',Path,fixed=TRUE)"); //180610
- println(SCEOUTPUT,"setwd(Path)");
+ println(SCEOUTPUT,"Path=paste"+PaO()+"Drv,Hpath,Rest,sep='')");
+ println(SCEOUTPUT,"Path=gsub"+PaO()+"'\\','/',Path,fixed=TRUE)"); //180610
+ println(SCEOUTPUT,"setwd"+PaO()+"Path)");
,
- println(SCEOUTPUT,"setwd('"+tmp1+"')");
+ println(SCEOUTPUT,"setwd"+PaO()+"'"+tmp1+"')");
);//180409to
tmp=replace(Libname,"\","/"); //17.09.24from
- println(SCEOUTPUT,"source('"+tmp+".r')"); //181213
+ println(SCEOUTPUT,"source"+PaO()+"'"+tmp+".r')"); //181213
if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
if(GPACK=="tpic",GPACK="pict2e");
);
@@ -2879,20 +3007,20 @@ WritetoRS(filename,shchoice):=(
);
if(GPACK=="tikz", //181213from
tmp=replace(tmp+"_reptikz","\","/");
- println(SCEOUTPUT,"source('"+tmp+".r')");
+ println(SCEOUTPUT,"source"+PaO()+"'"+tmp+".r')");
); //181213to
- println(SCEOUTPUT,"Ketinit()");
- println(SCEOUTPUT,"cat(ThisVersion,'\n')");
+ println(SCEOUTPUT,"Ketinit"+PPa(""));
+ println(SCEOUTPUT,"cat"+PaO()+"ThisVersion,'\n')");
println(SCEOUTPUT,"Fnametex='"+Fnametex+"'");
println(SCEOUTPUT,"FnameR='"+FnameR+"'");
println(SCEOUTPUT,"Fnameout='"+Fnameout+"'");
println(SCEOUTPUT,"arccos=acos; arcsin=asin; arctan=atan");
- println(SCEOUTPUT,"Acos<- function(x){acos(max(-1,min(1,x)))}");
- println(SCEOUTPUT,"Asin<- function(x){asin(max(-1,min(1,x)))}");
+ println(SCEOUTPUT,"Acos<- function"+PPa("x")+"{acos"+PaO()+"max"+PaO()+"-1,min"+PaO()+"1,x)))}");
+ println(SCEOUTPUT,"Asin<- function"+PPa("x")+"{asin"+PaO()+"max"+PaO()+"-1,min"+PaO()+"1,x)))}");
println(SCEOUTPUT,"Atan=atan");
- println(SCEOUTPUT,"Sqr<- function(x){if(x>=0){sqrt(x)}else{0}}");
+ println(SCEOUTPUT,"Sqr<- function"+PPa("x")+"{if"+PaO()+"x>=0){sqrt"+PaO()+"x)}else{0}}");
println(SCEOUTPUT,"Factorial=factorial");
- println(SCEOUTPUT,"Norm<- function(x){norm(matrix(x,nrow=1),"+Dqq("2")+")}");
+ println(SCEOUTPUT,"Norm<- function"+PPa("x")+"{norm"+PaO()+"matrix"+PaO()+"x,nrow=1),"+Dqq("2")+")}");
println(SCEOUTPUT,"");
forall(COM0thlist,
if(indexof(#,"Texcom")==0, //17.09.22
@@ -2902,7 +3030,7 @@ WritetoRS(filename,shchoice):=(
);
);
println(SCEOUTPUT,
- "Setwindow(c("+XMIN+","+XMAX+"), c("+YMIN+","+YMAX+"))");
+ "Setwindow(c"+PaO()+XMIN+","+XMAX+"), c"+PaO()+YMIN+","+YMAX+"))");
forall(Plist,
println(SCEOUTPUT,#);
);
@@ -2914,7 +3042,7 @@ WritetoRS(filename,shchoice):=(
if(islist(tmp1),
tmp2="[";
forall(tmp1,
- tmp2=tmp2+textformat(#,6)+",";
+ tmp2=tmp2+Textformat(#,6)+",";
);
tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
,
@@ -2924,27 +3052,27 @@ WritetoRS(filename,shchoice):=(
tmp1=RSform(tmp1);
print(SCEOUTPUT,tmp+"="+tmp1+";"); //17.09.22
// tmp=substring(tmp,0,length(tmp)-1);
- println(SCEOUTPUT,"Assignadd('"+tmp+"',"+tmp+")");
+ println(SCEOUTPUT,"Assignadd"+PaO()+"'"+tmp+"',"+tmp+")");
);
forall(FUNLIST,
println(SCEOUTPUT,#);
);
- forall(GLIST,
+ forall(GLIST, //no ketjs on
println(SCEOUTPUT,RSform(#));
- );
+ ); //no ketjs off
tmp=text(Pnamelist);
- tmp=replace(tmp,"[","list(");
+ tmp=replace(tmp,"[","list"+PaO());
Pnamelist=replace(tmp,"]",")");
println(SCEOUTPUT,"PtL="+Pnamelist);
tmp=select(GCLIST,#_2==-1);
GrL=apply(tmp,#_1);
tmp=text(GrL);
- tmp=replace(tmp,"[","list(");
+ tmp=replace(tmp,"[","list"+PaO());
tmp=replace(tmp,"]",")");
println(SCEOUTPUT,"GrL="+tmp);
tmp1="";
if(length(tmp1)>0,
- tmp1="WriteOutData(Fnameout"+tmp1+");";
+ tmp1="WriteOutData"+PaO()+"Fnameout"+tmp1+");";
println(SCEOUTPUT,tmp1);
);
forall(COM1stlist,
@@ -2955,13 +3083,13 @@ WritetoRS(filename,shchoice):=(
);
);
println(SCEOUTPUT,"");
- println(SCEOUTPUT,"# Windisp(GrL)");
+ println(SCEOUTPUT,"# Windisp"+PPa("GrL"));
println(SCEOUTPUT,"");
- println(SCEOUTPUT,"if(1==1){");
+ println(SCEOUTPUT,"if"+PaO()+"1==1){");
println(SCEOUTPUT,"");
tmp1=replace(Dirwork,"\","/"); //180408to
if((iswindows())&(indexof(tmp1,"Users")>0),
- println(SCEOUTPUT,"Path=paste(Path,"+Dqq("/"+Fnametex)+",sep='')");
+ println(SCEOUTPUT,"Path=paste"+PaO()+"Path,"+Dqq("/"+Fnametex)+",sep='')");
tmp="Openfile(Path,'"+ULEN+"'";
,
tmp="Openfile('"+tmp1+"/"+Fnametex+"','"+ULEN+"'";
@@ -2999,18 +3127,18 @@ WritetoRS(filename,shchoice):=(
); //180721to
);
if(length(GrL)>0,
- println(SCEOUTPUT," Drwline(GrL)");
+ println(SCEOUTPUT," Drwline"+PPa("GrL"));
);
- // println(SCEOUTPUT,"Closefile('"+ADDAXES+"')"); //181224(2line)
- println(SCEOUTPUT,"Closefile("+Dqq("0")+")");
+ // println(SCEOUTPUT,"Closefile"+PaO()+"'"+ADDAXES+"')"); //181224(2line)
+ println(SCEOUTPUT,"Closefile"+PaO()+""+Dqq("0")+")");
println(SCEOUTPUT,"");
println(SCEOUTPUT,"}");
if(shchoice=="sh",
println(SCEOUTPUT,"");
- println(SCEOUTPUT,"quit()");
+ println(SCEOUTPUT,"quit"+PPa(""));
,
println(SCEOUTPUT,"");
- println(SCEOUTPUT,"#quit()");
+ println(SCEOUTPUT,"#quit"+PPa(""));
);
closefile(SCEOUTPUT);
if(iswindows(), //180513from
@@ -3020,14 +3148,14 @@ WritetoRS(filename,shchoice):=(
tmp=Indexall(tmp1,"/");
tmp2=substring(tmp1,tmp_3-1,length(tmp1));
tmp1=substring(tmp1,0,tmp_3-1);
- println(SCEOUTPUT,"Drv=shell('echo %HOMEDRIVE%',intern=TRUE)");
- println(SCEOUTPUT,"Drv=Drv[length(Drv)]");
- println(SCEOUTPUT,"Hpath=shell('echo %HOMEPATH%',intern=TRUE)");
- println(SCEOUTPUT,"Hpath=Hpath[length(Hpath)]");
+ println(SCEOUTPUT,"Drv=shell"+PaO()+"'echo %HOMEDRIVE%',intern=TRUE)");
+ println(SCEOUTPUT,"Drv=Drv[length"+PaO()+"Drv)]");
+ println(SCEOUTPUT,"Hpath=shell"+PaO()+"'echo %HOMEPATH%',intern=TRUE)");
+ println(SCEOUTPUT,"Hpath=Hpath[length"+PaO()+"Hpath)]");
println(SCEOUTPUT,"Rest="+Dqq(tmp2));
- println(SCEOUTPUT,"Path=paste(Drv,Hpath,Rest,sep='')");
- println(SCEOUTPUT,"setwd(Path)");
- println(SCEOUTPUT,"source('"+filename+"',encoding='UTF-8')");
+ println(SCEOUTPUT,"Path=paste"+PaO()+"Drv,Hpath,Rest,sep='')");
+ println(SCEOUTPUT,"setwd"+PaO()+"Path)");
+ println(SCEOUTPUT,"source"+PaO()+"'"+filename+"',encoding='UTF-8')");
);
closefile(SCEOUTPUT);
); //180513to
@@ -3071,21 +3199,21 @@ Extractdata(number,name,options):=(
if(Noflg<3,
println("extract outdata "+name);
tmp1=parse(name);
- tmp3=[ //17.09.18
- "Tmpout=ReadOutData("+Dq+File+Dq+")"
+ tmp3=[ //17.09.18 //no ketjs on
+ "Tmpout=ReadOutData("+Dq+File+Dq+")"
];
- GLIST=concat(GLIST,tmp3);
+ GLIST=concat(GLIST,tmp3); //no ketjs off
);
if(Noflg<2,
if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904
+ ); //no ketjs off
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
- );
- ,
+ ); //no ketjs off
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -3175,11 +3303,11 @@ ReadOutData(pathorg,filenameorg,optionsorg):=(
if(length(ptL)>0,
if(length(ptL)==1,
ptL=ptL_1;
- tmp=apply(ptL,textformat(#,6));
+ tmp=apply(ptL,Textformat(#,6));
,
tmp="[";
forall(ptL,tmp1,
- tmp=tmp+apply(tmp1,textformat(#,6))+",";
+ tmp=tmp+apply(tmp1,Textformat(#,6))+",";
);
tmp=substring(tmp,0,length(tmp)-1)+"]";
);
@@ -3189,7 +3317,7 @@ ReadOutData(pathorg,filenameorg,optionsorg):=(
parse(varname+"="+tmp);
outdt=append(outdt,ptL);
ptL=[];
- varname=cmd;
+ varname=cmd;
varL=append(varL,varname);
);
);
@@ -3197,11 +3325,11 @@ ReadOutData(pathorg,filenameorg,optionsorg):=(
if(length(ptL)>0,
if(length(ptL)==1,
ptL=ptL_1;
- tmp=apply(ptL,textformat(#,6));
+ tmp=apply(ptL,Textformat(#,6));
,
tmp="[";
forall(ptL,tmp1,
- tmp=tmp+apply(tmp1,textformat(#,6))+",";
+ tmp=tmp+apply(tmp1,Textformat(#,6))+",";
);
tmp=substring(tmp,0,length(tmp)-1)+"]";
);
@@ -3344,7 +3472,7 @@ Makeshell(texmainfile,flow):=(
);
);
);
- if(flg==0, // 17.10.13(Norbert)
+ if(flg==0, // 17.10.13[Norbert]
tex=PathT;
path="";
);
@@ -3511,7 +3639,7 @@ Makebat(texmainfile,flow):=(
);
);
);
- if(flg==0, // 17.10.13(Norbert)
+ if(flg==0, // 17.10.13[Norbert]
tex=PathT;
path="";
);
@@ -3597,7 +3725,7 @@ Usegraphics(gpack):=( //180817
//help:Usegraphics("pict2e");
if(!contains(ADDPACK,gpack),
if(gpack =="tikz", //181213from
- Addpackage(["pgf","tikz"]);
+ Addpackage(["pgf","tikz"]); //190101
,
Addpackage([gpack]);
); //181213to
@@ -3615,11 +3743,15 @@ Viewtex():=(
SCEOUTPUT=openfile(texfile+".tex");
tmp="\documentclass{article}"; // 16.06.09from
if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- ); // 16.06.09until
+ if(GPACK=="tikz",
+ tmp="\documentclass[dvipdfmx]{article}"; // 190101
+ ,
+ tmp=replace(tmp,"article","jarticle");
+ if(indexof(PathT,"uplatex")>0, //17.08.13from
+ tmp=replace(tmp,"jarticle","ujarticle");
+ );//17.08.13to
+ );
+ ); // 16.06.09to
println(SCEOUTPUT,tmp);
if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), //181213from
if(GPACK=="tpic", GPACK="pict2e");
@@ -3636,7 +3768,7 @@ Viewtex():=(
);
);
if(GPACK=="tikz",
- println(SCEOUTPUT,"\usepackage[pgf,tikz}");//16.11.24
+// println(SCEOUTPUT,"\usepackage{pgf,tikz}");//190101
println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
if(indexof(PathT,"lualatex")>0,
println(SCEOUTPUT,"\usepackage{luatexja}");
@@ -3930,7 +4062,7 @@ Makehelplist(libname):=(
flg=0;
forall(1..3,
if(flg==0,
- if(substring(cmdall_#,0,7)=="start()",
+ if(substring(cmdall_#,0,7)=="start"+PPa(""),
cmdall=cmdall_((#+1)..length(cmdall));
flg=1;
);
@@ -3940,7 +4072,7 @@ Makehelplist(libname):=(
tmp=length(cmdall);
forall(0..2,
if(flg==0,
- if(substring(cmdall_(tmp-#),0,5)=="end()",
+ if(substring(cmdall_(tmp-#),0,5)=="end"+PPa(""),
cmdall=cmdall_(1..(tmp-#-1));
flg=1;
);
@@ -4467,11 +4599,11 @@ Maketitle(name):=(
println(SCEOUTPUT,"title::"+name+"//");
println(SCEOUTPUT,"");
println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
- println(SCEOUTPUT,"main::(title)//");
+ println(SCEOUTPUT,"main::"+PaO()+"title)//");
println(SCEOUTPUT,"\slidepage[m]//");
println(SCEOUTPUT,"");
println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
- println(SCEOUTPUT,"new::(title)//");
+ println(SCEOUTPUT,"new::"+PaO()+"title)//");
println(SCEOUTPUT,"%repeat=1,para//");
println(SCEOUTPUT,"\slidepage//");
println(SCEOUTPUT,"");
@@ -4504,7 +4636,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
if(sestr=="",
RepeatList_nn=append(RepeatList_nn,ss);
);
- );
+ );
if(sestr=="",
seL=[1];
,
@@ -4513,7 +4645,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
tmp1=replace(tmp1,"-,","1..");
tmp1="["+tmp1+"]"; //17.01.03
seL=flatten(parse(tmp1)); //17.01.03
- );
+ );
if(contains(seL,1),
if(substring(ss,0,1)!="%", //16.01.04
println(SCEOUTPUT,ss);
@@ -4548,7 +4680,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
if(substring(str,0,1)!="%",
if(NonThinFlg==0,
if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- if(MiniFlg==0, //180526from
+ if(MiniFlg==0, //180526from
println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
println(SCEOUTPUT,str);
println(SCEOUTPUT,"}%");
@@ -4598,7 +4730,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
tmp=seL_nn;
if(NonThinFlg==0,
if(!contains(["\begi","\end{"],substring(str,0,5)),//180526from
- if(MiniFlg==0,
+ if(MiniFlg==0,
tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
tmp1=[tmp1,str,"}%"];
,
@@ -4671,9 +4803,9 @@ Presentation(texfile,txtfile):=(
// tmp=load(tmp1); //181125from
tmp=readfile2str(Dirwork,tmp1);
tmp=replace(tmp,"////","||||");
- tmp=replace(tmp,"/LF/::","::");
- tmp=replace(tmp,"///LF/","/LF/");
- slideL=tokenize(tmp,"/LF/"); //181125to
+ tmp=replace(tmp,"/L"+"F/::","::");
+ tmp=replace(tmp,"///L"+"F/","/L"+"F/");
+ slideL=tokenize(tmp,"/L"+"F/"); //181125to
slideorgL=slideL; // 16.07.11
slideL=apply(slideL,Removespace(#));
tmp=select(1..length(slideL),length(slideL_#)>0); // 16.07.11from
@@ -4891,7 +5023,7 @@ Presentation(texfile,txtfile):=(
tmp1="";
tmp2="";
tmp3="";
- sld=removespace(slideL_ns); // 16.06.28
+ sld=Removespace(slideL_ns); // 16.06.28
sestr="";
if((substring(sld,0,1)=="%") & (substring(sld,0,2)!="%%"), // 17.06.23
Repeatsameslide(repeatflg,"",[slideL_ns]);
@@ -5034,7 +5166,7 @@ Presentation(texfile,txtfile):=(
+text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+"}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}");
);
- tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; //180529(2lines)
+ tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; //180529[2lines]
tmp=tmp+text(paractr+1)+"pg"+text(1);
tmp3=append(tmp3,
text(LinkPosH)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19
@@ -5044,7 +5176,7 @@ Presentation(texfile,txtfile):=(
tmp3=apply(tmp3,tmp,"\putnotew{"+tmp);
tmp4=concat(tmp4,tmp3);// 17.01.12to
tmp="\putnotee{"+text(LinkPosH+1)+"}{"+text(LinkPosV)+"}";//180524
- tmp=tmp+"{\scriptsize\color{blue} "+text(#)+"/"+text(nrep)+"}"; //180524(blue)
+ tmp=tmp+"{\scriptsize\color{blue} "+text(#)+"/"+text(nrep)+"}"; //180524[blue]
tmp4=append(tmp4,tmp);
tmp4=concat(tmp4,["\end{layer}",""]);//16.12.31until
Repeatsameslide(repeatflg,text([#]),tmp4);
@@ -5056,7 +5188,7 @@ Presentation(texfile,txtfile):=(
flg=1;
); //17.06.23to
if(flg==0,
- if(indexof(sld,"\begin{verbatim}")==1, // 16.06.28from
+ if(indexof(sld,"\begin{verbatim}")==1, // 16.06.28from
Repeatsameslide(repeatflg,sestr,[slideL_ns]);
verbflg=1;
flg=1;
@@ -5245,7 +5377,7 @@ Presentation(texfile,txtfile):=(
);
if(flg==0&tmp1=="end"&(length(flgL)>0), //180526
tmp=flgL_(length(flgL));
- if(tmp=="i",
+ if(tmp=="i",
Repeatsameslide(repeatflg,sestr,["\end{itemize}"]);
);
if(tmp=="e",
@@ -5329,7 +5461,7 @@ Mkslides():=(
Dirwork=replace(Dirwork,"/",pathsep());
parent=replace(Dirwork+Batparent,"/",pathsep());// 16.05.29
);
- tmp=replace(Dirwork,pathsep()+"fig","");//180604(2lines)
+ tmp=replace(Dirwork,pathsep()+"fig","");//180604[2lines]
Changework(tmp);
Setdirectory(Dirwork);
if(!iswindows(), //180604from
@@ -5411,32 +5543,32 @@ Mkslidesummary(inputfile,outputfile,options):=(
fout=outputfile;
if(indexof(fout,".")==0,fout=fout+".tex");
cmdL=[
- "Dt=readLines('"+fin+"',encoding='UTF-8')",[],
- "num=grep('hypertarget',Dt,fixed=TRUE)",[], //180412
- "Dt=Dt[setdiff(1:length(Dt),num)]",[],
- "Smain=c();Snew=c();Ssame=c()",[],
- "for(J in 1:length(Dt)){",[],
- " Tmp=length(grep('mainslide{',Dt[J],fixed=TRUE))",[], //180412
- " if(Tmp>0){Smain=c(Smain,1)}else{Smain=c(Smain,0)}",[],
- " Tmp=length(grep('newslide{',Dt[J],fixed=TRUE))",[], //180412
- " if(Tmp>0){Snew=c(Snew,1)}else{Snew=c(Snew,0)}",[],
- " Tmp=length(grep('sameslide',Dt[J],fixed=TRUE))",[], //180412
- " if(Tmp>0){Ssame=c(Ssame,1)}else{Ssame=c(Ssame,0)}",[],
+ "Dt=readLines"+PaO()+"'"+fin+"',encoding='UTF-8')",[],
+ "num=grep"+PaO()+"'hypertarget',Dt,fixed=TRUE)",[], //180412
+ "Dt=Dt[setdiff"+PaO()+"1:length"+PaO()+"Dt),num)]",[],
+ "Smain=c"+PPa("")+";Snew=c"+PPa("")+";Ssame=c"+PPa(""),[],
+ "for"+PaO()+"J in 1:length"+PaO()+"Dt)){",[],
+ " Tmp=length"+PaO()+"grep"+PaO()+"'mainslide{',Dt[J],fixed=TRUE))",[], //180412
+ " if"+PaO()+"Tmp>0){Smain=c"+PaO()+"Smain,1)}else{Smain=c"+PaO()+"Smain,0)}",[],
+ " Tmp=length"+PaO()+"grep"+PaO()+"'newslide{',Dt[J],fixed=TRUE))",[], //180412
+ " if"+PaO()+"Tmp>0){Snew=c"+PaO()+"Snew,1)}else{Snew=c"+PaO()+"Snew,0)}",[],
+ " Tmp=length"+PaO()+"grep"+PaO()+"'sameslide',Dt[J],fixed=TRUE))",[], //180412
+ " if"+PaO()+"Tmp>0){Ssame=c"+PaO()+"Ssame,1)}else{Ssame=c"+PaO()+"Ssame,0)}",[],
"}",[],
- "Nnew=c();Nsame=c()",[],
- "for(J in 1:length(Dt)){",[],
- " if((Snew[J]==1)|(Smain[J]==1)){Nnew=c(Nnew,J)}",[],
- " if(Ssame[J]==1){Nsame=c(Nsame,J)}",[],
+ "Nnew=c"+PPa("")+";Nsame=c"+PPa(""),[],
+ "for"+PaO()+"J in 1:length"+PaO()+"Dt)){",[],
+ " if"+PaO(2)+"Snew[J]==1)|"+PaO()+"Smain[J]==1)){Nnew=c"+PaO()+"Nnew,J)}",[],
+ " if"+PaO()+"Ssame[J]==1){Nsame=c"+PaO()+"Nsame,J)}",[],
"}",[],
"Out=Dt[1:Nnew[1]]",[],
- "for(J in Looprange(2,length(Nnew))){",[],
- " Tmp=max(c(1,Nsame[Nsame<Nnew[J]]))",[],
- " Tmp=max(c(Tmp,Nnew[J-1]))+1",[],
- " Out=c(Out,Dt[Tmp:Nnew[J]])",[],
+ "for"+PaO()+"J in Looprange"+PaO()+"2,length"+PaO()+"Nnew))){",[],
+ " Tmp=max"+PaO()+"c"+PaO()+"1,Nsame[Nsame<Nnew[J]]))",[],
+ " Tmp=max"+PaO()+"c"+PaO()+"Tmp,Nnew[J-1]))+1",[],
+ " Out=c"+PaO()+"Out,Dt[Tmp:Nnew[J]])",[],
"}",[],
- "Tmp=max(c(Nsame[-1],Nnew[-1]))+1",[],
- "Out=c(Out,Dt[Tmp:length(Dt)])",[],
- "writeLines(Out,'"+fout+"',sep='\n')",[] //180412(2lines removed)
+ "Tmp=max"+PaO()+"c"+PaO()+"Nsame[-1],Nnew[-1]))+1",[],
+ "Out=c"+PaO()+"Out,Dt[Tmp:length"+PaO()+"Dt)])",[],
+ "writeLines"+PaO()+"Out,'"+fout+"',sep='\n')",[] //180412[2lines removed]
];
CalcbyR("",cmdL,append(options,"Cat=n"));//180412
wait(1000);
@@ -5482,8 +5614,8 @@ Example(exorg,suborg):=(
////%Example end////
////%BBdata start////
-BBdata():=Bbdata(BBTarget,0);
-BBdata(fname):=Bbdata(fname,0); // 16.04.09
+BBdata():=BBdata(BBTarget,0);
+BBdata(fname):=BBdata(fname,0); // 16.04.09
BBdata(fname,optionorg):=(
//help:BBdata(filename);
//help:BBdata(options=0(automatic),1(make),"w=","h=");
@@ -5506,7 +5638,7 @@ BBdata(fname,optionorg):=(
if(path=="",path=Dirwork);//16.10.05
if(indexof(file,".")==0,file=file+".pdf");
if(islist(optionorg),options=optionorg,options=[optionorg]);
- tmp=divoptions(options);
+ tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
stL=tmp_7;
@@ -5612,13 +5744,13 @@ BBdata(fname,optionorg):=(
tmp=tmp_2; //
tmp1=indexof(tmp,":");
tmp=substring(tmp,tmp1,length(tmp));
- tmp=removespace(tmp);
+ tmp=Removespace(tmp);
tmp=tokenize(tmp," ");
tmp1="";
forall(tmp,
tmp1=tmp1+Sprintf(#,2)+" ";
);
- tmp1=removespace(tmp1)+addop;
+ tmp1=Removespace(tmp1)+addop;
tmp2="\includegraphics[bb="+tmp1+"]{"+file+"}";
println(tmp2);
);
@@ -5628,5 +5760,528 @@ BBdata(fname,optionorg):=(
);
////%BBdata end////
+////%Findfun start////
+Findfun(name,lineorg):=(
+ regional(line,sep,pL,jj,kk,flg,rmv,out,tmp,tmp1,tmp2);
+ line=Removespace(lineorg);
+ rmv=[name,"regional","forall","if","text","curkernel","append","concat"];
+ rmv=concat(rmv,["append","apply","allelements","indexof"]);
+ rmv=concat(rmv,["substring","select","isstring","length"]);
+ rmv=concat(rmv,["round","unicode","openfile","closefile","println","replace"]);
+ rmv=concat(rmv,["setdirectory","parse","tokenize","import","load","ispoint"]);
+ rmv=concat(rmv,["isreal","layer","autoclearlayer","drawpoly","allcircles"]);
+ rmv=concat(rmv,["floor","flatten","prepend","islist","print","mod","abs","sum"]);
+ rmv=concat(rmv,["cos","sin","tan","arccos","arcsin","arctan","sqrt","reverse","re"]);
+ rmv=concat(rmv,["sort","contains","max","min","allpoints","isselected","common"]);
+ rmv=concat(rmv,["inspect","iscircle","alllines","repeat","remove","format"]);
+ rmv=concat(rmv,["ceil","while","dist","det","exp","err","arctan2","fillpoly"]);
+ rmv=concat(rmv,["drawtext","mouse","allsegments","createpoint","create"]);
+ rmv=concat(rmv,["gsave","connect","draw","grestore","wait"]);
+
+// rmv=concat(rmv,["d","list","c","funN","funP","function","for","return"]); // in string (for R)
+// rmv=concat(rmv,["gsub","cat"]); // in string (for R)
+// rmv=concat(rmv,["options"]); // written for Windows
+// rmv=concat(rmv,["isexists"]); // java functions
+
+ sep=[""," ",",","=","(","+","-","*","/","^","_","[",".","!","&","%",Dq,";",">","<",unicode("0009")];
+ out=[];
+ if(substring(line,0,2)!="//",
+ pL=Indexall(line,"(");
+ forall(pL,jj,
+ flg=0;
+ if(contains(pL,jj-1), flg=1);
+ forall(reverse(1..(jj-1)),
+ if(flg==0,
+ if(#==1,
+ tmp=substring(line,0,1);
+ if(contains(sep,tmp),
+ tmp=substring(line,1,jj-1);
+ ,
+ tmp=substring(line,0,jj-1);
+ );
+ flg=1;
+ );
+ );
+ if(flg==0,
+ tmp=substring(line,#-1,#);
+ if(contains(sep,tmp),
+ tmp=substring(line,#,jj-1);
+ if(indexof(substring(line,0,#-1),"//")==0,
+ flg=1;
+ );
+ );
+ );
+ );
+ if((flg==1)&(length(tmp)>0),
+ out=append(out,tmp);
+ );
+ );
+ );
+ out=remove(out,rmv);
+ tmp=out;
+ out=[];
+ forall(tmp,
+ if(!contains(out,#),out=append(out,#));
+ );
+ out;
+);
+////%Findfun end////
+
+////%Extractfun start////
+Extractfun(strL):=(
+ regional(nL,str,str2,start,sep,out,tmp,tmp1,tmp2);
+ out=[];
+ forall(strL,str,
+ nL=Indexall(str,Dq);
+ str2="";
+ start=0;
+ forall(1..(length(nL)/2),
+ tmp1=nL_(2*#-1);
+ str2=str2+substring(str,start,tmp1-1);
+ start=nL_(2*#);
+ );
+ str2=str2+substring(str,start,length(str));
+ fL=Findfun("csdraw",str2);
+ out=remove(out,fL);
+ out=concat(out,fL);
+ );
+);
+////%Extractfun end////
+
+//DL1=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic1list.txt");
+//DL2=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic2list.txt");
+//DL=concat(DL1,DL2);
+//Out=[];
+
+////%Extractall start////
+Extractall(name):=(
+ regional(fL,jj,tmp,tmp1,tmp2,tmp3);
+ fL=apply(Out,#_1);
+ tmp1=select(DL,#_1==name);
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ if(!contains(fL,tmp1),
+ Out=append(Out,tmp1);
+ fL=append(fL,tmp1_1);
+ if(length(tmp1)>=5,
+ forall(5..(length(tmp1)),jj,
+ tmp=tmp1_jj;
+ if(!contains(fL,tmp),
+ Extractall(tmp);
+ );
+ );
+ );
+ );
+ );
+ tmp1=Out;
+ Out=[];
+ forall(1..(length(tmp1)),
+ if(!contains(Out,tmp1_#),
+ Out=append(Out,tmp1_#);
+ );
+ );
+ Out;
+);
+////%Extractall end////
+
+////%Copyketcindyjs start//// 190128
+Copyketcindyjs():=(
+ regional(tmp,tmp1,tmp2,drive,fname);
+ if(iswindows(),
+ drive="C:";
+ fname=Dirhead;
+ tmp=indexof(fname,":");
+ if(tmp>0,
+ drive=substring(Dirwork,0,tmp);
+ fname=substring(fname,tmp,length(fname));
+ );
+ kc():=(
+ println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
+ );
+ SCEOUTPUT = openfile(Batparent);
+ println(SCEOUTPUT,drive);
+ println(SCEOUTPUT,"cd "+Dqq(fname));
+ println(SCEOUTPUT,"set xcp="+Dqq("\Windows\System32\xcopy"));
+ tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\");
+ tmp2=" "+Dqq(Dircdy+"ketcindyjs\");
+ println(SCEOUTPUT,tmp1+"Cindy.js.map"+tmp2);
+ println(SCEOUTPUT,tmp1+"webfont.js"+tmp2);
+ println(SCEOUTPUT,tmp1+"katex-plugin.js"+tmp2);
+ println(SCEOUTPUT,tmp1+"Cindy.js"+tmp2);
+ println(SCEOUTPUT,tmp1+"CindyJS.css"+tmp2);
+ tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\katex\");
+ tmp2=" "+Dqq(Dircdy+"ketcindyjs\katex\");
+ println(SCEOUTPUT,tmp1+"katex.min.css"+tmp2);
+ println(SCEOUTPUT,tmp1+"katex.min.js"+tmp2);
+ tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\katex\fonts\");
+ tmp2=" "+Dqq(Dircdy+"ketcindyjs\katex\fonts\");
+ println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.ttf"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.woff"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.woff2"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.ttf"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.woff"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.woff2"+tmp2);
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ ,
+ kc():=(
+ println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));
+ );
+ SCEOUTPUT = openfile(Shellparent);
+ println(SCEOUTPUT,"#!/bin/sh");
+ println(SCEOUTPUT,"cd "+Dqq(Dirhead));
+ println(SCEOUTPUT,"cp -r -p ketcindyjs "+Dircdy+"/");
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ );
+ kc();
+);
+////%Coptketcindyjs end////
+
+////%Ketjsoption start//// 190201
+Ketjsoption():=Setketcindyjs();
+Ketjsoption(list):=Setketcindyjs(list);
+////%Ketjsoption end////
+
+////%Setketcindyjs start//// 190201
+Setketcindyjs():=(
+ KETJSOP;
+);
+Setketcindyjs(list):=(
+//help:Setketcindyjs();
+//help:Setketcindyjs(["Local=(n)","Scale=(1)","Nolabel=[]"]);
+ regional(eqL,color,tmp);
+ tmp=Divoptions(list);
+ eqL=tmp_5;
+ tmp=tmp_(length(tmp));
+ tmp=substring(tmp,1,length(tmp));
+ tmp=replace(tmp,"->","=");
+ parse(tmp);
+ tmp=round(255*color);
+ if(color!=[0,0,0],eqL=append(eqL,"Color="+text(tmp)));
+ KETJSOP=eqL;
+ KETJSOP;
+);
+////%Setketcindyjs end////
+
+////%Mkketcindyjs start//// 190115
+Mkketcindyjs():=Mkketcindyjs(KETJSOP); //190129
+Mkketcindyjs(options):=( //17.11.18
+//help:Mkketcindyjs();
+//help:Mkketcindyjs(options=["Local=(n)","Scale=(1)","Nolabel=[]","Color=","Grid="]);
+//help:Mkketcindyjs(optionsadd=["Web=(y)","Path=Dircdy"]);
+ regional(webflg,localflg,htm,htmorg,from,upto,flg,fL,fun,jj,tmp,tmp1,tmp2,tmp3,
+ lib1,lib2,jc,nn,name,partL,toppart,lastpart,path,ketflg,flg,cmdL,scale,nolabel,
+ color,grid,out,igL,DL,Out);
+ webflg="Y"; //190128 texflg removed
+ localflg="N"; //190128
+ scale=1; //190129
+ nolabel=["SW","NE"]; //190129
+ color="";
+ grid="";
+ path=Dircdy;
+ forall(options,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
+ if(tmp1=="W",
+ webflg=Toupper(substring(tmp2,0,1));
+ );
+ if(tmp1=="L",
+ localflg=Toupper(substring(tmp2,0,1));
+ );
+ if(tmp1=="S",
+ scale=parse(tmp2);
+ );
+ if(tmp1=="N",
+ tmp=tmp2;
+ if(indexof(tmp2,"[")>0,
+ tmp=substring(tmp2,1,length(tmp2)-1);
+ );
+ tmp=tokenize(tmp,",");
+ nolabel=concat(nolabe,tmp);
+ );
+ if(tmp1=="C",
+ color=tmp2;
+ if(substring(color,0,1)=="[", //190130from
+ color=substring(color,1,length(color)-1);
+ ); //190130to
+ );
+ if(tmp1=="G",
+ grid=tmp2;
+ );
+ if(tmp1=="P",
+ if(!tmp2="Dircdy",
+ path=tmp2;
+ );
+ );
+ );
+ if((webflg=="N")&(localflg=="Y"),
+ if(!isexists(Dircdy,"ketcindyjs"),
+ Copyketcindyjs();
+ println("ketcindyjs has been copied");
+ );
+ );
+ if(!isexists(Dircdy,Fhead+".html"),
+ drawtext(mouse().xy-[0,1],"'Write/Rewrite to CindyJS' at first",size->24,color->[1,0,0]);
+ wait(3000);
+ ,
+ htmorg=Readlines(Dircdy,Fhead+".html");
+ tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csdraw"))>0);
+ from=tmp_1+1;
+ flg=0;
+ forall(from..(length(htmorg)),
+ if(flg==0,
+ if(indexof(htmorg_#,"</script>")>0,
+ upto=#-1;
+ flg=1;
+ );
+ );
+ );
+ fL=Extractfun(htmorg_(from..upto));
+ DL=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic1list.txt");
+ tmp=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic2list.txt");
+ DL=concat(DL,tmp); //DL and Out arenecessary for Extractall
+ Out=[];
+ forall(fL,fun,
+ Extractall(fun);
+ );
+ tmp=Readlines(Dirhead+pathsep()+"ketcindyjs","ignoredfun.txt");
+ tmp=apply(tmp,Removespace(#)); //190131
+ igL=select(tmp,(length(#)>0)&(substring(#,0,2)!="//")); //190131
+ tmp1=select(Out,contains(igL,#_1));
+ Out=remove(Out,tmp1); USEDFUN=apply(Out,#_1); //190130
+ tmp1=select(1..(length(htmorg)),indexof(htmorg_#,"script id=")>0);
+ partL=[];
+ forall(tmp1,nn,
+ from=nn;
+ tmp2=htmorg_from;
+ tmp=Indexall(tmp2,Dq);
+ name=substring(tmp2,tmp_1,tmp_2-1);
+ tmp=select((from+1)..(length(htmorg)),indexof(htmorg_#,"</script>")>0);
+ upto=tmp_1;
+ partL=append(partL,[name,from,upto]);
+ );
+ tmp=apply(partL,#_2);
+ tmp=min(tmp)-1;
+ toppart=[1,tmp];
+ tmp=apply(partL,#_3);
+ tmp=max(tmp)+1;
+ lastpart=[tmp,length(htmorg)];
+ if(webflg=="Y",
+ tmp1=Fhead+"json.html";
+ ,
+ tmp1=Fhead+"jsoff.html";
+ );
+ setdirectory(path);
+ SCEOUTPUT = openfile(tmp1);
+ tmp1=htmorg_((toppart_1)..(toppart_2));
+ if(webflg=="N",
+ if(localflg=="N", //190128
+ tmp3=replace(Dirhead+"/ketcindyjs/",pathsep(),"/");
+ tmp= " <link rel="+Dqq("stylesheet")+" href=";
+ tmp=tmp+Dq+"file:///"+tmp3+"CindyJS.css"+Dq+">";
+ tmp1_(length(tmp1)-2)=tmp;
+ tmp= " <script type="+Dqq("text/javascript")+" src=";
+ tmp=tmp+Dq+"file:///"+tmp3+"Cindy.js"+Dq+"></script>";
+ tmp1_(length(tmp1)-1)=tmp;
+ tmp=" <script type="+Dqq("text/javascript")+" src="; //190117from
+ tmp1_(length(tmp1))=""; //190120
+ ,
+ tmp1_(length(tmp1)-2)= //190128from
+ " <link rel="+Dqq("stylesheet")+" href="+Dqq("ketcindyjs/CindyJS.css")+">"; //190203
+ tmp1_(length(tmp1)-1)=
+ " <script type="+Dqq("text/javascript")+" src="+Dqq("ketcindyjs/Cindy.js")+"></script>"; //190203
+ tmp1_(length(tmp1))=""; //190128to
+ );
+ ,
+ tmp1_(length(tmp1))=""; //190117to
+ );
+ forall(tmp1,
+ println(SCEOUTPUT,#);
+ );
+ tmp="<script id="+Dqq("csinit")+" type=";
+ tmp=tmp+Dqq("text/x-cindyscript")+">";
+ println(SCEOUTPUT,tmp);
+ tmp=Readlines(Dirhead+pathsep()+"ketcindyjs","commonused.txt");
+ forall(tmp,
+ println(SCEOUTPUT,#);
+ );
+ lib1=Readlines(Dirhead+"/ketlib","ketcindylibbasic1r.cs");
+ lib2=Readlines(Dirhead+"/ketlib","ketcindylibbasic2r.cs");
+ forall(Out,fun,
+ libf=fun_2;from=fun_3;upto=fun_4;
+ if(indexof(libf,"basic1")>0,
+ tmp1=lib1_(from..upto);
+ ,
+ tmp1=lib2_(from..upto);
+ );
+ ketflg="off"; //190122from
+ forall(tmp1,
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ println(SCEOUTPUT,#);
+ );
+ ); //190122to
+ );
+ );
+ );
+ tmp=select(partL,#_1=="csinit");
+ if(length(tmp)>0,
+ tmp=tmp_1;
+ from=tmp_2;
+ upto=tmp_3;
+ tmp1=htmorg_((from+1)..(upto-1)); //190119
+ forall(tmp1,
+ if((indexof(#,"import(")==0)&(indexof(#,"use(")==0),
+ println(SCEOUTPUT,#);
+ );
+ );
+ );
+ println(SCEOUTPUT,"</script>");
+ tmp=select(partL,#_1=="csdraw");
+ tmp=tmp_1;
+ from=tmp_2;
+ upto=tmp_3;
+ tmp1=htmorg_(from..upto);
+ ketflg="off"; //190202from
+ forall(tmp1,
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ println(SCEOUTPUT,#);
+ );
+ );
+ );
+ );
+ tmp1=htmorg_((lastpart_1)..(lastpart_2));
+ tmp=select(1..(length(tmp1)),indexof(tmp1_#,Dqq("cs*"))>0);
+ tmp=tmp_1;
+ forall(1..tmp, //190117from
+ println(SCEOUTPUT,tmp1_#);
+ );
+ from=tmp+1; //190117to
+ tmp=" use: ["+Dqq("katex")+"],";
+ println(SCEOUTPUT,tmp);
+ out=[]; //190129
+ forall(from..(length(tmp1)),jj,
+ flg=0; //190126from
+ tmp2=["Figure","Parent","ParaF","Anime","Flip","Title","Slide","Digest",
+ "KeTJS","KeTJSoff","Objview"];
+ if(indexof(tmp1_jj,"type: "+Dqq("Button"))>0,
+ nn=indexof(tmp1_jj,"text: ");
+ tmp=substring(tmp1_jj,nn-1,length(tmp1_jj));
+ nn=Indexall(tmp,Dq);
+ tmp=substring(tmp,nn_1,nn_2-1);
+ if(!contains(tmp2,tmp),
+ out=append(out,tmp1_jj); //190129
+ );
+ flg=1;
+ );
+ if(flg==0,
+ tmp=indexof(tmp1_jj,"type: "+Dq+"Free")+indexof(tmp1_jj,"type: "+Dq+"Point");
+ if(tmp>0,
+ tmp2=tmp1_jj;
+ tmp=Indexall(tmp2,Dq); //190129from
+ tmp=substring(tmp2,tmp_1,tmp_2-1);
+ if(contains(nolabel,tmp),
+ if(indexof(tmp2,"labeled: true")>0,
+ tmp2=replace(tmp2,"labeled: true","labeled: false");
+ );
+ );
+ if(indexof(tmp2,"size:")==0,
+ tmp2=replace(tmp2,"}",", size: 3.0}");
+ out=append(out,tmp2); //190129
+ ,
+ out=append(out,tmp2); //190129
+ ); //190129to
+ flg=1;
+ );
+ );
+ if(flg==0,
+ out=append(out,tmp1_jj); //190129
+ ); //190126to
+ );
+ tmp=select(1..(length(out)),indexof(out_#," ],")>0); //190129from
+ tmp=tmp_1;
+ tmp1=out_(tmp-1);
+ if(substring(tmp1,length(tmp1)-1,length(tmp1))==",", //190201from
+ out_(tmp-1)=substring(tmp1,0,length(tmp1)-1);
+ ); //190201to
+ tmp=select(1..(length(out)),indexof(out_#,"width:")>0);
+ jj=tmp_1;
+ tmp1=out_jj;
+ flg=0;
+ forall(1..(length(tmp1)-1),
+ if(flg==0,
+ tmp=substring(tmp1,#-1,#);
+ if(tmp==":",
+ tmp2=substring(tmp1,#+1,length(tmp1)-1);
+ flg=1;
+ );
+ );
+ );
+ tmp=round(scale*parse(tmp2));
+ out_jj=" width: "+text(tmp)+",";
+ tmp=select(1..(length(out)),indexof(out_#,"height:")>0);
+ jj=tmp_1;
+ tmp1=out_jj;
+ flg=0;
+ forall(1..(length(tmp1)-1),
+ if(flg==0,
+ tmp=substring(tmp1,#-1,#);
+ if(tmp==":",
+ tmp2=substring(tmp1,#+1,length(tmp1)-1);
+ flg=1;
+ );
+ );
+ );
+ tmp=round(scale*parse(tmp2));
+ out_jj=" height: "+text(tmp)+",";
+ if(length(color)>0,
+ tmp=select(1..(length(out)),indexof(out_#,"background: ")>0);
+ jj=tmp_1;
+ tmp=indexof(out_jj,")"); //190130from
+ tmp=substring(out_jj,tmp-1,length(out_jj));
+ out_jj=" background: "+Dq+"rgb("+color+tmp; //190130to
+ );
+ if(length(grid)>0,
+ tmp=select(1..(length(out)),indexof(out_#,"grid:")>0);
+ jj=tmp_1;
+ tmp1=" grid: "+grid;
+ if(indexof(out_jj,",")>0,
+ tmp1=tmp1+",";
+ );
+ out_jj=tmp1;
+ );
+ forall(out,
+ println(SCEOUTPUT,#);
+ ); //190129to
+ closefile(SCEOUTPUT);
+ setdirectory(Dirwork);
+ if(webflg=="Y",tmp="json",tmp="jsoff");
+ drawtext(mouse().xy-[0,1],tmp+"in "+path,size->20,color->[1,0,0]);
+ wait(1000);
+ );
+);
+////%Mkketcindyjs end////
+
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
index 5760eda39a2..5a61f9a92e3 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
@@ -1,3 +1,19 @@
+// 20190127
+ Gccexists changed (in case that PathC is full path in Mac/Windws)
+// 20190126
+// Boxplot changed ( Pointdata[size] )
+// 20190125
+// Readcsv changed/debugged ( option "Head=" added. For 1 line data )
+// HIstplot, Boxplot changed (wait=5)
+// 20190124
+// Gccexists added
+// Sfcutparadata debugged (optionh)
+// 20190123
+// Sfbdparadata,... debugged (in case of emply options,optionsh )
+// kcC chnage ( positon "-lm" changed for Mac/Linux )
+// 20181219
+// Rfun debugged ( Out=y )
+// CalcbyR debugged ( argment list changed to string)
// 20181218
// Help (Sfbdparadata ,,,, )
// 20181217
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
index 946743bed6f..354cedc324e 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibout(20181218 loaded");
+println("ketcindylibout(20190127 loaded");
//help:start();
@@ -783,6 +783,7 @@ CalcbyR(name,path,cmd,optionorg):=(
strL=tmp_7;
dig=5;
tmp=cmd_(length(cmd)-1); //181130from
+ if(!isstring(tmp),tmp=text(tmp)); //190109
if(indexof(tmp,"=")+indexof(tmp,"::")>0,
cat="Y";
,
@@ -1132,7 +1133,8 @@ Rfun(name,fun,argL,optionorg):=(
cmdL=concat(cmdL,[
nm+"="+fun,argL,
]);
- options=concat(options,["Wait=2"]);
+// options=concat(options,["Wait=2"]);
+ options=concat(options,["Wait=2","Cat=y"]); //190109
CalcbyR(nm,cmdL,options);
if(ErrFlag==0,
if(disp==1, // 15.11.24
@@ -1179,10 +1181,6 @@ Readcsv(pathorg,file,optionorg):=(
options=remove(options,[#]);
);
);
-// if(tmp=="W", // removed:17.02.19
-// waiting=parse(tmp2);
-// options=remove(options,[#]);
-// );
if(tmp=="S",
sep=tmp2;
options=remove(options,[#]);
@@ -1285,19 +1283,35 @@ Readcsv(pathorg,file,optionorg):=(
);
);
);
-// New readcsv (181125)
+// New readcsv [181125]
Readcsv(file):=Readcsv(Dirwork,file);
-Readcsv(path,file):=(
+Readcsv(path,file):=Readcsv(path,file,[]);
+Readcsv(path,file,options):=(
//help:Readcsv("ex.csv");
//help:Readcsv(directory,"ex.csv");
-//help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]);
- regional(dt);
+//help:Readcsv(options=["Head=no"]);
+ regional(dt,eqL,head,from,end,tmp);
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ head="n"; from=1; //190125from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ if(Toupper(substring(tmp_1,0,1))=="H",
+ head=substring(tmp_2,0,1);
+ );
+ );
+ if(Toupper(head)=="Y",
+ from=2;
+ ); //190125to
dt=readfile2str(path,file);
dt=tokenize(dt,"/LF/");
+ end=length(dt);
if(dt_(length(dt))=="",
- dt=dt_(1..(length(dt)-1));
+ end=end-1;
+ dt=dt_(from..end); //190125
);
dt=apply(dt,tokenize(#,","));
+ if(length(dt)==1, dt=dt_1); //190125
dt;
);
////%Readcsv end////
@@ -1567,7 +1581,7 @@ Boxplot(nm,dataorg,ypos,dy,optionorg):=(
tmp=divoptions(options);
eqL=tmp_5;
strL=tmp_7;
- waiting=3;
+ waiting=10;
wrflg=0;
forall(eqL,
tmp=indexof(#,"=");
@@ -1707,7 +1721,7 @@ Boxplot(nm,dataorg,ypos,dy,optionorg):=(
out=bp_(6..length(bp));
if(length(out)>0,
out=apply(out,[#,ypos]);
- Pointdata(name+text(1),out,concat(options,[0,"Size=4"]));
+ Pointdata(name+text(1),out,concat(options,[0,"Size=2","Inside=white"])); //190125
);
pstr=substring(pstr,0,length(pstr)-1)+"]";
println("generate totally "+name);
@@ -1732,7 +1746,7 @@ Histplot(nm,dataorg,optionorg):=(
breaks = "breaks="+Dq+"Sturges"+Dq;
density=0;
relative=0;
- waiting=3;
+ waiting=10; //190125
forall(eqL,
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
@@ -4756,140 +4770,6 @@ Frifun(name,fun,argL,optionorg):=(
parse(nm);
);
-Mkketcindyjs():=Mkketcindyjs("ketcindylib");
-Mkketcindyjs(Arg):=(
- if(isstring(Arg),
- Mkketcindyjs(Arg,[])
- ,
- Mkketcindyjs("ketcindylib",Arg)
- );
-);
-Mkketcindyjs(libname,options):=( //17.11.18
-//help:Mkketcindyjs();
-//help:Mkketcindyjs(options=["Tex=y","Net=y"]);
- regional(texflg,netflg,tmp,tmp1,tmp2,dirfile,dirwork,dirketjs);
- dirwork=replace(Dirwork,"\","/");
- tmp=replace(Dircdy,"\","/");
- if(substring(tmp,length(tmp)-1,length(tmp))=="/",//180411from
- dirfile=substring(tmp,0,length(tmp)-1);
- ,
- dirfile=tmp;
- );//180411to
- tmp=replace(Dirlib,"\","/");
- dirketjs=replace(tmp,"ketlib","ketcindyjs");//180411to
- texflg="Y";
- netflg="Y";
- forall(options,
- tmp1=Toupper(#);
- if(indexof(tmp1,"TEX")>0,
- tmp=indexof(tmp1,"=");
- texflg=Toupper(substring(tmp1,tmp,tmp+1));
- );
- if(indexof(tmp1,"NET")>0,
- tmp=indexof(tmp1,"=");
- netflg=Toupper(substring(tmp1,tmp,tmp+1));
- );
- );
- if(isexists(dirfile,Fhead+".html"),//180411to
- SCEOUTPUT = openfile(Fhead+".r");
- println(SCEOUTPUT,"Looprange<- function(a,b){");
- println(SCEOUTPUT," if (a<=b) return(a:b)");
- println(SCEOUTPUT," return(c())");
- println(SCEOUTPUT,"}");
- println(SCEOUTPUT,"setwd('"+dirketjs+"')");
- println(SCEOUTPUT,"Dtket=readLines('"+libname+".txt')");
- println(SCEOUTPUT,"setwd('"+dirfile+"')");//180411
- println(SCEOUTPUT,"Dtjs=readLines('"+Fhead+".html')");
- println(SCEOUTPUT,"Qt=rawToChar(as.raw(34))");
- println(SCEOUTPUT,
- "Dtinit=c(paste('<script id=',Qt,'csinit',Qt,' type=',Qt,'text/x-cindyscript',Qt,'>',sep=''))");
- println(SCEOUTPUT,"Dtinit=c(Dtinit,Dtket,'</script>')");
- println(SCEOUTPUT,"Dthead=c()");
- println(SCEOUTPUT,"for(I in Looprange(1,length(Dtjs))){");
- println(SCEOUTPUT," if(length(grep('<script id=',Dtjs[I],fixed=TRUE))==0){");
- println(SCEOUTPUT," Tmp=Dtjs[I]");
- if(netflg=="N",
- println(SCEOUTPUT,
- " if(length(grep('link rel=',Tmp,fixed=TRUE))>0){");
- println(SCEOUTPUT,
- " Tmp1='file:///"+dirketjs+"/CindyJS.css'");//180411
- println(SCEOUTPUT,
- " Tmp=paste(' <link rel=',Qt,'stylesheet',Qt,' href=',Qt,Tmp1,Qt,'>',sep='')");
- println(SCEOUTPUT,
- " }");
- println(SCEOUTPUT,
- " Tmp1=length(grep('script type=',Tmp,fixed=TRUE))");
- println(SCEOUTPUT,
- " Tmp1=Tmp1*length(grep('Cindy.js',Tmp,fixed=TRUE))");
- println(SCEOUTPUT,
- " if(Tmp1>0){");
- println(SCEOUTPUT,
- " Tmp1='file:///"+dirketjs+"/Cindy.js'");//180411
- println(SCEOUTPUT,
- " Tmp=paste(' <script type=',Qt,'text/javascript',Qt,' src=',Qt,Tmp1,Qt,'>',sep='')");
- println(SCEOUTPUT,
- " Tmp=paste(Tmp,'</script>',sep='')");
- println(SCEOUTPUT,
- " }");
- );
- println(SCEOUTPUT,
- " Dthead=c(Dthead,Tmp)");
- println(SCEOUTPUT,
- " }else{");
- println(SCEOUTPUT,
- " Is=I; break");
- println(SCEOUTPUT,
- " }");
- println(SCEOUTPUT,
- "}");
- println(SCEOUTPUT,"Dt=c()");
- println(SCEOUTPUT,"for(I in Looprange(Is,length(Dtjs))){");
- println(SCEOUTPUT," Dt=c(Dt,Dtjs[I])");
- println(SCEOUTPUT," if(length(grep('</script>',Dtjs[I],fixed=TRUE))>0){");
- println(SCEOUTPUT," if(length(grep('draw',Dt[1],fixed=TRUE))>0){Dtdraw=Dt}");
- println(SCEOUTPUT," if(length(grep('keytyped',Dt[1],fixed=TRUE))>0){Dtkey=Dt}");
- println(SCEOUTPUT," Dt=c()");
- println(SCEOUTPUT," if(length(grep('<script id=',Dtjs[I+1],fixed=TRUE))==0){");
- println(SCEOUTPUT," Ie=I+1;break");
- println(SCEOUTPUT," }");
- println(SCEOUTPUT," }");
- println(SCEOUTPUT,"}");
- println(SCEOUTPUT,"Dt=c(Dthead,Dtdraw,Dtkey,Dtinit)");
- println(SCEOUTPUT,"for(I in Looprange(Ie,length(Dtjs))){");
- println(SCEOUTPUT,
- " if(length(grep('Button',Dtjs[I],fixed=TRUE))>0){");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'Figure',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'Exekc',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'Parent',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'KeTJS',sep=''),Dtjs[I],fixed=TRUE))>0){next}");
- println(SCEOUTPUT,
- " }");
- println(SCEOUTPUT," Dt=c(Dt,Dtjs[I])");
- if(texflg=="Y",
- println(SCEOUTPUT,
- " if(length(grep(paste(Qt,'cs*',Qt,sep=''),Dtjs[I],fixed=TRUE))>0){");
- println(SCEOUTPUT,
- " Dt=c(Dt,paste(' use: [',Qt,'katex',Qt,'],',sep=''))");
- println(SCEOUTPUT,
- " }");
- );
- println(SCEOUTPUT,"}");
- println(SCEOUTPUT,"setwd('"+dirfile+"')");//180411
- println(SCEOUTPUT,"writeLines(Dt,'"+Fhead+"ketcindy.html',sep='\n')");
- println(SCEOUTPUT,"quit()");
- closefile(SCEOUTPUT);
- kcR(PathR,Fhead+".r",["m"]);
- println(Fhead+"ketcindy.html generated successfully");
- ,
- drawtext(mouse().xy-[0,1],"use 'write to CindyJS' before that",size->24,color->[1,0,0]);
- wait(3000);
- );
-);
-
///////////////// C function //////////////////
Cformold(strorg):=(
@@ -5200,7 +5080,7 @@ kcC(cname):=(
); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=PathC+" -lm "+cname+".c -o main.out"; //180612
+ tmp=PathC+" "+cname+".c -o main.out -lm"; //190123
println(SCEOUTPUT,tmp);
println(SCEOUTPUT,"./main.out");
println(SCEOUTPUT,"echo ////>"+rfile);
@@ -5632,6 +5512,22 @@ CalcbyC(name,path,cmd,optionorg):=(
);
////%CalcbyC end////
+////%Gccexists start////
+Gccexists():=( //190124
+ regional(out);
+ if(iswindows(),
+ out=isexists("",PathC);
+ ,
+ if(indexof(PathC,"/")==0, //190127from
+ out=isexists("/usr/bin",PathC);
+ ,
+ out=isexists("",PathC);
+ );
+ ); //190127to
+ out;
+);
+////%Gccexists end////
+
////%ExeccmdC start////
ExeccmdC(nm):=ExeccmdC(nm,[],["do"]); //180531
ExeccmdC(nm,options):=ExeccmdC(nm,options,["do"]);
@@ -5794,8 +5690,12 @@ SfbdparadataC(nm,fdorg,optionorg,optionshorg):=(
name2h="sfbdh2d"+nm;
name3h="sfbdh3d"+nm;
fname=Fhead+"sfbd"+nm+".txt";
- options=optionorg;
- optionsh=select(optionshorg,length(#)>0); //181107
+ options=select(optionorg,length(#)>0); //190123from
+ tmp=Divoptions(options);
+ if(length(tmp_7)==0,options=append(options,"dr"));
+ optionsh=select(optionshorg,length(#)>0);
+ tmp=Divoptions(optionsh);
+ if(length(tmp_7)==0,optionsh=append(optionsh,"do")); //190123to
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -5918,8 +5818,12 @@ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionshorg):=(
name2h="crvsfh2d"+nm;
name3h="crvsfh3d"+nm;
fname=Fhead+"crvsf"+nm+".txt";
- options=optionorg;
- optionsh=select(optionshorg,length(#)>0); //181107
+ options=select(optionorg,length(#)>0); //190123from
+ tmp=Divoptions(options);
+ if(length(tmp_7)==0,options=append(options,"dr"));
+ optionsh=select(optionshorg,length(#)>0);
+ tmp=Divoptions(optionsh);
+ if(length(tmp_7)==0,optionsh=append(optionsh,"do")); //190123to
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6280,8 +6184,12 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionshorg):=(
name3h="wireh3d"+nm;
fname=Fhead+"wire"+nm+".txt";
fnameh=replace(fname,".txt","h.txt");
- options=optionorg;
- optionsh=select(optionshorg,length(#)>0); //181107
+ options=select(optionorg,length(#)>0); //190123from
+ tmp=Divoptions(options);
+ if(length(tmp_7)==0,options=append(options,"dr"));
+ optionsh=select(optionshorg,length(#)>0);
+ tmp=Divoptions(optionsh);
+ if(length(tmp_7)==0,optionsh=append(optionsh,"do")); //190123to
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6579,7 +6487,7 @@ SfcutparadataC(nm,cutfunL,sfbd,fd):=(//180505
SfcutparadataC(nm,cutfunL,sfbd,fd,[],["do"]);
);
SfcutparadataC(nm,cutfunL,sfbd,fd,options):=
- SfcutparadataC(nm,cutfunL,sfbd,fd,options,["nodisp"]);
+ SfcutparadataC(nm,cutfunL,sfbd,fd,options,[]);
SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionshorg):=(
//help:Sfcutparadata("1","2*x+3*y+z=1","sfbd3d",fd,nohiddenoptions,hiddenoptions);
regional(funnm,cutfunL,fd,options,optionsh,name2,name3,name2h,name3h,
@@ -6632,8 +6540,12 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionshorg):=(
options=remove(options,[#]);
);
);
- options=remove(options,reL);
- options=select(options,length(#)>0);
+ options=select(optionorg,length(#)>0); //190123from
+ tmp=Divoptions(options);
+ if(length(tmp_7)==0,options=append(options,"dr"));
+ optionsh=select(optionshorg,length(#)>0);
+ tmp=Divoptions(optionsh);
+ if(length(tmp_7)==0,optionsh=append(optionsh,"do")); //190123to
tmp1=select(options,
(indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C")); //181114from
if(length(tmp1)>0,
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
index b177e4245bb..0d7791d6fb0 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
@@ -16,10 +16,16 @@
#########################################
-ThisVersion<- "KeTpic for R v5_2_4(20181128)"
+ThisVersion<- "KeTpic for R v5_2_4(20190127)"
print(ThisVersion)
+# 20190127
+# Mvprod added
+# 20181231
+# Drwpt debugged/changed ( grep removed, N=8 set )
+# 20181230
+# Drwpt changed ( Same, Incolor )
# 20181128
# Objthicksurf debugged
# 20181031
@@ -621,6 +627,29 @@ Dotprod<-function(a,b){ # 18.02.05
return(out)
}
+Mvprod<- function(...){ # 190127
+ varargin<- list(...)
+ mat=varargin[[1]]
+ vec=varargin[[2]]
+ if(length(varargin)>2){
+ nn=varargin[[3]]
+ }else{
+ nn=1
+ }
+ mm=round(length(vec)/nn)
+ mat=matrix(mat,ncol=mm,byrow=TRUE)
+ vec=matrix(vec,nrow=nn,byrow=TRUE)
+ out=c()
+ for(jj in 1:nn){
+ tmp=mat%*%Op(jj,vec)
+ out=c(out,tmp)
+ }
+ if(nn>1){
+ out=matrix(out,nrow=nn,byrow=TRUE)
+ }
+ return(out)
+}
+
Dist<- function(...) # 17.09.17
{
varargin<- list(...)
@@ -2361,29 +2390,45 @@ Drwline<-function(...)
###########################################
-Drwpt<-function(...)
-{ ## Scaling is implemented
+Drwpt<-function(...){
varargin<-list(...)
Nargs<-length(varargin)
if(TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
+ N=round(10*sqrt(TenSize/TenSizeInit)) #181231
}
else{
- N<-4
+ if(TenSize==TenSizeInit){ #181231from
+ N=10
+ }else{
+ N=4
+ } #181231to
}
- Tmp<- varargin[[Nargs]]
- if(mode(Tmp)=="numeric"){
- if(length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- Nargs-1
+ All=Nargs #181230from
+ Same="y"
+ Incolor=""
+ Tmp=varargin[[All]]
+ if(is.numeric(Tmp)){
+ if(length(Tmp)==3){Tmp=c(Tmp,1)} #181231
+ if(length(Tmp)==4){
+ if(Tmp[4]<0){ #181231from
+ Same="nn"
+ }else{
+ Incolor=paste(" ",as.character(Tmp[4]),sep="")
+ } #181231to
+ }else{
+ Same="n"
+ Incolor="{"
+ for(J in 4:6){
+ Incolor=paste(Incolor,as.character(Tmp[J]),sep="")
+ if(J<6){
+ Incolor=paste(Incolor,",",sep="")
+ }
+ }
+ Incolor=paste(Incolor,"}",sep="")
}
- }
- else if(mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- CL<-c()
+ All=Nargs-1
+ }#181230to
+ CL<- c()
for (J in 0:N){
Tmp<- TenSize*0.5*1000/2.54/MilliIn
Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
@@ -2405,9 +2450,29 @@ Drwpt<-function(...)
for (J in 0:N){
PL<- c(PL,P+CL[J+1,])
}
- PL<-matrix(PL,nrow=2)
- PL<-t(PL)
- Mojisu<-0
+ PL<- matrix(PL,nrow=2)
+ PL<- t(PL)
+ if(Same=="n"){ #181230from
+ Str1<- paste("{\\special{pn 0}\\color[rgb]",Incolor,"%\n",sep="")
+ cat(Str1,file=Wfile,append=TRUE)
+ Mojisu<-0
+ for (J in 1:Nrow(PL)){
+ Q<- PL[J,]
+ X<- as.character(round(MilliIn*Q[1]))
+ Y<- as.character(-round(MilliIn*Q[2]))
+ Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu<- Mojisu+nchar(Str)
+ if(Mojisu>80){
+ cat("#\n",file=Wfile,append=TRUE)
+ }
+ Mojisu=0
+ }
+ Str1<- paste("\\special{sh}\\special{fp}}%\n",sep="")
+ cat(Str1,file=Wfile,append=TRUE)
+ }
+ cat("\\special{pn 4}",file=Wfile,append=TRUE) #181231
+ Mojisu=0
for (J in 1:Nrow(PL)){
Q<- PL[J,]
X<- as.character(round(MilliIn*Q[1]))
@@ -2420,10 +2485,12 @@ Drwpt<-function(...)
}
Mojisu=0
}
- Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
- Str2<- "\\special{fp}%\n"
- cat(Str1,file=Wfile,append=TRUE)
- cat(Str2,file=Wfile,append=TRUE)
+ if(Same=="y"){
+ Str1<- paste("\\special{sh",Incolor,"}\\special{fp}%\n",sep="")
+ }else{
+ Str1<- paste("\\special{fp}%\n",sep="")
+ }
+ cat(Str1,file=Wfile,append=TRUE) #181230to
}
}
}
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
index bce6137fea1..8d2a90b274d 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
@@ -16,8 +16,10 @@
#########################################
-ThisVersion<- "2ev5_2_4(180930)"
+ThisVersion<- "2ev5_2_4(181230)"
+# 20181230
+# Drwpt changed ( Inside )
# 20180930
# Drwpt debugged ( the last newline added)
# 20180929
@@ -206,58 +208,41 @@ Drwline<-function(...)
###########################################
-Drwpt<-function(...)
+Drwpt<-function(...) #181230
{
varargin<-list(...)
Nargs<-length(varargin)
All=Nargs
- if (TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
- }
- else{
- N<-4
- }
- Tmp<- varargin[[All]]
- Iro=c(0,0,0,1)
- Iroflg=0
- if(is.character(Tmp)){
- Iro=Ratiocmyk(Tmp)
- Iroflg=1
- All=All-1
- }
- Tmp<- varargin[[All]]
- if (mode(Tmp)=="numeric"){
- if (length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- All-1
+ Same="y"
+ Incolor=""
+ Tmp=varargin[[All]]
+ if(is.numeric(Tmp)){
+ if(length(Tmp)==3){Tmp=c(Tmp,1)}
+ if(length(Tmp)==4){
+ if(Tmp[4]<0){
+ Same="nn"
+ }else{
+ if(Tmp[4]!=1){
+ Tmp1=Tmp[4]*(c(1,1,1)-Tmp[1:3])
+ Tmp1=c(1,1,1)-Tmp1
+ Tmp=c(Tmp[1:3],Tmp1)
+ }
+ }
}
- }
- else if (mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- Ra=TenSize*1000/2.54/MilliIn
- if(Iroflg>0){
- Str='{\\color[cmyk]{'
- for(J in 1:4){
- Str=paste(Str,as.character(Kosa*Iro[J]),sep="")
- if(J<4){
- Str=paste(Str,',',sep="")
+ if(length(Tmp)==6){
+ Same="n"
+ Incolor="\\color[rgb]{"
+ for(J in 4:6){
+ Incolor=paste(Incolor,as.character(Tmp[J]),sep="")
+ if(J<6){
+ Incolor=paste(Incolor,",",sep="")
+ }
}
+ Incolor=paste(Incolor,"}",sep="")
}
- Str=paste(Str,'}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
+ All=Nargs-1
}
-
-# CL<-c()
-# for (J in 0:N){
-# Tmp<- TenSize*0.5*1000/2.54/MilliIn
-# Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
-# CL<- append(CL,Tmp)
-# }
-# CL<- matrix(CL,nrow=2)
-# CL<- t(CL)
+ Ra=TenSize*1000/2.54/MilliIn
Mojisu=0
for (II in Looprange(1,All)){
MS<- varargin[[II]]
@@ -271,23 +256,33 @@ Drwpt<-function(...)
P<- Doscaling(P)
X=sprintf('%5.5f',P[1])
Y=sprintf('%5.5f',P[2])
- Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
+ Str=""
+ if(Same=="n"){
+ Str=paste("{\\linethickness{0 in}",Incolor,sep="")
+ }
+ if(Same!="nn"){
+ Str=paste(Str,'\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu=Mojisu+nchar(Str)
+ }
+ if(Same=="n"){
+ cat("}",file=Wfile,append=TRUE)
+ }
+ Str=paste('\\put(',X,',',Y,'){\\circle{',sprintf('%6.6f',Ra),'}}',sep="")
cat(Str,file=Wfile,append=TRUE)
Mojisu=Mojisu+nchar(Str)
if(Mojisu>80){
cat("\n",file=Wfile,append=TRUE)
Mojisu=0
+ Str=""
}
}
}
- Str="%"
- if(Iroflg>0){
- Str='}%'
+ if(Same=="n"){
+ # Str='}%'
}
if(Mojisu>0){
Str=paste('\n',Str,'\n',sep="")
- }else{
- Fmt=paste(Str,'\n',sep="")
}
cat(Str,file=Wfile,append=TRUE)
cat("\n",file=Wfile,append=TRUE) #180930
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt b/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt
index cb026b1a340..d3f9ac4d8d1 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt
@@ -1,3 +1,7 @@
+190124
+ readoutdata3 changed (tmp,strtmp)
+190123
+ Use of sprintf
181105
output3h debugged ( ctr=0 added in varh )
readoutdata3 debugged (//,etc )
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h b/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
index a72eed58230..f700a071252 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
+++ b/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
@@ -1356,16 +1356,24 @@ void wireparadata(short ch,double bdyk[][3], double udata[], double vdata[],cons
if(strlen(fnameh)>0){
allflg=0;
}
- char var[20]="wire3d";
- char varh[20]="wireh3d";
- char varnow[20]={'\0'};
- char varhnow[20]={'\0'};
- sprintf(var,"%s%d",var,ch);
- sprintf(varh,"%s%d",varh,ch);
- char dirfname[256] = {'\0'};
- char dirfnameh[256] = {'\0'};
- char varname[256] = {'\0'};
- char varnameh[256] = {'\0'};
+ char var0[]="wire3d";
+ char varh0[]="wireh3d";
+ char var[20];
+ char varh[20];
+ char varnow[40];
+ char varhnow[40];
+ varnow[0]='\0';
+ varhnow[0]='\0';
+ sprintf(var,"%s%d",var0,ch);
+ sprintf(varh,"%s%d",varh0,ch);
+ char dirfname[256];
+ char dirfnameh[256];
+ char varname[256];
+ char varnameh[256];
+ dirfname[0]='\0';
+ dirfnameh[0]='\0';
+ varname[0]='\0';
+ varnameh[0]='\0';
sprintf(varname,"%s%d",var,ch);
sprintf(varnameh,"%s%d",varh,ch);
sprintf(dirfname,"%s%s",Dirname,fname);
@@ -1440,9 +1448,11 @@ void intersectcrvsf(const char *wa, short chfd,double crv[][3],const char *fname
char chc[10];
sprintf(chc,"%d",chfd);
char var[]="intercrvsf";
- char dirfname[256] = {'\0'};
+ char dirfname[256];
+ dirfname[0] = '\0';
sprintf(dirfname,"%s%s",Dirname,fname);
- char varname[256] = {'\0'};
+ char varname[256];
+ varname[0] = '\0';
sprintf(varname,"%s%s",var,chc);
ptL[0][0]=0;
for(i=1;i<length3(crv);i++){
@@ -1471,16 +1481,24 @@ void sfcutparadata(short chfd, short ncut, double fbdy3[][3],const char *fname,c
if(strlen(fnameh)==0){
allflg=1;
}
- char var[20]="sfcut3d";
- char varh[20]="sfcuth3d";
- sprintf(var,"%s%d",var,chfd);
- sprintf(varh,"%s%d",varh,chfd);
- char varnow[20]={'\0'};
- char varhnow[20]={'\0'};
- char dirfname[256] = {'\0'};
- char dirfnameh[256] = {'\0'};
- char varname[256] = {'\0'};
- char varnameh[256] = {'\0'};
+ char var0[]="sfcut3d";
+ char varh0[]="sfcuth3d";
+ char var[20];
+ char varh[20];
+ sprintf(var,"%s%d",var0,chfd);
+ sprintf(varh,"%s%d",varh0,chfd);
+ char varnow[40];
+ char varhnow[40];
+ char dirfname[256];
+ char dirfnameh[256];
+ char varname[256];
+ char varnameh[256];
+ varnow[0]='\0';
+ varhnow[0]='\0';
+ dirfname[0]='\0';
+ dirfnameh[0]='\0';
+ varname[0]='\0';
+ varnameh[0]='\0';
sprintf(varname,"%s%d",var,chfd);
sprintf(varnameh,"%s%d",varh,chfd);
sprintf(dirfname,"%s%s",Dirname,fname);
@@ -1959,10 +1977,16 @@ int skeletondata3(double data[][3], double r00,
void readoutdata3(const char *fname, const char *var, double data[][3]){
double x,y,z;
float xx;
- char dstrorg[256] = {'\0'};
- char dstr[256] = {'\0'};
- char str[10] = {'\0'},tmp[2]={'\0'};
- int linectr=0, start=0, jj,nn,nctr;
+ char dstrorg[256];
+ dstrorg[0]='\0';
+ char dstr[256];
+ dstr[0]='\0';
+ char str[10];
+ str[0]='\0';
+ char strtmp[30];
+ char tmp[10];
+ tmp[0]='\0';
+ int linectr=0, start=0,ii,jj,nn,nctr;
FILE *fp;
fp=fopen(fname,"r");
if(fp==NULL){
@@ -2005,7 +2029,7 @@ void readoutdata3(const char *fname, const char *var, double data[][3]){
str[0]='\0';
nctr=0;
for(jj=2;jj<250;jj++){
- tmp[0]='\0'; sprintf(tmp,"%s%c",tmp,dstr[jj]);
+ tmp[0]='\0'; sprintf(tmp,"%c",dstr[jj]);
if(strncmp(tmp,"/",1)==0){
break;
}
@@ -2028,13 +2052,21 @@ void readoutdata3(const char *fname, const char *var, double data[][3]){
add3(data,x,y,z);
nctr=0;
jj++;
- tmp[0]='\0'; sprintf(tmp,"%s%c",tmp,dstr[jj]);
+ tmp[0]='\0'; sprintf(tmp,"%c",dstr[jj]);
if(strncmp(tmp,",",1)==0){
jj++;
}
continue;
}
- sprintf(str,"%s%s",str,tmp);
+ strtmp[0]='\0';
+ sprintf(strtmp,"%s%s",str,tmp);
+ str[0]='\0';
+ for(ii=0;ii<20;ii++){
+ str[ii]=strtmp[ii];
+ if(strtmp[ii]=='\0'){
+ break;
+ }
+ }
}
}
fclose(fp);
diff --git a/Master/texmf-dist/scripts/ketcindy/template2allbuttons.cdy b/Master/texmf-dist/scripts/ketcindy/template2allbuttons.cdy
new file mode 100644
index 00000000000..5b518f9f9e3
--- /dev/null
+++ b/Master/texmf-dist/scripts/ketcindy/template2allbuttons.cdy
Binary files differ
diff --git a/Master/texmf-dist/scripts/ketcindy/template2slide.cdy b/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
deleted file mode 100644
index 223c67406b6..00000000000
--- a/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/ketcindy/ketpic.sty b/Master/texmf-dist/tex/latex/ketcindy/ketpic.sty
index b0555f7bfb6..5215cd1f11e 100644
--- a/Master/texmf-dist/tex/latex/ketcindy/ketpic.sty
+++ b/Master/texmf-dist/tex/latex/ketcindy/ketpic.sty
@@ -13,6 +13,8 @@
%* You should have received a copy of the GNU General Public License
%* along with this program. If not, see <http://www.gnu.org/licenses/>
%%% ketpic.sty
+% 2018.09.20
+% setmargintrue added
% 2016.12.08
% NEarrow, ..., SELarrow,... added
% argument ( option ) = size
@@ -94,6 +96,23 @@
\addtolength{\textheight}{-#4 mm}%
%
}%
+\newcommand{\setmargintrue}[4]{
+\setlength{\oddsidemargin}{-25.4truemm}%
+\addtolength{\oddsidemargin}{#1 truemm}%
+\setlength{\textwidth}{\paperwidth}%
+\addtolength{\textwidth}{-#1 truemm}%
+\addtolength{\textwidth}{-#2 truemm}%
+\setlength{\topmargin}{-25.4truemm}% 1in=25.4mm
+\addtolength{\topmargin}{#3 truemm}%
+\addtolength{\topmargin}{-\headheight}%
+\addtolength{\topmargin}{-\headsep}%
+\addtolength{\topmargin}{-\topskip}%
+\setlength{\textheight}{\paperheight}%
+\addtolength{\textheight}{-#3 truemm}%
+\addtolength{\textheight}{-#4 truemm}%
+\addtolength{\textheight}{\topskip}%
+%
+}%
\newcommand{\ketcalcwidth}[2][0]{%
\settowidth{\Depth}{#2}%
\setlength{\Width}{0\unitlength}%
diff --git a/Master/texmf-dist/tex/latex/ketcindy/ketpic2e.sty b/Master/texmf-dist/tex/latex/ketcindy/ketpic2e.sty
index b9b3d3ea31a..5f90f97848c 100644
--- a/Master/texmf-dist/tex/latex/ketcindy/ketpic2e.sty
+++ b/Master/texmf-dist/tex/latex/ketcindy/ketpic2e.sty
@@ -12,6 +12,8 @@
%*
%* You should have received a copy of the GNU General Public License
%* along with this program. If not, see <http://www.gnu.org/licenses/>
+% 2018.09.20
+% setmargintrue added
% 2016.12.08
% NEarrow,..., NERarrow,... added
% argument(option)=size
@@ -93,6 +95,23 @@
\addtolength{\textheight}{-#4 mm}%
%
}%
+\newcommand{\setmargintrue}[4]{
+\setlength{\oddsidemargin}{-25.4truemm}%
+\addtolength{\oddsidemargin}{#1 truemm}%
+\setlength{\textwidth}{\paperwidth}%
+\addtolength{\textwidth}{-#1 truemm}%
+\addtolength{\textwidth}{-#2 truemm}%
+\setlength{\topmargin}{-25.4truemm}% 1in=25.4mm
+\addtolength{\topmargin}{#3 truemm}%
+\addtolength{\topmargin}{-\headheight}%
+\addtolength{\topmargin}{-\headsep}%
+\addtolength{\topmargin}{-\topskip}%
+\setlength{\textheight}{\paperheight}%
+\addtolength{\textheight}{-#3 truemm}%
+\addtolength{\textheight}{-#4 truemm}%
+\addtolength{\textheight}{\topskip}%
+%
+}%
\newcommand{\ketcalcwidth}[2][0]{%
\settowidth{\Depth}{#2}%
\setlength{\Width}{0\unitlength}%