From 8b5f14f1e6cdb349557c8fa7d20a642f51e2dce6 Mon Sep 17 00:00:00 2001 From: Denis Merigoux Date: Sun, 4 Apr 2021 16:57:59 +0200 Subject: [PATCH] Create runtime value embedding system Dummy for now but will be extended --- Makefile | 2 +- french_law_js/french_law.js | 4279 ++++++++--------- src/catala/dune | 2 +- src/catala/lcalc/to_ocaml.ml | 11 +- src/catala/runtime.ml | 60 +- src/catala/runtime.mli | 32 +- src/french_law/api_web.ml | 3 +- .../law_source/allocations_familiales.ml | 237 +- 8 files changed, 2347 insertions(+), 2279 deletions(-) diff --git a/Makefile b/Makefile index c40ec021..250fd3e8 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ dependencies-ocaml: ocamlformat ANSITerminal sedlex menhir menhirLib dune cmdliner obelisk \ re obelisk unionfind bindlib zarith.1.11 zarith_stubs_js.v0.14.0 ocamlgraph \ js_of_ocaml-compiler js_of_ocaml js_of_ocaml-ppx calendar camomile \ - visitors benchmark hmap + visitors benchmark init-submodules: git submodule update --init diff --git a/french_law_js/french_law.js b/french_law_js/french_law.js index 326ea981..3598f564 100644 --- a/french_law_js/french_law.js +++ b/french_law_js/french_law.js @@ -1,136 +1,136 @@ // Generated by js_of_ocaml 3.9.1 -(function(p){"use strict";var -ix=219,cZ=1582,hw="src/time_Zone.ml",h7=214,iw=1e14,h5="Invalid_argument",h6=" is too large for shifting.",h4="0.08",dN="Map.bal",iv="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",hv="allocations_familiales",e8=1255,dV="Instructions minist\xc3\xa9rielles",fi="<",b6=255,P="Code de la s\xc3\xa9curit\xc3\xa9 sociale",iu=0x800,iU="Article L521-1",h3="577500",cJ=2019,e7="jsError",a3=0x8000,h2="%ni",hu="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",_="droit_ouvert_majoration",cY=146097,iT=43200.,b9=256,fe="ml_z_overflow",is="Article L521-3",it=0.012,J=86400.,ht="End_of_file",a4=2020,hs="Failure",h1="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019\nrelative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources\nd\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole,\nen Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy,\n\xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",aF=0xff,hr=129,h0=-45,fr=-12,hq=218,fh=204,cX="conditions_hors_\xc3\xa2ge",iS="559500",bI="Article 1",d3="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",b5="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3_m\xc3\xa9tropole",hY="582700",hZ=167,iR=992015837,hX=274,r="0",dU="EnfantLePlus\xc3\x82g\xc3\xa9",dM="date_courante",fg=0xf,fq="0.5",ca=128,dI=-48,hp=0xdc00,hW="Sys_blocked_io",iQ="fd ",cW="montant_initial_m\xc3\xa9tropole_majoration",fc="Chapitre 2 : Champ d'application",fd="0.0588",B=248,ag="camlinternalFormat.ml",ir="Division_by_zero",d2=">",b$=153,iP=1027,ho="Sys_error",hV="montant_vers\xc3\xa9",iq="x",iO="enfants_\xc3\xa0_charge",aV="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",hn=317,e6="Article D521-2",hU=193,bS="Article D755-5",e5="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",hT=246,bf=60.,hR="%u",hS="resetLog",ip="%d",e="AllocationsFamiliales",hQ=3268,hm=32082,bH=1900,hP="./securite_sociale_R.catala_fr",io="buffer.ml",v="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",im=119,bQ="2",cM=127,cN=1024,cV="montant_avec_garde_altern\xc3\xa9e_majoration",il="version_avril_2008",ay="1",d1="e",dH=120,e4=103,hO=" : flags Open_rdonly and Open_wronly are not compatible",dT=127686388,iN="ressources_m\xc3\xa9nage",hl="16",ik=102,iM="([^/]*)",e3=512,hM="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",hN=240,am="-",hk=0x7ff0,bF=803994948,bD="D\xc3\xa9crets divers",hL=" : file already exists",dS=101,iL="smic",hK=184,iK="Article D521-3",bk=0xffffff,hj="0x",iJ=-43,N="./securite_sociale_D.catala_fr",d0=86400,iI="Out_of_memory",hi="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",bR=1e7,iH="inf",e2=354,cU=254,fp="index out of bounds",aO=100,dZ="_bigarr02",hh="%Li",ij=" : flags Open_text and Open_binary are not compatible",cT="3",M="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",iG=0xffffffff,hJ=168,ii="169.",hH=2147483647,hI=208,bG=0.5,aN="Article D521-1",a7=0xffff,ih=188,aM="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",dY=417088404,Y="input",hg="str.ml",hG=12520,iF=400,hF=-46,hf="personne_charge_effective_permanente_remplit_titre_I",cS="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3_outre_mer",as=3600,fb="AllocationFamilialesAvril2008",z="Chapitre 1er : Allocations familiales",ig="prestations_familiales",cR="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",hE="retrieveLog",he="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",dG="_z",id="Unix.Unix_error",ie="computeAllocationsFamiliales",ic="0.55",bn="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",iE="infinity",cQ="droit_ouvert",aK=1000,hD=224,j="",ib="Stack_overflow",fa="^",bE=3600.,$="Partie l\xc3\xa9gislative",hC=86400000,ia="Interface du programme",fo=264,bC="Titre 5 : D\xc3\xa9partements d'outre-mer",b7=0x3f,h$=-97,h_="Not_found",fn=124,ap="InterfaceAllocationsFamiliales",e$="./epilogue.catala_fr",cP=1461,fm="Article L512-3",aP="./decrets_divers.catala_fr",A="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",hB="Match_failure",iD="enfants",hc=32044,hd=", ",dR="1.",hb="static/",iC="personne_charge_effective_permanente_est_parent",bj=2021,iB="enfant_le_plus_\xc3\xa2g\xc3\xa9",fl=252,bm=".",cL="montant_initial_majoration",bi="+",h9=2440588,iA=0xf0,ha="src/date.ml",b_="12.",Q="PrestationsFamiliales",c0=110,e1="\xc3\x89pilogue",hA="%li",h8=1026,bh="prise_en_compte",a5="Article L521-2",dX=365,cK="Smic",dQ="Invalid integer: ",dP=2440587.5,fk=-32,be=" ",aL=0x80,a6=1023,g$="Undefined_recursive_module",X="output",aa="./securite_sociale_L.catala_fr",dL=2299161,e_="nan",iz=969837588,dO="src/calendar_builder.ml",hz=0xe0,hy=0xdfff,bl="compl\xc3\xa9ment_d\xc3\xa9gressif",bg="/",ff="compare: functional value",fj="Article L755-12",iy="Assert_failure",aE="droit_ouvert_forfaitaire",g_="0.16",dK=2400000.5,cO="0.",g9="%i",e9=1073741823,b8=529348384,dW="r\xc3\xa9sidence",hx=225,dJ=250;function -yj(d,b,e,c,f){if(c<=b)for(var +(function(q){"use strict";var +ir=219,cW=1582,hq="src/time_Zone.ml",h1=214,iq=1e14,hZ="Invalid_argument",h0=" is too large for shifting.",hY="0.08",dJ="Map.bal",ip="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",hp="allocations_familiales",e3=1255,dR="Instructions minist\xc3\xa9rielles",fd="<",b6=255,P="Code de la s\xc3\xa9curit\xc3\xa9 sociale",io=0x800,iO="Article L521-1",hX="577500",cG=2019,e2="jsError",a4=0x8000,hW="%ni",ho="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",$="droit_ouvert_majoration",cV=146097,iN=43200.,b9=256,e$="ml_z_overflow",il="Article L521-3",im=0.012,K=86400.,hn="End_of_file",a5=2020,hm="Failure",hV="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019\nrelative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources\nd\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole,\nen Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy,\n\xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",aG=0xff,hl=129,hU=-45,fm=-12,hk=218,fc=204,cU="conditions_hors_\xc3\xa2ge",iM="559500",bI="Article 1",dZ="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",b5="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3_m\xc3\xa9tropole",hS="582700",hT=167,iL=992015837,hR=274,s="0",dQ="EnfantLePlus\xc3\x82g\xc3\xa9",dI="date_courante",fb=0xf,fl="0.5",ca=128,dE=-48,hj=0xdc00,hQ="Sys_blocked_io",iK="fd ",cT="montant_initial_m\xc3\xa9tropole_majoration",e9="Chapitre 2 : Champ d'application",e_="0.0588",C=248,af="camlinternalFormat.ml",ik="Division_by_zero",dY=">",b$=153,iJ=1027,hi="Sys_error",hP="montant_vers\xc3\xa9",ij="x",iI="enfants_\xc3\xa0_charge",aW="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",hh=317,e1="Article D521-2",hO=193,bS="Article D755-5",e0="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",hN=246,bg=60.,hL="%u",hM="resetLog",ii="%d",f="AllocationsFamiliales",hK=3268,hg=32082,bH=1900,hJ="./securite_sociale_R.catala_fr",ih="buffer.ml",w="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",ig=119,bQ="2",cJ=127,cK=1024,cS="montant_avec_garde_altern\xc3\xa9e_majoration",ie="version_avril_2008",az="1",dX="e",dD=120,eZ=103,hI=" : flags Open_rdonly and Open_wronly are not compatible",dP=127686388,iH="ressources_m\xc3\xa9nage",hf="16",id=102,iG="([^/]*)",eY=512,hG="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",hH=240,an="-",he=0x7ff0,bF=803994948,bD="D\xc3\xa9crets divers",hF=" : file already exists",dO=101,iF="smic",hE=184,iE="Article D521-3",bl=0xffffff,hd="0x",iD=-43,O="./securite_sociale_D.catala_fr",dW=86400,iC="Out_of_memory",hc="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",bR=1e7,iB="inf",eX=354,cR=254,fk="index out of bounds",aP=100,dV="_bigarr02",hb="%Li",ic=" : flags Open_text and Open_binary are not compatible",cQ="3",N="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",iA=0xffffffff,hD=168,ib="169.",hB=2147483647,hC=208,bG=0.5,aO="Article D521-1",a8=0xffff,ia=188,aN="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",dU=417088404,Y="input",ha="str.ml",hA=12520,iz=400,hz=-46,g$="personne_charge_effective_permanente_remplit_titre_I",cP="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3_outre_mer",at=3600,e8="AllocationFamilialesAvril2008",z="Chapitre 1er : Allocations familiales",h$="prestations_familiales",cO="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",hy="retrieveLog",g_="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",dC="_z",h9="Unix.Unix_error",h_="computeAllocationsFamiliales",h8="0.55",bo="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",iy="infinity",cN="droit_ouvert",aL=1000,hx=224,k="",h7="Stack_overflow",e7="^",bE=3600.,aa="Partie l\xc3\xa9gislative",hw=86400000,h6="Interface du programme",fj=264,bC="Titre 5 : D\xc3\xa9partements d'outre-mer",b7=0x3f,h5=-97,h4="Not_found",fi=124,aq="InterfaceAllocationsFamiliales",e6="./epilogue.catala_fr",cM=1461,fh="Article L512-3",aQ="./decrets_divers.catala_fr",A="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",hv="Match_failure",ix="enfants",g8=32044,g9=", ",dN="1.",g7="static/",iw="personne_charge_effective_permanente_est_parent",bk=2021,iv="enfant_le_plus_\xc3\xa2g\xc3\xa9",fg=252,bn=".",cI="montant_initial_majoration",bj="+",h3=2440588,iu=0xf0,g6="src/date.ml",b_="12.",Q="PrestationsFamiliales",cX=110,eW="\xc3\x89pilogue",hu="%li",h2=1026,bi="prise_en_compte",a6="Article L521-2",dT=365,cH="Smic",dM="Invalid integer: ",dL=2440587.5,ff=-32,bf=" ",aM=0x80,a7=1023,g5="Undefined_recursive_module",X="output",ab="./securite_sociale_L.catala_fr",dH=2299161,e5="nan",it=969837588,dK="src/calendar_builder.ml",ht=0xe0,hs=0xdfff,bm="compl\xc3\xa9ment_d\xc3\xa9gressif",bh="/",fa="compare: functional value",fe="Article L755-12",is="Assert_failure",aF="droit_ouvert_forfaitaire",g4="0.16",dG=2400000.5,cL="0.",g3="%i",e4=1073741823,b8=529348384,dS="r\xc3\xa9sidence",hr=225,dF=250;function +x7(d,b,e,c,f){if(c<=b)for(var a=1;a<=f;a++)e[c+a]=d[b+a];else for(var a=f;a>=1;a--)e[c+a]=d[b+a];return 0}function -ym(e,f,d){var +x_(e,f,d){var a=new Array(d+1);a[0]=0;for(var b=1,c=f+1;b<=d;b++,c++)a[b]=e[c];return a}function -ea(c,b,a){var +d9(c,b,a){var d=String.fromCharCode;if(b==0&&a<=4096&&a==c.length)return d.apply(null,c);var -e=j;for(;0=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?ea(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else -if(b.t==2&&f==b.c.length){b.c+=d.t==4?ea(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)d4(b);var +bK(d,e,b,f,c){if(c==0)return 0;if(f==0&&(c>=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?d9(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else +if(b.t==2&&f==b.c.length){b.c+=d.t==4?d9(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)d0(b);var g=d.c,h=b.c;if(d.t==4)if(f<=e)for(var a=0;a=0;a--)h[f+a]=g[e+a];else{var i=Math.min(c,g.length-e);for(var a=0;a>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function -bN(a){if(a.t==2)a.c+=ci(a.l-a.c.length,"\0");else -a.c=ea(a.c,0,a.c.length);a.t=0}function -i4(a,b){if(a===b)return 1;a.t&6&&bN(a);b.t&6&&bN(b);return a.c==b.c?1:0}function -y4(b,a){throw[0,b,a]}function -jl(a){if(a.length<24){for(var -b=0;bcM)return false;return true}else +bq(a){return a}function +bL(a,b,c,d,e){bK(bq(a),b,c,d,e);return 0}function +ch(b,a){if(b==0)return k;if(a.repeat)return a.repeat(b);var +d=k,c=0;for(;;){if(b&1)d+=a;b>>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function +bN(a){if(a.t==2)a.c+=ch(a.l-a.c.length,"\0");else +a.c=d9(a.c,0,a.c.length);a.t=0}function +iY(a,b){if(a===b)return 1;a.t&6&&bN(a);b.t&6&&bN(b);return a.c==b.c?1:0}function +yQ(b,a){throw[0,b,a]}function +jf(a){if(a.length<24){for(var +b=0;bcJ)return false;return true}else return!/[^\x00-\x7f]/.test(a)}function -fK(e){for(var -k=j,c=j,g,f,h,a,b=0,i=e.length;be3){c.substr(0,1);k+=c;c=j;k+=e.slice(b,d)}else -c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else -if(a>a7)c+=String.fromCharCode(0xd7c0+(a>>10),hp+(a&0x3FF));else -c+=String.fromCharCode(a);if(c.length>cN){c.substr(0,1);k+=c;c=j}}return k+c}function -bo(c,a,b){this.t=c;this.c=a;this.l=b}bo.prototype.toString=function(){switch(this.t){case +fF(e){for(var +j=k,c=k,g,f,h,a,b=0,i=e.length;beY){c.substr(0,1);j+=c;c=k;j+=e.slice(b,d)}else +c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else +if(a>a8)c+=String.fromCharCode(0xd7c0+(a>>10),hj+(a&0x3FF));else +c+=String.fromCharCode(a);if(c.length>cK){c.substr(0,1);j+=c;c=k}}return j+c}function +bp(c,a,b){this.t=c;this.c=a;this.l=b}bp.prototype.toString=function(){switch(this.t){case 9:return this.c;default:bN(this);case -0:if(jl(this.c)){this.t=9;return this.c}this.t=8;case -8:return this.c}};bo.prototype.toUtf16=function(){var -a=this.toString();if(this.t==9)return a;return fK(a)};bo.prototype.slice=function(){var +0:if(jf(this.c)){this.t=9;return this.c}this.t=8;case +8:return this.c}};bp.prototype.toUtf16=function(){var +a=this.toString();if(this.t==9)return a;return fF(a)};bp.prototype.slice=function(){var a=this.t==4?this.c.slice():this.c;return new -bo(this.t,a,this.l)};function -i5(a){return new -bo(0,a,a.length)}function -a(a){return i5(a)}function -fH(c,b){y4(c,a(b))}var +bp(this.t,a,this.l)};function +iZ(a){return new +bp(0,a,a.length)}function +a(a){return iZ(a)}function +fC(c,b){yQ(c,a(b))}var T=[0];function -U(a){fH(T.Invalid_argument,a)}function -i2(){U(fp)}function -c2(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case +U(a){fC(T.Invalid_argument,a)}function +iW(){U(fk)}function +cZ(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case 0:return a.c.charCodeAt(b);case 4:return a.c[b]}}function -bM(b,a){if(a>>>0>=b.l)i2();return c2(b,a)}function -R(a,c,b){b&=aF;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}d4(a)}a.c[c]=b;return 0}function -aR(b,a,c){if(a>>>0>=b.l)i2();return R(b,a,c)}function -bq(c,a){if(c.fun)return bq(c.fun,a);if(typeof +bM(b,a){if(a>>>0>=b.l)iW();return cZ(b,a)}function +R(a,c,b){b&=aG;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}d0(a)}a.c[c]=b;return 0}function +aS(b,a,c){if(a>>>0>=b.l)iW();return R(b,a,c)}function +br(c,a){if(c.fun)return br(c.fun,a);if(typeof c!=="function")return c;var b=c.length|0;if(b===0)return c.apply(null,a);var e=a.length|0,d=b-e|0;if(d==0)return c.apply(null,a);else -if(d<0)return bq(c.apply(null,a.slice(0,b)),a.slice(b));else +if(d<0)return br(c.apply(null,a.slice(0,b)),a.slice(b));else return function(){var e=arguments.length==0?1:arguments.length,d=new Array(a.length+e);for(var b=0;b>>0>=a.length-1)c1();return a}function -yr(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function -aW(a){if((a.t&6)!=0)bN(a);return a.c}var -zj=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function -zh(a){if(zj)return Math.floor(Math.log2(a));var +b=0;b>>0>=a.length-1)cY();return a}function +yd(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function +aX(a){if((a.t&6)!=0)bN(a);return a.c}var +y7=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function +y5(a){if(y7)return Math.floor(Math.log2(a));var b=0;if(a==0)return-Infinity;if(a>=1)while(a>=2){a/=2;b++}else while(a<1){a*=2;b--}return b}function -fx(c){var -a=new(p.Float32Array)(1);a[0]=c;var -b=new(p.Int32Array)(a.buffer);return b[0]|0}var -jc=Math.pow(2,-24);function -d$(a){throw a}function -cg(){d$(T.Division_by_zero)}function -l(b,c,a){this.lo=b&bk;this.mi=c&bk;this.hi=a&a7}l.prototype.caml_custom="_j";l.prototype.copy=function(){return new -l(this.lo,this.mi,this.hi)};l.prototype.ucompare=function(a){if(this.hi>a.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.loa.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.lo>24),c=-this.hi+(b>>24);return new -l(a,b,c)};l.prototype.add=function(a){var +m(a,b,c)};m.prototype.add=function(a){var b=this.lo+a.lo,c=this.mi+a.mi+(b>>24),d=this.hi+a.hi+(c>>24);return new -l(b,c,d)};l.prototype.sub=function(a){var +m(b,c,d)};m.prototype.sub=function(a){var b=this.lo-a.lo,c=this.mi-a.mi+(b>>24),d=this.hi-a.hi+(c>>24);return new -l(b,c,d)};l.prototype.mul=function(a){var -b=this.lo*a.lo,c=(b*jc|0)+this.mi*a.lo+this.lo*a.mi,d=(c*jc|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new -l(b,c,d)};l.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};l.prototype.isNeg=function(){return this.hi<<16<0};l.prototype.and=function(a){return new -l(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};l.prototype.or=function(a){return new -l(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};l.prototype.xor=function(a){return new -l(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};l.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new -l(this.lo<>24-a,this.hi<>24-a);if(a<48)return new -l(0,this.lo<>48-a);return new -l(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new -l(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new -l(this.hi>>a-48,0,0)};l.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var +m(b,c,d)};m.prototype.mul=function(a){var +b=this.lo*a.lo,c=(b*i8|0)+this.mi*a.lo+this.lo*a.mi,d=(c*i8|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new +m(b,c,d)};m.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};m.prototype.isNeg=function(){return this.hi<<16<0};m.prototype.and=function(a){return new +m(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};m.prototype.or=function(a){return new +m(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};m.prototype.xor=function(a){return new +m(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};m.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new +m(this.lo<>24-a,this.hi<>24-a);if(a<48)return new +m(0,this.lo<>48-a);return new +m(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new +m(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new +m(this.hi>>a-48,0,0)};m.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var c=this.hi<<16>>16;if(a<24)return new -l(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var +m(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var b=this.hi<<16>>31;if(a<48)return new -l(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&a7);return new -l(this.hi<<16>>a-32,b,b)};l.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&bk;this.lo=this.lo<<1&bk};l.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&bk;this.mi=(this.mi>>>1|this.hi<<23)&bk;this.hi=this.hi>>>1};l.prototype.udivmod=function(e){var +m(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&a8);return new +m(this.hi<<16>>a-32,b,b)};m.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&bl;this.lo=this.lo<<1&bl};m.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&bl;this.mi=(this.mi>>>1|this.hi<<23)&bl;this.hi=this.hi>>>1};m.prototype.udivmod=function(e){var c=0,b=this.copy(),a=e.copy(),d=new -l(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};l.prototype.div=function(a){var -b=this;if(a.isZero())cg();var -d=b.hi^a.hi;if(b.hi&a3)b=b.neg();if(a.hi&a3)a=a.neg();var -c=b.udivmod(a).quotient;if(d&a3)c=c.neg();return c};l.prototype.mod=function(b){var -a=this;if(b.isZero())cg();var -d=a.hi;if(a.hi&a3)a=a.neg();if(b.hi&a3)b=b.neg();var -c=a.udivmod(b).modulus;if(d&a3)c=c.neg();return c};l.prototype.toInt=function(){return this.lo|this.mi<<24};l.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};l.prototype.toArray=function(){return[this.hi>>8,this.hi&aF,this.mi>>16,this.mi>>8&aF,this.mi&aF,this.lo>>16,this.lo>>8&aF,this.lo&aF]};l.prototype.lo32=function(){return this.lo|(this.mi&aF)<<24};l.prototype.hi32=function(){return this.mi>>>8&a7|this.hi<<16};function -c4(b,c,a){return new -l(b,c,a)}function -d7(a){if(!isFinite(a)){if(isNaN(a))return c4(1,0,hk);return a>0?c4(0,0,hk):c4(0,0,0xfff0)}var -f=a==0&&1/a==-Infinity?a3:a>=0?0:a3;if(f)a=-a;var -b=zh(a)+a6;if(b<=0){b=0;a/=Math.pow(2,-h8)}else{a/=Math.pow(2,b-iP);if(a<16){a*=2;b-=1}if(b==0)a/=2}var +m(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};m.prototype.div=function(a){var +b=this;if(a.isZero())cf();var +d=b.hi^a.hi;if(b.hi&a4)b=b.neg();if(a.hi&a4)a=a.neg();var +c=b.udivmod(a).quotient;if(d&a4)c=c.neg();return c};m.prototype.mod=function(b){var +a=this;if(b.isZero())cf();var +d=a.hi;if(a.hi&a4)a=a.neg();if(b.hi&a4)b=b.neg();var +c=a.udivmod(b).modulus;if(d&a4)c=c.neg();return c};m.prototype.toInt=function(){return this.lo|this.mi<<24};m.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};m.prototype.toArray=function(){return[this.hi>>8,this.hi&aG,this.mi>>16,this.mi>>8&aG,this.mi&aG,this.lo>>16,this.lo>>8&aG,this.lo&aG]};m.prototype.lo32=function(){return this.lo|(this.mi&aG)<<24};m.prototype.hi32=function(){return this.mi>>>8&a8|this.hi<<16};function +c1(b,c,a){return new +m(b,c,a)}function +d3(a){if(!isFinite(a)){if(isNaN(a))return c1(1,0,he);return a>0?c1(0,0,he):c1(0,0,0xfff0)}var +f=a==0&&1/a==-Infinity?a4:a>=0?0:a4;if(f)a=-a;var +b=y5(a)+a7;if(b<=0){b=0;a/=Math.pow(2,-h2)}else{a/=Math.pow(2,b-iJ);if(a<16){a*=2;b-=1}if(b==0)a/=2}var d=Math.pow(2,24),c=a|0;a=(a-c)*d;var e=a|0;a=(a-e)*d;var -g=a|0;c=c&fg|f|b<<4;return c4(g,e,c)}function -c6(a){return a.toArray()}function -i1(c,b,g){c.write(32,b.dims.length);c.write(32,b.kind|b.layout<<8);if(b.caml_custom==dZ)for(var -a=0;a>4;if(c==2047)return(f|g|b&fg)==0?b&a3?-Infinity:Infinity:NaN;var -e=Math.pow(2,-24),a=(f*e+g)*e+(b&fg);if(c>0){a+=16;a*=Math.pow(2,c-iP)}else -a*=Math.pow(2,-h8);if(b&a3)a=-a;return a}function -fs(b){var +a(e*iT(c));return d}function +ft(c){var +a=new(q.Int32Array)(1);a[0]=c;var +b=new(q.Float32Array)(a.buffer);return b[0]}function +c2(a){return new +m(a[7]<<0|a[6]<<8|a[5]<<16,a[4]<<0|a[3]<<8|a[2]<<16,a[1]<<0|a[0]<<8)}function +fu(d){var +f=d.lo,g=d.mi,b=d.hi,c=(b&0x7fff)>>4;if(c==2047)return(f|g|b&fb)==0?b&a4?-Infinity:Infinity:NaN;var +e=Math.pow(2,-24),a=(f*e+g)*e+(b&fb);if(c>0){a+=16;a*=Math.pow(2,c-iJ)}else +a*=Math.pow(2,-h2);if(b&a4)a=-a;return a}function +fn(b){var d=b.length,c=1;for(var a=0;a>>24&aF|(a&a7)<<8,a>>>16&a7)}function -fA(a){return a.hi32()}function -fB(a){return a.lo32()}var -yo=dZ;function -bJ(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}bJ.prototype.caml_custom=yo;bJ.prototype.offset=function(b){var +i7(b,a){return new +m(b&bl,b>>>24&aG|(a&a8)<<8,a>>>16&a8)}function +fv(a){return a.hi32()}function +fw(a){return a.lo32()}var +ya=dV;function +bJ(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}bJ.prototype.caml_custom=ya;bJ.prototype.offset=function(b){var c=0;if(typeof b==="number")b=[b];if(!(b instanceof Array))U("bigarray.js: invalid offset");if(this.dims.length!=b.length)U("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var -a=0;a=this.dims[a])c1();c=c*this.dims[a]+b[a]}else +a=0;a=this.dims[a])cY();c=c*this.dims[a]+b[a]}else for(var -a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])c1();c=c*this.dims[a]+(b[a]-1)}return c};bJ.prototype.get=function(a){switch(this.kind){case +a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])cY();c=c*this.dims[a]+(b[a]-1)}return c};bJ.prototype.get=function(a){switch(this.kind){case 7:var -d=this.data[a*2+0],b=this.data[a*2+1];return jb(d,b);case +d=this.data[a*2+0],b=this.data[a*2+1];return i7(d,b);case 10:case 11:var -e=this.data[a*2+0],c=this.data[a*2+1];return[cU,e,c];default:return this.data[a]}};bJ.prototype.set=function(a,b){switch(this.kind){case -7:this.data[a*2+0]=fB(b);this.data[a*2+1]=fA(b);break;case +e=this.data[a*2+0],c=this.data[a*2+1];return[cR,e,c];default:return this.data[a]}};bJ.prototype.set=function(a,b){switch(this.kind){case +7:this.data[a*2+0]=fw(b);this.data[a*2+1]=fv(b);break;case 10:case 11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};bJ.prototype.fill=function(b){switch(this.kind){case 7:var -c=fB(b),e=fA(b);if(c==e)this.data.fill(c);else +c=fw(b),e=fv(b);if(c==e)this.data.fill(c);else for(var a=0;a=this.dims[0])c1();return a};cb.prototype.get=function(a){return this.data[a]};cb.prototype.set=function(a,b){this.data[a]=b;return 0};cb.prototype.fill=function(a){this.data.fill(a);return 0};function -iX(c,d,a,b){var -e=iZ(c);if(fs(a)*e!=b.length)U("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new +U("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])cY();return a};cb.prototype.get=function(a){return this.data[a]};cb.prototype.set=function(a,b){this.data[a]=b;return 0};cb.prototype.fill=function(a){this.data.fill(a);return 0};function +iR(c,d,a,b){var +e=iT(c);if(fn(a)*e!=b.length)U("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new cb(c,d,a,b);return new bJ(c,d,a,b)}function -bT(a){fH(T.Failure,a)}function -iY(b,v,r){var +bT(a){fC(T.Failure,a)}function +iS(b,v,r){var i=b.read32s();if(i<0||i>16)bT("input_value: wrong number of bigarray dimensions");var -p=b.read32s(),j=p&aF,o=p>>8&1,h=[];if(r==dZ)for(var +p=b.read32s(),j=p&aG,o=p>>8&1,h=[];if(r==dV)for(var a=0;a>>32-15;a=a$(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function -yy(a,b){a=aj(a,fB(b));a=aj(a,fA(b));return a}function -fv(a,b){return yy(a,d7(b))}function -i0(c){var -b=fs(c.dims),d=0;switch(c.kind){case +l=fu(c2(e));g.set(a,[cR,m,l])}break}v[0]=(4+i)*4;return iR(j,o,h,f)}function +iQ(a,b,c){return a.compare(b,c)}function +ba(a,b){return Math.imul(a,b)}function +aj(b,a){a=ba(a,0xcc9e2d51|0);a=a<<15|a>>>32-15;a=ba(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function +yk(a,b){a=aj(a,fw(b));a=aj(a,fv(b));return a}function +fq(a,b){return yk(a,d3(b))}function +iU(c){var +b=fn(c.dims),d=0;switch(c.kind){case 2:case 3:case 12:if(b>b9)b=b9;var @@ -334,75 +334,75 @@ a=0;a64)b=64;for(var -a=0;a32)b=32;for(var -a=0;a0?b(c,f,e):b(f,c,e);if(e&&a!=a)return d;if(+a!=+a)return+a;if((a|0)!=0)return a|0}return d}function -c7(a){return a +c4(a){return a instanceof -bo}function -d8(a){return c7(a)}function -i8(a){if(typeof -a==="number")return aK;else -if(c7(a))return fl;else -if(d8(a))return 1252;else +bp}function +d5(a){return c4(a)}function +i2(a){if(typeof +a==="number")return aL;else +if(c4(a))return fg;else +if(d5(a))return 1252;else if(a instanceof Array&&a[0]===a[0]>>>0&&a[0]<=b6){var -b=a[0]|0;return b==cU?0:b}else +b=a[0]|0;return b==cR?0:b}else if(a instanceof -String)return hG;else +String)return hA;else if(typeof -a=="string")return hG;else +a=="string")return hA;else if(a instanceof -Number)return aK;else -if(a&&a.caml_custom)return e8;else +Number)return aL;else +if(a&&a.caml_custom)return e3;else if(a&&a.compare)return 1256;else if(typeof a=="function")return 1247;else if(typeof a=="symbol")return 1251;return 1001}function -ce(a,b){if(ab.c?1:0}function -fI(a,b){return i3(a,b)}function +d4(a,b){if(ab.c?1:0}function +fD(a,b){return iX(a,b)}function cc(a,b,d){var e=[];for(;;){if(!(d&&a===b)){var -f=i8(a);if(f==dJ){a=a[1];continue}var -g=i8(b);if(g==dJ){b=b[1];continue}if(f!==g){if(f==aK){if(g==e8)return i7(a,b,-1,d);return-1}if(g==aK){if(f==e8)return i7(b,a,1,d);return 1}return fb)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case 1251:if(a!==b){if(!d)return NaN;return 1}break;case 1252:var -a=aW(a),b=aW(b);if(a!==b){if(ab)return 1}break;case +a=aX(a),b=aX(b);if(a!==b){if(ab)return 1}break;case 12520:var a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case 246:case 254:default:if(a.length!=b.length)return a.length1)e.push(a,b,1);break}}if(e.length==0)return 0;var h=e.pop();b=e.pop();a=e.pop();if(h+10)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=j;a.t=2}else{a.c=ci(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)d4(a);for(b+=c;c0)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=k;a.t=2}else{a.c=ch(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)d0(a);for(b+=c;c31)U("format_int: format too long");var -a={justify:bi,signstyle:am,filler:be,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var +a={justify:bj,signstyle:an,filler:bf,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var c=0;c=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function -fu(b,f){if(b.uppercase)f=f.toUpperCase();var -e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=am))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var -c=j;if(b.justify==bi&&b.filler==be)for(var -d=e;d=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function +fp(b,f){if(b.uppercase)f=f.toUpperCase();var +e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=an))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var +c=k;if(b.justify==bj&&b.filler==bf)for(var +d=e;d20){c-=20;a/=Math.pow(10,c);a+=new -Array(c+1).join(r);if(b>0)a=a+bm+new -Array(b+1).join(r);return a}else +c=parseInt(a.toString().split(bj)[1]);if(c>20){c-=20;a/=Math.pow(10,c);a+=new +Array(c+1).join(s);if(b>0)a=a+bn+new +Array(b+1).join(s);return a}else return a.toFixed(b)}}var -a,e=fG(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=e_;e.filler=be}else -if(!isFinite(c)){a=iH;e.filler=be}else +a,e=fB(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=e5;e.filler=bf}else +if(!isFinite(c)){a=iB;e.filler=bf}else switch(e.conv){case"e":var -a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==d1)a=a.slice(0,b-1)+r+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var -h=a.indexOf(d1),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var -b=h-1;while(a.charAt(b)==r)b--;if(a.charAt(b)==bm)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==d1)a=a.slice(0,b-1)+r+a.slice(b-1);break}else{var +a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==dX)a=a.slice(0,b-1)+s+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var +h=a.indexOf(dX),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var +b=h-1;while(a.charAt(b)==s)b--;if(a.charAt(b)==bn)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==dX)a=a.slice(0,b-1)+s+a.slice(b-1);break}else{var f=d;if(g<0){f-=g+1;a=c.toFixed(f)}else while(a=c.toFixed(f),a.length>d+1)f--;if(f){var -b=a.length-1;while(a.charAt(b)==r)b--;if(a.charAt(b)==bm)b--;a=a.slice(0,b+1)}}break}return fu(e,a)}function -d5(e,c){if(aW(e)==ip)return a(j+c);var -b=fG(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else +b=a.length-1;while(a.charAt(b)==s)b--;if(a.charAt(b)==bn)b--;a=a.slice(0,b+1)}}break}return fp(e,a)}function +d1(e,c){if(aX(e)==ii)return a(k+c);var +b=fB(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else c>>>=0;var -d=c.toString(b.base);if(b.prec>=0){b.filler=be;var -f=b.prec-d.length;if(f>0)d=ci(f,r)+d}return fu(b,d)}var -ji=0;function -ac(){return ji++}function -cf(a){return a.toUtf16()}if(p.process&&p.process.cwd)var -c3=p.process.cwd().replace(/\\/g,bg);else +d=c.toString(b.base);if(b.prec>=0){b.filler=bf;var +f=b.prec-d.length;if(f>0)d=ch(f,s)+d}return fp(b,d)}var +jc=0;function +ag(){return jc++}function +ce(a){return a.toUtf16()}if(q.process&&q.process.cwd)var +c0=q.process.cwd().replace(/\\/g,bh);else var -c3="/static";if(c3.slice(-1)!==bg)c3+=bg;function -yS(a){a=cf(a);if(a.charCodeAt(0)!=47)a=c3+a;var -d=a.split(bg),b=[];for(var -c=0;c1)b.pop();break;case".":break;case"":if(b.length==0)b.push(j);break;default:b.push(d[c]);break}b.orig=a;return b}function -yp(a){return new -bo(4,a,a.length)}function -zb(e){for(var -f=j,b=f,a,h,c=0,g=e.length;ce3){b.substr(0,1);f+=b;b=j;f+=e.slice(c,d)}else -b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(aL|a&b7)}else -if(a<0xd800||a>=hy)b+=String.fromCharCode(hz|a>>12,aL|a>>6&b7,aL|a&b7);else -if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))hy)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(iA|a>>18,aL|a>>12&b7,aL|a>>6&b7,aL|a&b7)}if(b.length>cN){b.substr(0,1);f+=b;b=j}}return f+b}function -yq(a){var -b=9;if(!jl(a))b=8,a=zb(a);return new -bo(b,a,a.length)}function -aX(a){return yq(a)}function -K(a){fH(T.Sys_error,a)}function -y2(a){a=aW(a);K(a+": No such file or directory")}function -aG(a){return a.l}function -iV(){}function +c0="/static";if(c0.slice(-1)!==bh)c0+=bh;function +yE(a){a=ce(a);if(a.charCodeAt(0)!=47)a=c0+a;var +d=a.split(bh),b=[];for(var +c=0;c1)b.pop();break;case".":break;case"":if(b.length==0)b.push(k);break;default:b.push(d[c]);break}b.orig=a;return b}function +yb(a){return new +bp(4,a,a.length)}function +yZ(e){for(var +f=k,b=f,a,h,c=0,g=e.length;ceY){b.substr(0,1);f+=b;b=k;f+=e.slice(c,d)}else +b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(aM|a&b7)}else +if(a<0xd800||a>=hs)b+=String.fromCharCode(ht|a>>12,aM|a>>6&b7,aM|a&b7);else +if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))hs)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(iu|a>>18,aM|a>>12&b7,aM|a>>6&b7,aM|a&b7)}if(b.length>cK){b.substr(0,1);f+=b;b=k}}return f+b}function +yc(a){var +b=9;if(!jf(a))b=8,a=yZ(a);return new +bp(b,a,a.length)}function +aY(a){return yc(a)}function +L(a){fC(T.Sys_error,a)}function +yO(a){a=aX(a);L(a+": No such file or directory")}function +aH(a){return a.l}function +iP(){}function ai(a){this.data=a}ai.prototype=new -iV();ai.prototype.truncate=function(a){var -b=this.data;this.data=S(a|0);bK(b,0,this.data,0,a)};ai.prototype.length=function(){return aG(this.data)};ai.prototype.write=function(b,d,g,a){var +iP();ai.prototype.truncate=function(a){var +b=this.data;this.data=S(a|0);bK(b,0,this.data,0,a)};ai.prototype.length=function(){return aH(this.data)};ai.prototype.write=function(b,d,g,a){var c=this.length();if(b+a>=c){var e=S(b+a),f=this.data;this.data=e;bK(f,0,this.data,0,c)}bL(d,g,this.data,b,a);return 0};ai.prototype.read=function(c,a,d,b){var e=this.length();bK(this.data,c,a,d,b);return 0};ai.prototype.read_one=function(a){return bM(this.data,a)};ai.prototype.close=function(){};ai.prototype.constructor=ai;function -aQ(b,a){this.content={};this.root=b;this.lookupFun=a}aQ.prototype.nm=function(a){return this.root+a};aQ.prototype.lookup=function(b){if(!this.content[b]&&this.lookupFun){var +aR(b,a){this.content={};this.root=b;this.lookupFun=a}aR.prototype.nm=function(a){return this.root+a};aR.prototype.lookup=function(b){if(!this.content[b]&&this.lookupFun){var c=this.lookupFun(a(this.root),a(b));if(c!==0)this.content[b]=new -ai(bp(c[1]))}};aQ.prototype.exists=function(a){if(a==j)return 1;var -c=a+bg,d=new -RegExp(fa+c);for(var +ai(bq(c[1]))}};aR.prototype.exists=function(a){if(a==k)return 1;var +c=a+bh,d=new +RegExp(e7+c);for(var b in -this.content)if(b.match(d))return 1;this.lookup(a);return this.content[a]?1:0};aQ.prototype.readdir=function(c){var -f=c==j?j:c+bg,g=new -RegExp(fa+f+iM),d={},b=[];for(var +this.content)if(b.match(d))return 1;this.lookup(a);return this.content[a]?1:0};aR.prototype.readdir=function(c){var +f=c==k?k:c+bh,g=new +RegExp(e7+f+iG),d={},b=[];for(var e in this.content){var -a=e.match(g);if(a&&!d[a[1]]){d[a[1]]=true;b.push(a[1])}}return b};aQ.prototype.is_dir=function(a){var -d=a==j?j:a+bg,e=new -RegExp(fa+d+iM),f=[];for(var +a=e.match(g);if(a&&!d[a[1]]){d[a[1]]=true;b.push(a[1])}}return b};aR.prototype.is_dir=function(a){var +d=a==k?k:a+bh,e=new +RegExp(e7+d+iG),f=[];for(var c in this.content){var -b=c.match(e);if(b)return 1}return 0};aQ.prototype.unlink=function(a){var +b=c.match(e);if(b)return 1}return 0};aR.prototype.unlink=function(a){var b=this.content[a]?true:false;delete -this.content[a];return b};aQ.prototype.open=function(a,b){if(b.rdonly&&b.wronly)K(this.nm(a)+hO);if(b.text&&b.binary)K(this.nm(a)+ij);this.lookup(a);if(this.content[a]){if(this.is_dir(a))K(this.nm(a)+" : is a directory");if(b.create&&b.excl)K(this.nm(a)+hL);var +this.content[a];return b};aR.prototype.open=function(a,b){if(b.rdonly&&b.wronly)L(this.nm(a)+hI);if(b.text&&b.binary)L(this.nm(a)+ic);this.lookup(a);if(this.content[a]){if(this.is_dir(a))L(this.nm(a)+" : is a directory");if(b.create&&b.excl)L(this.nm(a)+hF);var c=this.content[a];if(b.truncate)c.truncate();return c}else if(b.create){this.content[a]=new ai(S(0));return this.content[a]}else -y2(this.nm(a))};aQ.prototype.register=function(b,a){if(this.content[b])K(this.nm(b)+hL);if(c7(a))this.content[b]=new -ai(a);if(d8(a))this.content[b]=new -ai(bp(a));else +yO(this.nm(a))};aR.prototype.register=function(b,a){if(this.content[b])L(this.nm(b)+hF);if(c4(a))this.content[b]=new +ai(a);if(d5(a))this.content[b]=new +ai(bq(a));else if(a instanceof Array)this.content[b]=new -ai(yp(a));else +ai(yb(a));else if(typeof a==="string")this.content[b]=new -ai(i5(a));else +ai(iZ(a));else if(a.toString){var -c=bp(aX(a.toString()));this.content[b]=new +c=bq(aY(a.toString()));this.content[b]=new ai(c)}else -K(this.nm(b)+" : registering file with invalid content type")};aQ.prototype.constructor=aQ;function -t(a){return aG(a)}function -cj(b,a){return c2(b,a)}function -yl(d){var -c=t(d),b=new -Array(c),a=0;for(;a>1|1;if(h=0)}function -fw(d,b){var +a=c}d6[d]=a+1;return h==b[a+1]?b[a]:0}function +i6(a,b){return+(cc(a,b,false)>=0)}function +fr(d,b){var e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b.charCodeAt(a)|b.charCodeAt(a+1)<<8|b.charCodeAt(a+2)<<16|b.charCodeAt(a+3)<<24;d=aj(d,c)}c=0;switch(e&3){case 3:c=b.charCodeAt(a+2)<<16;case 2:c|=b.charCodeAt(a+1)<<8;case 1:c|=b.charCodeAt(a);d=aj(d,c)}d^=e;return d}function -yz(a,b){return fw(a,aW(b))}function -yw(d,b){var +yl(a,b){return fr(a,aX(b))}function +yi(d,b){var e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b[a]|b[a+1]<<8|b[a+2]<<16|b[a+3]<<24;d=aj(d,c)}c=0;switch(e&3){case 3:c=b[a+2]<<16;case 2:c|=b[a+1]<<8;case 1:c|=b[a];d=aj(d,c)}d^=e;return d}function -yv(a,b){switch(b.t&6){default:bN(b);case -0:a=fw(a,b.c);break;case -2:a=yw(a,b.c)}return a}function -yx(a){a^=a>>>16;a=a$(a,0x85ebca6b|0);a^=a>>>13;a=a$(a,0xc2b2ae35|0);a^=a>>>16;return a}function -yu(j,l,n,m){var +yh(a,b){switch(b.t&6){default:bN(b);case +0:a=fr(a,b.c);break;case +2:a=yi(a,b.c)}return a}function +yj(a){a^=a>>>16;a=ba(a,0x85ebca6b|0);a^=a>>>13;a=ba(a,0xc2b2ae35|0);a^=a>>>16;return a}function +yg(j,l,n,m){var f,g,h,d,c,b,a,e,i;d=l;if(d<0||d>b9)d=b9;c=j;b=n;f=[m];g=0;h=1;while(g0){a=f[g++];if(a&&a.caml_custom){if(cd[a.caml_custom]&&cd[a.caml_custom].hash){var k=cd[a.caml_custom].hash(a);b=aj(b,k);c--}}else if(a @@ -603,65 +603,65 @@ Array&&a[0]===(a[0]|0))switch(a[0]){case 248:b=aj(b,a[2]);c--;break;case 250:f[--g]=a[1];break;default:var o=a.length-1<<10|a[0];b=aj(b,o);for(e=1,i=a.length;e=d)break;f[h++]=a[e]}break}else -if(c7(a)){b=yv(b,a);c--}else -if(d8(a)){b=yz(b,a);c--}else +if(c4(a)){b=yh(b,a);c--}else +if(d5(a)){b=yl(b,a);c--}else if(typeof -a==="string"){b=fw(b,a);c--}else +a==="string"){b=fr(b,a);c--}else if(a===(a|0)){b=aj(b,a+a+1);c--}else -if(a===+a){b=fv(b,a);c--}}b=yx(b);return b&0x3FFFFFFF}function -yA(a,c,l){if(!isFinite(a)){if(isNaN(a))return aX(e_);return aX(a>0?iE:"-infinity")}var +if(a===+a){b=fq(b,a);c--}}b=yj(b);return b&0x3FFFFFFF}function +ym(a,c,l){if(!isFinite(a)){if(isNaN(a))return aY(e5);return aY(a>0?iy:"-infinity")}var i=a==0&&1/a==-Infinity?1:a>=0?0:1;if(i)a=-a;var d=0;if(a==0);else if(a<1)while(a<1&&d>-1022){a*=2;d--}else while(a>=2){a/=2;d++}var -k=d<0?j:bi,e=j;if(i)e=am;else +j=d<0?k:bj,e=k;if(i)e=an;else switch(l){case -43:e=bi;break;case -32:e=be;break;default:break}if(c>=0&&c<13){var +43:e=bj;break;case +32:e=bf;break;default:break}if(c>=0&&c<13){var g=Math.pow(2,c*4);a=Math.round(a*g)/g}var b=a.toString(16);if(c>=0){var -h=b.indexOf(bm);if(h<0)b+=bm+ci(c,r);else{var -f=h+1+c;if(b.length>24&bk,a>>31&a7)}function -yL(a){return a.toInt()}function -yF(a){return+a.isNeg()}function -yI(a){return a.neg()}function -yD(g,c){var -a=fG(g);if(a.signedconv&&yF(c)){a.sign=-1;c=yI(c)}var -b=j,h=yJ(a.base),f="0123456789abcdef";do{var -e=c.udivmod(h);c=e.quotient;b=f.charAt(yL(e.modulus))+b}while(!yG(c));if(a.prec>=0){a.filler=be;var -d=a.prec-b.length;if(d>0)b=ci(d,r)+b}return fu(a,b)}function -yK(a,b){return a.or(b)}function -jd(a){return a.toFloat()}function -yN(){return typeof -module!=="undefined"&&module&&module.exports?module.exports:p}function -fC(a){return a.slice(1)}function -yO(c){var +h=b.indexOf(bn);if(h<0)b+=bn+ch(c,s);else{var +f=h+1+c;if(b.length>24&bl,a>>31&a8)}function +yx(a){return a.toInt()}function +yr(a){return+a.isNeg()}function +yu(a){return a.neg()}function +yp(g,c){var +a=fB(g);if(a.signedconv&&yr(c)){a.sign=-1;c=yu(c)}var +b=k,h=yv(a.base),f="0123456789abcdef";do{var +e=c.udivmod(h);c=e.quotient;b=f.charAt(yx(e.modulus))+b}while(!ys(c));if(a.prec>=0){a.filler=bf;var +d=a.prec-b.length;if(d>0)b=ch(d,s)+b}return fp(a,b)}function +yw(a,b){return a.or(b)}function +i9(a){return a.toFloat()}function +yz(){return typeof +module!=="undefined"&&module&&module.exports?module.exports:q}function +fx(a){return a.slice(1)}function +yA(c){var d=c.length,b=new Array(d+1);b[0]=0;for(var a=0;a0){var c=new Array(b);for(var -a=0;aa6){a-=a6;b*=Math.pow(2,a6);if(a>a6){a-=a6;b*=Math.pow(2,a6)}}if(a<-a6){a+=a6;b*=Math.pow(2,-a6)}b*=Math.pow(2,a);return b}function -yR(a,b){return+(cc(a,b,false)<=0)}function -fE(a,b){return+(cc(a,b,false)<0)}function -br(a,d){if(a<0)c1();var +a=0;aa7){a-=a7;b*=Math.pow(2,a7);if(a>a7){a-=a7;b*=Math.pow(2,a7)}}if(a<-a7){a+=a7;b*=Math.pow(2,-a7)}b*=Math.pow(2,a);return b}function +yD(a,b){return+(cc(a,b,false)<=0)}function +fz(a,b){return+(cc(a,b,false)<0)}function +bs(a,d){if(a<0)cY();var a=a+1|0,b=new Array(a);b[0]=0;for(var c=1;c>>32-b,c)}function g(c,b,d,e,h,f,g){return a(b&d|~b&e,c,b,h,f,g)}function @@ -669,7 +669,7 @@ h(d,b,e,c,h,f,g){return a(b&c|e&~c,d,b,h,f,g)}function i(c,b,d,e,h,f,g){return a(b^d^e,c,b,h,f,g)}function j(c,b,d,e,h,f,g){return a(d^(b|~e),c,b,h,f,g)}function k(f,n){var -e=n;f[e>>2]|=aL<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var +e=n;f[e>>2]|=aM<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var k=[0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476];for(e=0;e>2]=d.charCodeAt(b)|d.charCodeAt(b+1)<<8|d.charCodeAt(b+2)<<16|d.charC 4:var c=h.c;for(var a=0;a>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return y8(k(e,f))}}();function -yU(c,b,a){return yT(bp(c),b,a)}var -a_=new +b=a+g;e[a>>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return yU(k(e,f))}}();function +yG(c,b,a){return yF(bq(c),b,a)}var +a$=new Array();function -fF(c){var -a=a_[c];if(!a.opened)K("Cannot flush a closed channel");if(!a.buffer||a.buffer==j)return 0;if(a.fd&&T.fds[a.fd]&&T.fds[a.fd].output){var +fA(c){var +a=a$[c];if(!a.opened)L("Cannot flush a closed channel");if(!a.buffer||a.buffer==k)return 0;if(a.fd&&T.fds[a.fd]&&T.fds[a.fd].output){var b=T.fds[a.fd].output;switch(b.length){case -2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=j;return 0}function -jk(e,f){var -b=a_[e],d=a(f),c=t(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function -zf(a){var -a=fK(a),b=p;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=k;return 0}function +je(e,f){var +b=a$[e],d=a(f),c=u(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function +y3(a){var +a=fF(a),b=q;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.error&&c.error(a)}}function -zg(a){var -a=fK(a),b=p;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +y4(a){var +a=fF(a),b=q;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.log&&c.log(a)}}function -ec(c,e,d,a){if(T.fds===undefined)T.fds=new +d$(c,e,d,a){if(T.fds===undefined)T.fds=new Array();a=a?a:{};var b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;T.fds[c]=b;if(!T.fd_last_idx||c>T.fd_last_idx)T.fd_last_idx=c;return c}function -zw(c,b,g){var +zi(c,b,g){var a={};while(b){switch(b[1]){case 0:a.rdonly=1;break;case 1:a.wronly=1;break;case @@ -713,89 +713,89 @@ a={};while(b){switch(b[1]){case 5:a.excl=1;break;case 6:a.binary=1;break;case 7:a.text=1;break;case -8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)K(aW(c)+hO);if(a.text&&a.binary)K(aW(c)+ij);var -d=jq(c),e=d.device.open(d.rest,a),f=T.fd_last_idx?T.fd_last_idx:0;return ec(f+1,jk,e,a)}ec(0,jk,new -ai(S(0)));ec(1,zg,new -ai(S(0)));ec(2,zf,new +8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)L(aX(c)+hI);if(a.text&&a.binary)L(aX(c)+ic);var +d=jk(c),e=d.device.open(d.rest,a),f=T.fd_last_idx?T.fd_last_idx:0;return d$(f+1,je,e,a)}d$(0,je,new +ai(S(0)));d$(1,y4,new +ai(S(0)));d$(2,y3,new ai(S(0)));function -yV(c){var -b=T.fds[c];if(b.flags.wronly)K(iQ+c+" is writeonly");var -a={file:b.file,offset:b.offset,fd:c,opened:true,out:false,refill:null};a_[a.fd]=a;return a.fd}function -je(c){var -b=T.fds[c];if(b.flags.rdonly)K(iQ+c+" is readonly");var -a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:j};a_[a.fd]=a;return a.fd}function -yW(){var +yH(c){var +b=T.fds[c];if(b.flags.wronly)L(iK+c+" is writeonly");var +a={file:b.file,offset:b.offset,fd:c,opened:true,out:false,refill:null};a$[a.fd]=a;return a.fd}function +i_(c){var +b=T.fds[c];if(b.flags.rdonly)L(iK+c+" is readonly");var +a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:k};a$[a.fd]=a;return a.fd}function +yI(){var b=0;for(var -a=0;a>>0)return a[0];else -if(c7(a))return fl;else -if(d8(a))return fl;else +if(c4(a))return fg;else +if(d5(a))return fg;else if(a instanceof Function||typeof a=="function")return 247;else if(a&&a.caml_custom)return b6;else -return aK}function -aS(b,c,a){if(a&&p.toplevelReloc)b=p.toplevelReloc(a);T[b+1]=c;if(a)T[a]=c}var -jf={};function -y5(a,b){jf[aW(a)]=b;return 0}function -y6(a){a[2]=ji++;return a}function -fJ(a,b){return i4(a,b)}function -y7(){U(fp)}function -o(b,a){if(a>>>0>=t(b))y7();return cj(b,a)}function -V(a,b){return 1-fJ(a,b)}function -y9(){return[0,a("js_of_ocaml")]}function -y_(){return 0x7FFFFFFF/4|0}function -y$(){return[0,a("Unix"),32,0]}function -y3(){d$(T.Not_found)}function -eb(c){var -a=p,b=cf(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return aX(a.process.env[b]);if(p.jsoo_static_env&&p.jsoo_static_env[b])return aX(p.jsoo_static_env[b]);y3()}function -za(){var +return aL}function +aT(b,c,a){if(a&&q.toplevelReloc)b=q.toplevelReloc(a);T[b+1]=c;if(a)T[a]=c}var +i$={};function +yR(a,b){i$[aX(a)]=b;return 0}function +yS(a){a[2]=jc++;return a}function +fE(a,b){return iY(a,b)}function +yT(){U(fk)}function +p(b,a){if(a>>>0>=u(b))yT();return ci(b,a)}function +V(a,b){return 1-fE(a,b)}function +yV(){return[0,a("js_of_ocaml")]}function +yW(){return 0x7FFFFFFF/4|0}function +yX(){return[0,a("Unix"),32,0]}function +yP(){d8(T.Not_found)}function +d_(c){var +a=q,b=ce(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return aY(a.process.env[b]);if(q.jsoo_static_env&&q.jsoo_static_env[b])return aY(q.jsoo_static_env[b]);yP()}function +yY(){var a=new -Date().getTime(),b=a^iG*Math.random();return[0,b]}function -c8(a){var +Date().getTime(),b=a^iA*Math.random();return[0,b]}function +c5(a){var b=1;while(a&&a.joo_tramp){a=a.joo_tramp.apply(null,a.joo_args);b++}return a}function ad(b,a){return{joo_tramp:b,joo_args:a}}function -jj(a){return a}function -d_(a){return jf[a]}function -d(a){if(a +jd(a){return a}function +d7(a){return i$[a]}function +e(a){if(a instanceof -Array)return a;if(p.RangeError&&a +Array)return a;if(q.RangeError&&a instanceof -p.RangeError&&a.message&&a.message.match(/maximum call stack/i))return jj(T.Stack_overflow);if(p.InternalError&&a +q.RangeError&&a.message&&a.message.match(/maximum call stack/i))return jd(T.Stack_overflow);if(q.InternalError&&a instanceof -p.InternalError&&a.message&&a.message.match(/too much recursion/i))return jj(T.Stack_overflow);if(a +q.InternalError&&a.message&&a.message.match(/too much recursion/i))return jd(T.Stack_overflow);if(a instanceof -p.Error&&d_(e7))return[0,d_(e7),a];return[0,T.Failure,aX(String(a))]}var -k=function(B){"use strict";var -f=bR,ab=7,v=9007199254740992,J=s(v),O="0123456789abcdefghijklmnopqrstuvwxyz",g=p.BigInt,H=typeof +q.Error&&d7(e2))return[0,d7(e2),a];return[0,T.Failure,aY(String(a))]}var +l=function(B){"use strict";var +f=bR,ab=7,v=9007199254740992,J=r(v),O="0123456789abcdefghijklmnopqrstuvwxyz",g=q.BigInt,H=typeof g==="function";function d(a,b,c,f){if(typeof a==="undefined")return d[0];if(typeof b!=="undefined")return+b===10&&!c?e(a):af(a,b,c,f);return e(a)}function -a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=dG}a.prototype=Object.create(d.prototype);function -b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=dG}b.prototype=Object.create(d.prototype);function -c(a){this.value=a;this.caml_custom=dG}c.prototype=Object.create(d.prototype);function -q(a){return-v0)a.push(0);return a.concat(c)}function E(b,c){var a=Math.max(b.length,c.length);if(a<=30)return N(b,c);a=Math.ceil(a/2);var f=b.slice(a),d=b.slice(0,a),i=c.slice(a),h=c.slice(0,a),e=E(d,h),g=E(f,i),k=E(w(d,f),w(h,i)),j=w(w(e,Y(z(z(k,e),g),a)),Y(g,2*a));t(j);return j}function -ak(a,b){return-(it*a)-it*b+0.000015*a*b>0}a.prototype.multiply=function(j){var +ak(a,b){return-(im*a)-im*b+0.000015*a*b>0}a.prototype.multiply=function(j){var h=e(j),c=this.value,b=h.value,i=this.sign!==h.sign,g;if(h.isSmall){if(b===0)return d[0];if(b===1)return this;if(b===-1)return this.negate();g=Math.abs(b);if(g=0;d--){j=g-1;if(b[d+h]!==l)j=Math.floor((b[d+h]*g+b[d+h-1])/l);c=0;e=0;m=i.length;for(a=0;a=y){b=b.multiply(l);a-=y-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var +Error(String(a)+h0);if(a<0)return this.shiftRight(-a);var +b=this;if(b.isZero())return b;while(a>=y){b=b.multiply(j);a-=y-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var a,b=e(d).toJSNumber();if(!Z(b))throw new -Error(String(b)+h6);if(b<0)return this.shiftLeft(-b);var -c=this;while(b>=y){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,l);c=a[1].isNegative()?a[0].prev():a[0];b-=y-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function +Error(String(b)+h0);if(b<0)return this.shiftLeft(-b);var +c=this;while(b>=y){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,j);c=a[1].isNegative()?a[0].prev():a[0];b-=y-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function K(h,a,r){a=e(a);var -n=h.isNegative(),q=a.isNegative(),m=n?h.not():h,p=q?a.not():a,b=0,c=0,j=null,o=null,f=[];while(!m.isZero()||!p.isZero()){j=i(m,l);b=j[1].toJSNumber();if(n)b=l-1-b;o=i(p,l);c=o[1].toJSNumber();if(q)c=l-1-c;m=j[0];p=o[0];f.push(r(b,c))}var -g=r(n?1:0,q?1:0)!==0?k(-1):k(0);for(var -d=f.length-1;d>=0;d-=1)g=g.multiply(l).add(k(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return K(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return K(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return K(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var +n=h.isNegative(),q=a.isNegative(),m=n?h.not():h,p=q?a.not():a,b=0,c=0,k=null,o=null,f=[];while(!m.isZero()||!p.isZero()){k=i(m,j);b=k[1].toJSNumber();if(n)b=j-1-b;o=i(p,j);c=o[1].toJSNumber();if(q)c=j-1-c;m=k[0];p=o[0];f.push(r(b,c))}var +g=r(n?1:0,q?1:0)!==0?l(-1):l(0);for(var +d=f.length-1;d>=0;d-=1)g=g.multiply(j).add(l(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return K(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return K(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return K(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var I=1<<30,aa=(f&-f)*(f&-f)|I;function F(c){var a=c.value,b=typeof a==="number"?a|I:typeof a==="bigint"?a|g(I):a[0]+a[1]*f|aa;return b&-b}function S(b,a){if(a.compareTo(b)<=0){var -f=S(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:k(1),e:0}}a.prototype.bitLength=function(){var -a=this;if(a.compareTo(k(0))<0)a=a.negate().subtract(k(1));if(a.compareTo(k(0))===0)return k(0);return k(S(a,k(2)).e).add(k(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function +f=S(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:l(1),e:0}}a.prototype.bitLength=function(){var +a=this;if(a.compareTo(l(0))<0)a=a.negate().subtract(l(1));if(a.compareTo(l(0))===0)return l(0);return l(S(a,l(2)).e).add(l(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function U(a,b){a=e(a);b=e(b);return a.greater(b)?a:b}function M(a,b){a=e(a);b=e(b);return a.lesser(b)?a:b}function R(a,b){a=e(a).abs();b=e(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var @@ -990,52 +990,52 @@ c=0;c=i){if(c===ay&&i===1)continue;throw new -Error(c+" is not a valid digit in base "+g+bm)}}g=e(g);var -h=[],j=b[0]===am;for(a=j?1:0;a=i){if(c===az&&i===1)continue;throw new +Error(c+" is not a valid digit in base "+g+bn)}}g=e(g);var +h=[],j=b[0]===an;for(a=j?1:0;a=0;a--){b=b.add(e[a].times(c));c=c.times(f)}return g?b.negate():b}function -ai(b,a){a=a||O;if(b=0){e=c.divmod(b);c=e.quotient;var d=e.remainder;if(d.isNegative()){d=b.minus(d).abs();c=c.next()}g.push(d.toJSNumber())}g.push(c.toJSNumber());return{value:g.reverse(),isNegative:f}}function $(d,c,b){var -a=A(d,c);return(a.isNegative?am:j)+a.value.map(function(a){return ai(a,b)}).join(j)}a.prototype.toArray=function(a){return A(this,a)};b.prototype.toArray=function(a){return A(this,a)};c.prototype.toArray=function(a){return A(this,a)};a.prototype.toString=function(a,f){if(a===B)a=10;if(a!==10)return $(this,a,f);var +a=A(d,c);return(a.isNegative?an:k)+a.value.map(function(a){return ai(a,b)}).join(k)}a.prototype.toArray=function(a){return A(this,a)};b.prototype.toArray=function(a){return A(this,a)};c.prototype.toArray=function(a){return A(this,a)};a.prototype.toString=function(a,f){if(a===B)a=10;if(a!==10)return $(this,a,f);var d=this.value,c=d.length,e=String(d[--c]),h="0000000",b;while(--c>=0){b=String(d[c]);e+=h.slice(b.length)+b}var -g=this.sign?am:j;return g+e};b.prototype.toString=function(a,b){if(a===B)a=10;if(a!=10)return $(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function -X(d){if(q(+d)){var +g=this.sign?an:k;return g+e};b.prototype.toString=function(a,b){if(a===B)a=10;if(a!=10)return $(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function +X(d){if(p(+d)){var l=+d;if(l===u(l))return H?new c(g(l)):new b(l);throw new -Error(dQ+d)}var -o=d[0]===am;if(o)d=d.slice(1);var +Error(dM+d)}var +o=d[0]===an;if(o)d=d.slice(1);var h=d.split(/e/i);if(h.length>2)throw new -Error(dQ+h.join(d1));if(h.length===2){var -e=h[1];if(e[0]===bi)e=e.slice(1);e=+e;if(e!==u(e)||!q(e))throw new -Error(dQ+e+" is not a valid exponent.");var -f=h[0],i=f.indexOf(bm);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new +Error(dM+h.join(dX));if(h.length===2){var +e=h[1];if(e[0]===bj)e=e.slice(1);e=+e;if(e!==u(e)||!p(e))throw new +Error(dM+e+" is not a valid exponent.");var +f=h[0],i=f.indexOf(bn);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new Error("Cannot include negative exponent part for integers");f+=new -Array(e+1).join(r);d=f}var -p=/^([0-9][0-9]*)$/.test(d);if(!p)throw new -Error(dQ+d);if(H)return new -c(g(o?am+d:d));var +Array(e+1).join(s);d=f}var +q=/^([0-9][0-9]*)$/.test(d);if(!q)throw new +Error(dM+d);if(H)return new +c(g(o?an+d:d));var n=[],j=d.length,m=ab,k=j-m;while(j>0){n.push(+d.slice(k,j));k-=m;if(k<0)k=0;j-=m}t(n);return new a(n,o)}function ag(a){if(H)return new -c(g(a));if(q(a)){if(a!==u(a))throw new +c(g(a));if(p(a)){if(a!==u(a))throw new Error(a+" is not an integer.");return new b(a)}return X(a.toString())}function e(a){if(typeof @@ -1043,263 +1043,263 @@ a==="number")return ag(a);if(typeof a==="string")return X(a);if(typeof a==="bigint")return new c(a);return a}for(var -m=0;m0)d[-m]=e(-m)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=U;d.min=M;d.gcd=R;d.lcm=ae;d.isInstance=function(d){return d +m=0;m0)d[-m]=e(-m)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=U;d.min=M;d.gcd=R;d.lcm=ae;d.isInstance=function(d){return d instanceof a||d instanceof b||d instanceof c};d.randBetween=ah;d.fromArray=function(b,a,c){return W(b.map(e),e(a||10),c)};return d}();function -aT(a){var -b=a.toJSNumber()|0;if(a.equals(k(b)))return b;return a}function -W(a,b){return aT(k(a).add(k(b)))}function -ck(a,b){return k(a).compare(k(b))}function -jm(b,a){a=k(a);if(a.equals(k(0)))cg();return aT(k(b).divide(k(a)))}function -zr(b,a){a=k(a);if(a.equals(k(0)))cg();return aT(k(b).mod(a))}function -zk(a,b){return[0,jm(a,b),zr(a,b)]}function -jn(a,b){return jm(a,b)}function -zl(a,b){return k(a).equals(k(b))}function -zn(a,b){return aT(k.gcd(k(a),k(b)).abs())}function -zc(c,e,g){e=k(e);var +aU(a){var +b=a.toJSNumber()|0;if(a.equals(l(b)))return b;return a}function +W(a,b){return aU(l(a).add(l(b)))}function +cj(a,b){return l(a).compare(l(b))}function +jg(b,a){a=l(a);if(a.equals(l(0)))cf();return aU(l(b).divide(l(a)))}function +zd(b,a){a=l(a);if(a.equals(l(0)))cf();return aU(l(b).mod(a))}function +y8(a,b){return[0,jg(a,b),zd(a,b)]}function +jh(a,b){return jg(a,b)}function +y9(a,b){return l(a).equals(l(b))}function +y$(a,b){return aU(l.gcd(l(a),l(b)).abs())}function +y0(c,e,g){e=l(e);var a=e.toArray(Math.pow(2,32));c.write(8,a.isNegative?1:0);var f=a.value.length,d=f*4;c.write(32,d);for(var -b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&aF);c.write(8,a.value[b]>>>8&aF);c.write(8,a.value[b]>>>16&aF);c.write(8,a.value[b]>>>24&aF)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function -zd(b,g){var +b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&aG);c.write(8,a.value[b]>>>8&aG);c.write(8,a.value[b]>>>16&aG);c.write(8,a.value[b]>>>24&aG)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function +y1(b,g){var e;switch(b.read8u()){case 1:e=true;break;case 0:e=false;break;default:bT("input_value: z (malformed input)")}var -f=b.read32u(),c=k(0);for(var +f=b.read32u(),c=l(0);for(var d=0;d>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return aT(c)}function -zo(d){var -b=k(d).toArray(Math.pow(2,32)),a=0;for(var +a=l(b.read8u());a=a.add(b.read8u()<<8);a=a.add(b.read8u()<<16);a=a.add(b.read8u()<<24>>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return aU(c)}function +za(d){var +b=l(d).toArray(Math.pow(2,32)),a=0;for(var c=0;c=48&&a<=57)return a-48;if(a>=97&&a<=ik)return a-97+10;if(a>=65&&a<=70)return a-65+10}var -e=0;if(a[e]==am)e++;for(;e=c)U("Z.of_substring_base: invalid digit")}return aT(k(a,c))}function -bW(d,a,b,c){a=aW(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function -jp(a){a=k(a);if(!zm(a))d$(d_(fe));var -b=k(iG),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=jb(d,c);return e}function -ed(){return new -Date().getTime()/aK}function -cn(e){var +if(d==ij||d=="X")c=16;else +if(d=="b"||d=="B")c=2;if(c!=10){a=a.substring(b+1);if(g==-1)a=an+a}}}}if(a[0]==bj)a=a.substring(1);a=a.replace(/^0+/,k);if(a==an||a==k)a=s;function +h(a){if(a>=48&&a<=57)return a-48;if(a>=97&&a<=id)return a-97+10;if(a>=65&&a<=70)return a-65+10}var +e=0;if(a[e]==an)e++;for(;e=c)U("Z.of_substring_base: invalid digit")}return aU(l(a,c))}function +bW(d,a,b,c){a=aX(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function +jj(a){a=l(a);if(!y_(a))d8(d7(e$));var +b=l(iA),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=i7(d,c);return e}function +ea(){return new +Date().getTime()/aL}function +cm(e){var a=new -Date(e*aK),b=a.getTime(),d=new -Date(Date.UTC(a.getUTCFullYear(),0,1)).getTime(),c=Math.floor((b-d)/hC);return[0,a.getUTCSeconds(),a.getUTCMinutes(),a.getUTCHours(),a.getUTCDate(),a.getUTCMonth(),a.getUTCFullYear()-bH,a.getUTCDay(),c,false|0]}function -ee(){return 0}function -zv(h){var +Date(e*aL),b=a.getTime(),d=new +Date(Date.UTC(a.getUTCFullYear(),0,1)).getTime(),c=Math.floor((b-d)/hw);return[0,a.getUTCSeconds(),a.getUTCMinutes(),a.getUTCHours(),a.getUTCDate(),a.getUTCMonth(),a.getUTCFullYear()-bH,a.getUTCDay(),c,false|0]}function +eb(){return 0}function +zh(h){var a=new -Date(h*aK),b=a.getTime(),e=new -Date(a.getFullYear(),0,1).getTime(),c=Math.floor((b-e)/hC),d=new +Date(h*aL),b=a.getTime(),e=new +Date(a.getFullYear(),0,1).getTime(),c=Math.floor((b-e)/hw),d=new Date(a.getFullYear(),0,1),f=new Date(a.getFullYear(),6,1),g=Math.max(d.getTimezoneOffset(),f.getTimezoneOffset());return[0,a.getSeconds(),a.getMinutes(),a.getHours(),a.getDate(),a.getMonth(),a.getFullYear()-bH,a.getDay(),c,a.getTimezoneOffset()>>0){if(!(25<(b+cM|0)>>>0))c=1}else +a=c;continue}return 0}}return a(yI(0))}];function +jt(c){var +a=[0,0],d=ec[1];ec[1]=function(e){if(1-a[1]){a[1]=1;b(c,0)}return b(d,0)};return 0}function +ju(a){return b(ec[1],0)}function +bX(a){if(0<=a&&!(b6>>0){if(!(25<(b+cJ|0)>>>0))c=1}else if(23!==b)c=1;return c?a+32|0:a}var -fR=y$(0)[1],fS=y_(0),co=(4*fS|0)-1|0;ac(0);var -jI=y9(0);function -dc(d){var +fM=yX(0)[1],fN=yW(0),cn=(4*fN|0)-1|0;ag(0);var +jC=yV(0);function +ed(d){var a=d,b=0;for(;;){if(a){var c=[0,a[1],b],a=a[2],b=c;continue}return b}}typeof -jI==="number";function -dd(c,a){if(a){var -d=a[2],e=b(c,a[1]);return[0,e,dd(c,d)]}return 0}function -aY(a,c){var -b=S(a);ys(b,0,a,c);return b}function -fT(a){var -b=aG(a),c=S(b);bK(a,0,c,0,b);return c}function -de(a){return an(fT(a))}function -fU(c,b,a){if(0<=b&&0<=a&&!((aG(c)-a|0)>>0))e=1}else +c=c_(k),a=u(b),d=p(b,0),e=0;if(58<=d){if(71<=d){if(!(5<(d+h5|0)>>>0))e=1}else if(65<=d)e=1}else{var -f=0;if(32!==d)if(43<=d)switch(d+iJ|0){case +f=0;if(32!==d)if(43<=d)switch(d+iD|0){case 5:if(a<(c+2|0)&&1>>0){if(33<(n-61|0)>>>0)p=1}else +n=ci(k,j)+ff|0,p=0;if(59>>0){if(33<(n-61|0)>>>0)p=1}else if(2===n)p=1;if(!p){var j=j+1|0;continue}var -e=bp(k),a=[0,0],r=aG(e)-1|0,x=0;if(!(r<0)){var +e=bq(k),a=[0,0],r=aH(e)-1|0,x=0;if(!(r<0)){var i=x;for(;;){var -f=c2(e,i),g=0;if(32<=f){var +f=cZ(e,i),g=0;if(32<=f){var l=f-34|0,q=0;if(58>>0){if(93<=l)q=1}else if(56<(l-1|0)>>>0){g=1;q=1}if(!q){var m=1;g=2}}else @@ -1969,13 +1969,13 @@ m=4;break;case 1:var m=2;break}a[1]=a[1]+m|0;var A=i+1|0;if(r!==i){var -i=A;continue}break}}if(a[1]===aG(e))var -u=fT(e);else{var +i=A;continue}break}}if(a[1]===aH(e))var +t=fO(e);else{var b=S(a[1]);a[1]=0;var -s=aG(e)-1|0,y=0;if(!(s<0)){var +s=aH(e)-1|0,y=0;if(!(s<0)){var h=y;for(;;){var -c=c2(e,h),d=0;if(35<=c)if(92===c)d=2;else -if(cM<=c)d=1;else +c=cZ(e,h),d=0;if(35<=c)if(92===c)d=2;else +if(cJ<=c)d=1;else d=3;else if(32<=c)if(34<=c)d=2;else d=3;else @@ -1983,26 +1983,26 @@ if(14<=c)d=1;else switch(c){case 8:R(b,a[1],92);a[1]++;R(b,a[1],98);break;case 9:R(b,a[1],92);a[1]++;R(b,a[1],116);break;case -10:R(b,a[1],92);a[1]++;R(b,a[1],c0);break;case +10:R(b,a[1],92);a[1]++;R(b,a[1],cX);break;case 13:R(b,a[1],92);a[1]++;R(b,a[1],114);break;default:d=1}switch(d){case -1:R(b,a[1],92);a[1]++;R(b,a[1],48+(c/aO|0)|0);a[1]++;R(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;R(b,a[1],48+(c%10|0)|0);break;case +1:R(b,a[1],92);a[1]++;R(b,a[1],48+(c/aP|0)|0);a[1]++;R(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;R(b,a[1],48+(c%10|0)|0);break;case 2:R(b,a[1],92);a[1]++;R(b,a[1],c);break;case 3:R(b,a[1],c);break}a[1]++;var z=h+1|0;if(s!==h){var h=z;continue}break}}var -u=b}var -o=an(u)}var -v=t(o),w=aY(v+2|0,34);bL(o,0,w,1,v);return an(w)}}function -f7(d,f){var -g=db(f),e=f8?f8[1]:70;switch(d[2]){case +t=b}var +o=ao(t)}var +v=u(o),w=aZ(v+2|0,34);bL(o,0,w,1,v);return ao(w)}}function +f2(d,f){var +g=c_(f),e=f3?f3[1]:70;switch(d[2]){case 0:var -b=ik;break;case +b=id;break;case 1:var -b=dS;break;case +b=dO;break;case 2:var b=69;break;case 3:var -b=e4;break;case +b=eZ;break;case 4:var b=71;break;case 5:var @@ -2012,161 +2012,161 @@ b=104;break;case 7:var b=72;break;default:var b=70}var -c=f4(16);b1(c,37);switch(d[1]){case +c=fZ(16);b1(c,37);switch(d[1]){case 0:break;case -1:b1(c,43);break;default:b1(c,32)}if(8<=d[2])b1(c,35);b1(c,46);ak(c,a(j+g));b1(c,b);return f6(c)}function -dj(m,a){if(13<=m){var -g=[0,0],h=t(a)-1|0,n=0;if(!(h<0)){var -c=n;for(;;){if(!(9<(cj(a,c)+dI|0)>>>0))g[1]++;var +1:b1(c,43);break;default:b1(c,32)}if(8<=d[2])b1(c,35);b1(c,46);ak(c,a(k+g));b1(c,b);return f1(c)}function +dg(m,a){if(13<=m){var +g=[0,0],h=u(a)-1|0,n=0;if(!(h<0)){var +c=n;for(;;){if(!(9<(ci(a,c)+dE|0)>>>0))g[1]++;var q=c+1|0;if(h!==c){var c=q;continue}break}}var -i=g[1],j=S(t(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){aR(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=t(a)-1|0,o=0;if(!(l<0)){var +i=g[1],j=S(u(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){aS(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=u(a)-1|0,o=0;if(!(l<0)){var b=o;for(;;){var -f=cj(a,b);if(9<(f+dI|0)>>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var +f=ci(a,b);if(9<(f+dE|0)>>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var p=b+1|0;if(l!==b){var -b=p;continue}break}}return an(j)}return a}function -lC(b,c){switch(b){case +b=p;continue}break}}return ao(j)}return a}function +lw(b,c){switch(b){case 1:var -a=kP;break;case +a=kJ;break;case 2:var -a=kQ;break;case +a=kK;break;case 4:var -a=kS;break;case +a=kM;break;case 5:var -a=kT;break;case +a=kN;break;case 6:var -a=kU;break;case -7:var -a=kV;break;case -8:var -a=kW;break;case -9:var -a=kX;break;case -10:var -a=kY;break;case -11:var -a=kZ;break;case -0:case -13:var a=kO;break;case -3:case -14:var -a=kR;break;default:var -a=k0}return dj(b,d5(a,c))}function -lD(b,c){switch(b){case -1:var -a=ld;break;case -2:var -a=le;break;case -4:var -a=lg;break;case -5:var -a=lh;break;case -6:var -a=li;break;case 7:var -a=lj;break;case +a=kP;break;case 8:var -a=lk;break;case +a=kQ;break;case 9:var -a=ll;break;case +a=kR;break;case 10:var -a=lm;break;case +a=kS;break;case 11:var -a=ln;break;case +a=kT;break;case 0:case 13:var -a=lc;break;case +a=kI;break;case 3:case 14:var -a=lf;break;default:var -a=lo}return dj(b,d5(a,c))}function -lE(b,c){switch(b){case +a=kL;break;default:var +a=kU}return dg(b,d1(a,c))}function +lx(b,c){switch(b){case 1:var -a=lq;break;case -2:var -a=lr;break;case -4:var -a=lt;break;case -5:var -a=lu;break;case -6:var -a=lv;break;case -7:var -a=lw;break;case -8:var -a=lx;break;case -9:var -a=ly;break;case -10:var -a=lz;break;case -11:var -a=lA;break;case -0:case -13:var -a=lp;break;case -3:case -14:var -a=ls;break;default:var -a=lB}return dj(b,d5(a,c))}function -lF(b,c){switch(b){case -1:var -a=k2;break;case -2:var -a=k3;break;case -4:var -a=k5;break;case -5:var -a=k6;break;case -6:var -a=k7;break;case -7:var -a=k8;break;case -8:var a=k9;break;case -9:var +2:var a=k_;break;case -10:var -a=k$;break;case -11:var +4:var a=la;break;case +5:var +a=lb;break;case +6:var +a=lc;break;case +7:var +a=ld;break;case +8:var +a=le;break;case +9:var +a=lf;break;case +10:var +a=lg;break;case +11:var +a=lh;break;case 0:case 13:var -a=k1;break;case +a=k8;break;case 3:case 14:var -a=k4;break;default:var -a=lb}return dj(b,yD(a,c))}function -bb(c,i,b){function +a=k$;break;default:var +a=li}return dg(b,d1(a,c))}function +ly(b,c){switch(b){case +1:var +a=lk;break;case +2:var +a=ll;break;case +4:var +a=ln;break;case +5:var +a=lo;break;case +6:var +a=lp;break;case +7:var +a=lq;break;case +8:var +a=lr;break;case +9:var +a=ls;break;case +10:var +a=lt;break;case +11:var +a=lu;break;case +0:case +13:var +a=lj;break;case +3:case +14:var +a=lm;break;default:var +a=lv}return dg(b,d1(a,c))}function +lz(b,c){switch(b){case +1:var +a=kW;break;case +2:var +a=kX;break;case +4:var +a=kZ;break;case +5:var +a=k0;break;case +6:var +a=k1;break;case +7:var +a=k2;break;case +8:var +a=k3;break;case +9:var +a=k4;break;case +10:var +a=k5;break;case +11:var +a=k6;break;case +0:case +13:var +a=kV;break;case +3:case +14:var +a=kY;break;default:var +a=k7}return dg(b,yp(a,c))}function +bc(c,i,b){function j(d){switch(c[1]){case 0:var a=45;break;case 1:var a=43;break;default:var -a=32}return yA(b,i,a)}function +a=32}return ym(b,i,a)}function r(c){var -a=yr(b);return 3===a?b<0.?lH:lI:4<=a?lJ:c}switch(c[2]){case +a=yd(b);return 3===a?b<0.?lB:lC:4<=a?lD:c}switch(c[2]){case 5:var -e=i$(f7(c,i),b),d=0,w=t(e);for(;;){if(d===w)var +e=i5(f2(c,i),b),d=0,w=u(e);for(;;){if(d===w)var q=0;else{var -k=o(e,d)+hF|0,l=0;if(23>>0){if(55===k)l=1}else +k=p(e,d)+hz|0,l=0;if(23>>0){if(55===k)l=1}else if(21<(k-1|0)>>>0)l=1;if(!l){var d=d+1|0;continue}var q=1}var -x=q?e:bt(e,lG);return r(x)}case +x=q?e:bu(e,lA);return r(x)}case 6:return j(0);case 7:var -h=bp(j(0)),f=aG(h);if(0===f)var -p=h;else{var +h=bq(j(0)),f=aH(h);if(0===f)var +o=h;else{var m=S(f),n=f-1|0,s=0;if(!(n<0)){var a=s;for(;;){var -g=c2(h,a),u=25<(g+h$|0)>>>0?g:g+fk|0;R(m,a,u);var +g=cZ(h,a),t=25<(g+h5|0)>>>0?g:g+ff|0;R(m,a,t);var v=a+1|0;if(n!==a){var a=v;continue}break}}var -p=m}return an(p);case -8:return r(j(0));default:return i$(f7(c,i),b)}}function -cI(e,B,A,z){var -c=B,a=A,d=z;for(;;)if(typeof +o=m}return ao(o);case +8:return r(j(0));default:return i5(f2(c,i),b)}}function +cF(e,C,A,z){var +c=C,a=A,d=z;for(;;)if(typeof d==="number")return b(c,a);else switch(d[0]){case 0:var @@ -2174,48 +2174,48 @@ E=d[1];return function(b){return y(c,[5,a,b],E)};case 1:var F=d[1];return function(b){var e=0;if(40<=b)if(92===b)var -d=jC;else -if(cM<=b)e=1;else +d=jw;else +if(cJ<=b)e=1;else e=2;else if(32<=b)if(39<=b)var -d=jD;else +d=jx;else e=2;else if(14<=b)e=1;else switch(b){case 8:var -d=jE;break;case +d=jy;break;case 9:var -d=jF;break;case +d=jz;break;case 10:var -d=jG;break;case +d=jA;break;case 13:var -d=jH;break;default:e=1}switch(e){case +d=jB;break;default:e=1}switch(e){case 1:var -f=S(4);R(f,0,92);R(f,1,48+(b/aO|0)|0);R(f,2,48+((b/10|0)%10|0)|0);R(f,3,48+(b%10|0)|0);var -d=an(f);break;case +f=S(4);R(f,0,92);R(f,1,48+(b/aP|0)|0);R(f,2,48+((b/10|0)%10|0)|0);R(f,3,48+(b%10|0)|0);var +d=ao(f);break;case 2:var g=S(1);R(g,0,b);var -d=an(g);break}var -h=t(d),i=aY(h+2|0,39);bL(d,0,i,1,h);return y(c,[4,a,an(i)],F)};case +d=ao(g);break}var +h=u(d),i=aZ(h+2|0,39);bL(d,0,i,1,h);return y(c,[4,a,ao(i)],F)};case 2:var -G=d[2],H=d[1];return el(c,a,G,H,function(a){return a});case -3:return el(c,a,d[2],d[1],kN);case -4:return dk(c,a,d[4],d[2],d[3],lC,d[1]);case -5:return dk(c,a,d[4],d[2],d[3],lD,d[1]);case -6:return dk(c,a,d[4],d[2],d[3],lE,d[1]);case -7:return dk(c,a,d[4],d[2],d[3],lF,d[1]);case +G=d[2],H=d[1];return ej(c,a,G,H,function(a){return a});case +3:return ej(c,a,d[2],d[1],kH);case +4:return dh(c,a,d[4],d[2],d[3],lw,d[1]);case +5:return dh(c,a,d[4],d[2],d[3],lx,d[1]);case +6:return dh(c,a,d[4],d[2],d[3],ly,d[1]);case +7:return dh(c,a,d[4],d[2],d[3],lz,d[1]);case 8:var -i=d[4],j=d[3],k=d[2],h=d[1];if(typeof +i=d[4],j=d[3],k=d[2],g=d[1];if(typeof k==="number"){if(typeof -j==="number")return j?function(d,b){return y(c,[4,a,bb(h,d,b)],i)}:function(b){return y(c,[4,a,bb(h,ej(h),b)],i)};var -ab=j[1];return function(b){return y(c,[4,a,bb(h,ab,b)],i)}}else{if(0===k[0]){var +j==="number")return j?function(d,b){return y(c,[4,a,bc(g,d,b)],i)}:function(b){return y(c,[4,a,bc(g,eh(g),b)],i)};var +ab=j[1];return function(b){return y(c,[4,a,bc(g,ab,b)],i)}}else{if(0===k[0]){var n=k[2],o=k[1];if(typeof -j==="number")return j?function(d,b){return y(c,[4,a,au(o,n,bb(h,d,b))],i)}:function(b){return y(c,[4,a,au(o,n,bb(h,ej(h),b))],i)};var -ac=j[1];return function(b){return y(c,[4,a,au(o,n,bb(h,ac,b))],i)}}var +j==="number")return j?function(d,b){return y(c,[4,a,av(o,n,bc(g,d,b))],i)}:function(b){return y(c,[4,a,av(o,n,bc(g,eh(g),b))],i)};var +ac=j[1];return function(b){return y(c,[4,a,av(o,n,bc(g,ac,b))],i)}}var p=k[1];if(typeof -j==="number")return j?function(e,d,b){return y(c,[4,a,au(p,e,bb(h,d,b))],i)}:function(d,b){return y(c,[4,a,au(p,d,bb(h,ej(h),b))],i)};var -ae=j[1];return function(d,b){return y(c,[4,a,au(p,d,bb(h,ae,b))],i)}}case -9:return el(c,a,d[2],d[1],jt);case +j==="number")return j?function(e,d,b){return y(c,[4,a,av(p,e,bc(g,d,b))],i)}:function(d,b){return y(c,[4,a,av(p,d,bc(g,eh(g),b))],i)};var +ae=j[1];return function(d,b){return y(c,[4,a,av(p,d,bc(g,ae,b))],i)}}case +9:return ej(c,a,d[2],d[1],jn);case 10:var a=[7,a],d=d[1];continue;case 11:var @@ -2223,14 +2223,14 @@ a=[2,a,d[1]],d=d[2];continue;case 12:var a=[3,a,d[1]],d=d[2];continue;case 13:var -J=d[3],K=d[2],q=f4(16);ek(q,K);var -x=f6(q);return function(b){return y(c,[4,a,x],J)};case +I=d[3],K=d[2],q=fZ(16);ei(q,K);var +x=f1(q);return function(b){return y(c,[4,a,x],I)};case 14:var -M=d[3],N=d[2];return function(d){var -e=d[1],b=D(e,L(Z(N)));if(typeof -b[2]==="number")return y(c,a,I(b[1],M));throw ah};case +L=d[3],N=d[2];return function(d){var +e=d[1],b=D(e,M(_(N)));if(typeof +b[2]==="number")return y(c,a,J(b[1],L));throw ah};case 15:var -O=d[1];return function(d,b){return y(c,[6,a,function(a){return g(d,a,b)}],O)};case +O=d[1];return function(d,b){return y(c,[6,a,function(a){return h(d,a,b)}],O)};case 16:var P=d[1];return function(b){return y(c,[6,a,b],P)};case 17:var @@ -2239,86 +2239,86 @@ a=[0,a,d[1]],d=d[2];continue;case m=d[1];if(0===m[0]){var Q=d[2],T=m[1][1],U=0,c=function(b,c,d){return function(a){return y(c,[1,b,[0,a]],d)}}(a,c,Q),a=U,d=T;continue}var V=d[2],W=m[1][1],X=0,c=function(b,c,d){return function(a){return y(c,[1,b,[1,a]],d)}}(a,c,V),a=X,d=W;continue;case -19:throw[0,u,lL];case +19:throw[0,v,lF];case 20:var -Y=d[3],_=[8,a,lM];return function(a){return y(c,_,Y)};case +Y=d[3],Z=[8,a,lG];return function(a){return y(c,Z,Y)};case 21:var -$=d[2];return function(b){return y(c,[4,a,d5(lN,b)],$)};case +$=d[2];return function(b){return y(c,[4,a,d1(lH,b)],$)};case 22:var aa=d[1];return function(b){return y(c,[5,a,b],aa)};case 23:var f=d[2],l=d[1];if(typeof l==="number")switch(l){case -0:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -1:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -2:throw[0,u,lO];default:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f])}else +0:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +1:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +2:throw[0,v,lI];default:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f])}else switch(l[0]){case -0:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -1:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -2:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -3:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -4:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -5:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -6:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -7:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case -8:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);case +0:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +1:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +2:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +3:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +4:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +5:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +6:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +7:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case +8:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);case 9:var -w=l[2];return e<50?eY(e+1|0,c,a,w,f):ad(eY,[0,c,a,w,f]);case -10:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f]);default:return e<50?C(e+1|0,c,a,f):ad(C,[0,c,a,f])}default:var -r=d[3],s=d[1],v=b(d[2],0);return e<50?eX(e+1|0,c,a,r,s,v):ad(eX,[0,c,a,r,s,v])}}function -eY(e,d,c,a,b){if(typeof -a==="number")return e<50?C(e+1|0,d,c,b):ad(C,[0,d,c,b]);else +w=l[2];return e<50?eT(e+1|0,c,a,w,f):ad(eT,[0,c,a,w,f]);case +10:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f]);default:return e<50?B(e+1|0,c,a,f):ad(B,[0,c,a,f])}default:var +r=d[3],s=d[1],t=b(d[2],0);return e<50?eS(e+1|0,c,a,r,s,t):ad(eS,[0,c,a,r,s,t])}}function +eT(e,d,c,a,b){if(typeof +a==="number")return e<50?B(e+1|0,d,c,b):ad(B,[0,d,c,b]);else switch(a[0]){case 0:var -f=a[1];return function(a){return aA(d,c,f,b)};case +f=a[1];return function(a){return aB(d,c,f,b)};case 1:var -g=a[1];return function(a){return aA(d,c,g,b)};case +g=a[1];return function(a){return aB(d,c,g,b)};case 2:var -h=a[1];return function(a){return aA(d,c,h,b)};case +h=a[1];return function(a){return aB(d,c,h,b)};case 3:var -i=a[1];return function(a){return aA(d,c,i,b)};case +i=a[1];return function(a){return aB(d,c,i,b)};case 4:var -j=a[1];return function(a){return aA(d,c,j,b)};case +j=a[1];return function(a){return aB(d,c,j,b)};case 5:var -k=a[1];return function(a){return aA(d,c,k,b)};case +k=a[1];return function(a){return aB(d,c,k,b)};case 6:var -l=a[1];return function(a){return aA(d,c,l,b)};case +l=a[1];return function(a){return aB(d,c,l,b)};case 7:var -m=a[1];return function(a){return aA(d,c,m,b)};case +m=a[1];return function(a){return aB(d,c,m,b)};case 8:var -n=a[2];return function(a){return aA(d,c,n,b)};case +n=a[2];return function(a){return aB(d,c,n,b)};case 9:var -o=a[3],p=a[2],q=af(Z(a[1]),p);return function(a){return aA(d,c,ao(q,o),b)};case +o=a[3],p=a[2],q=ae(_(a[1]),p);return function(a){return aB(d,c,ap(q,o),b)};case 10:var -r=a[1];return function(e,a){return aA(d,c,r,b)};case +r=a[1];return function(e,a){return aB(d,c,r,b)};case 11:var -s=a[1];return function(a){return aA(d,c,s,b)};case +s=a[1];return function(a){return aB(d,c,s,b)};case 12:var -t=a[1];return function(a){return aA(d,c,t,b)};case -13:throw[0,u,lP];default:throw[0,u,lQ]}}function -C(d,b,e,a){var -c=[8,e,lR];return d<50?cI(d+1|0,b,c,a):ad(cI,[0,b,c,a])}function -eX(h,c,f,a,e,d){if(e){var -i=e[1];return function(e){return lK(c,f,a,i,b(d,e))}}var -g=[4,f,d];return h<50?cI(h+1|0,c,g,a):ad(cI,[0,c,g,a])}function -y(a,b,c){return c8(cI(0,a,b,c))}function -aA(a,b,c,d){return c8(eY(0,a,b,c,d))}function -lK(a,b,c,d,e){return c8(eX(0,a,b,c,d,e))}function -el(f,e,d,a,c){if(typeof +t=a[1];return function(a){return aB(d,c,t,b)};case +13:throw[0,v,lJ];default:throw[0,v,lK]}}function +B(d,b,e,a){var +c=[8,e,lL];return d<50?cF(d+1|0,b,c,a):ad(cF,[0,b,c,a])}function +eS(h,c,f,a,e,d){if(e){var +i=e[1];return function(e){return lE(c,f,a,i,b(d,e))}}var +g=[4,f,d];return h<50?cF(h+1|0,c,g,a):ad(cF,[0,c,g,a])}function +y(a,b,c){return c5(cF(0,a,b,c))}function +aB(a,b,c,d){return c5(eT(0,a,b,c,d))}function +lE(a,b,c,d,e){return c5(eS(0,a,b,c,d,e))}function +ej(f,e,d,a,c){if(typeof a==="number")return function(a){return y(f,[4,e,b(c,a)],d)};else{if(0===a[0]){var -g=a[2],h=a[1];return function(a){return y(f,[4,e,au(h,g,b(c,a))],d)}}var -i=a[1];return function(g,a){return y(f,[4,e,au(i,g,b(c,a))],d)}}}function -dk(f,e,d,h,c,b,a){if(typeof -h==="number"){if(typeof -c==="number")return c?function(h,c){return y(f,[4,e,b2(h,g(b,a,c))],d)}:function(c){return y(f,[4,e,g(b,a,c)],d)};var -l=c[1];return function(c){return y(f,[4,e,b2(l,g(b,a,c))],d)}}else{if(0===h[0]){var -i=h[2],j=h[1];if(typeof -c==="number")return c?function(h,c){return y(f,[4,e,au(j,i,b2(h,g(b,a,c)))],d)}:function(c){return y(f,[4,e,au(j,i,g(b,a,c))],d)};var -m=c[1];return function(c){return y(f,[4,e,au(j,i,b2(m,g(b,a,c)))],d)}}var -k=h[1];if(typeof -c==="number")return c?function(i,h,c){return y(f,[4,e,au(k,i,b2(h,g(b,a,c)))],d)}:function(h,c){return y(f,[4,e,au(k,h,g(b,a,c))],d)};var -n=c[1];return function(h,c){return y(f,[4,e,au(k,h,b2(n,g(b,a,c)))],d)}}}function -bu(c,h){var +g=a[2],h=a[1];return function(a){return y(f,[4,e,av(h,g,b(c,a))],d)}}var +i=a[1];return function(g,a){return y(f,[4,e,av(i,g,b(c,a))],d)}}}function +dh(f,e,d,g,c,b,a){if(typeof +g==="number"){if(typeof +c==="number")return c?function(g,c){return y(f,[4,e,b2(g,h(b,a,c))],d)}:function(c){return y(f,[4,e,h(b,a,c)],d)};var +l=c[1];return function(c){return y(f,[4,e,b2(l,h(b,a,c))],d)}}else{if(0===g[0]){var +i=g[2],j=g[1];if(typeof +c==="number")return c?function(g,c){return y(f,[4,e,av(j,i,b2(g,h(b,a,c)))],d)}:function(c){return y(f,[4,e,av(j,i,h(b,a,c))],d)};var +m=c[1];return function(c){return y(f,[4,e,av(j,i,b2(m,h(b,a,c)))],d)}}var +k=g[1];if(typeof +c==="number")return c?function(i,g,c){return y(f,[4,e,av(k,i,b2(g,h(b,a,c)))],d)}:function(g,c){return y(f,[4,e,av(k,g,h(b,a,c))],d)};var +n=c[1];return function(g,c){return y(f,[4,e,av(k,g,b2(n,h(b,a,c)))],d)}}}function +bv(c,h){var a=h;for(;;)if(typeof a==="number")return 0;else switch(a[0]){case @@ -2326,121 +2326,121 @@ switch(a[0]){case e=a[2],i=a[1];if(typeof e==="number")switch(e){case 0:var -d=j9;break;case +d=j3;break;case 1:var -d=j_;break;case +d=j4;break;case 2:var -d=j$;break;case +d=j5;break;case 3:var -d=ka;break;case +d=j6;break;case 4:var -d=kb;break;case +d=j7;break;case 5:var -d=kc;break;default:var -d=kd}else +d=j8;break;default:var +d=j9}else switch(e[0]){case 0:var d=e[1];break;case 1:var d=e[1];break;default:var -d=bt(ke,fX(1,e[1]))}bu(c,i);return cs(c,d);case +d=bu(j_,fS(1,e[1]))}bv(c,i);return cq(c,d);case 1:var f=a[2],g=a[1];if(0===f[0]){var -j=f[1];bu(c,g);cs(c,lS);var +j=f[1];bv(c,g);cq(c,lM);var a=j;continue}var -k=f[1];bu(c,g);cs(c,lT);var +k=f[1];bv(c,g);cq(c,lN);var a=k;continue;case 6:var -n=a[2];bu(c,a[1]);return cs(c,b(n,0));case +n=a[2];bv(c,a[1]);return cq(c,b(n,0));case 7:var a=a[1];continue;case 8:var -o=a[2];bu(c,a[1]);return O(o);case +o=a[2];bv(c,a[1]);return Z(o);case 2:case 4:var -l=a[2];bu(c,a[1]);return cs(c,l);default:var -m=a[2];bu(c,a[1]);return f3(c,m)}}function -f9(b){var +l=a[2];bv(c,a[1]);return cq(c,l);default:var +m=a[2];bv(c,a[1]);return fY(c,m)}}function +f4(b){var a=b[1];return y(function(b){var -a=eh(64);bu(a,b);return f2(a)},0,a)}var -f_=[0,0];function -em(a){f_[1]=[0,a,f_[1]];return 0}try{var -yi=eb(yh),ga=yi}catch(a){a=d(a);if(a!==ae)throw a;try{var -yg=eb(yf),f$=yg}catch(a){a=d(a);if(a!==ae)throw a;var -f$=lV}var -ga=f$}var -lW=jO(ga,82),dl=[hT,function(z){var -n=za(0),c=[0,br(55,0),0],i=0===n.length-1?[0,0]:n,k=i.length-1,b=0;for(;;){ab(c[1],b)[1+b]=b;var +a=ef(64);bv(a,b);return fX(a)},0,a)}var +f5=[0,0];function +ek(a){f5[1]=[0,a,f5[1]];return 0}try{var +x6=d_(x5),f7=x6}catch(a){a=e(a);if(a!==am)throw a;try{var +x4=d_(x3),f6=x4}catch(a){a=e(a);if(a!==am)throw a;var +f6=lP}var +f7=f6}var +lQ=jI(f7,82),di=[hN,function(z){var +n=yY(0),c=[0,bs(55,0),0],i=0===n.length-1?[0,0]:n,j=i.length-1,b=0;for(;;){ac(c[1],b)[1+b]=b;var y=b+1|0;if(54!==b){var b=y;continue}var -g=[0,lU],l=54+da(55,k)|0,u=0;if(!(l<0)){var -d=u;for(;;){var -e=d%55|0,m=yZ(d,k),v=ab(i,m)[1+m],h=bt(g[1],a(j+v));g[1]=yU(h,0,t(h));var -f=g[1],p=o(f,3)<<24,q=o(f,2)<<16,r=o(f,1)<<8,s=((o(f,0)+r|0)+q|0)+p|0,w=(ab(c[1],e)[1+e]^s)&e9;ab(c[1],e)[1+e]=w;var +g=[0,lO],l=54+c9(55,j)|0,t=0;if(!(l<0)){var +d=t;for(;;){var +e=d%55|0,m=yL(d,j),v=ac(i,m)[1+m],h=bu(g[1],a(k+v));g[1]=yG(h,0,u(h));var +f=g[1],o=p(f,3)<<24,q=p(f,2)<<16,r=p(f,1)<<8,s=((p(f,0)+r|0)+q|0)+o|0,w=(ac(c[1],e)[1+e]^s)&e4;ac(c[1],e)[1+e]=w;var x=d+1|0;if(l!==d){var d=x;continue}break}}c[2]=0;return c}}];function -lX(h,k){var -l=h?h[1]:lW,b=16;for(;;){if(!(k<=b)&&!(fS<(b*2|0))){var +lR(h,k){var +l=h?h[1]:lQ,b=16;for(;;){if(!(k<=b)&&!(fN<(b*2|0))){var b=b*2|0;continue}if(l){var -i=jh(dl),a=dJ===i?dl[1]:hT===i?j4(dl):dl;a[2]=(a[2]+1|0)%55|0;var -c=a[2],d=ab(a[1],c)[1+c],e=(a[2]+24|0)%55|0,f=(ab(a[1],e)[1+e]+(d^(d>>>25|0)&31)|0)&e9,g=a[2];ab(a[1],g)[1+g]=f;var +i=jb(di),a=dF===i?di[1]:hN===i?jY(di):di;a[2]=(a[2]+1|0)%55|0;var +c=a[2],d=ac(a[1],c)[1+c],e=(a[2]+24|0)%55|0,f=(ac(a[1],e)[1+e]+(d^(d>>>25|0)&31)|0)&e4,g=a[2];ac(a[1],g)[1+g]=f;var j=f}else var -j=0;return[0,0,br(b,0),j,b]}}function -aZ(a){return yu(10,aO,0,a)}var -gd=[B,lY,ac(0)],gb=0,gc=-1;function -dm(a,b){a[13]=a[13]+b[3]|0;return f1(b,a[28])}var -ge=1000000010;function -en(b,a){return x(b[17],a,0,t(a))}function -eo(a){return b(a[19],0)}function -gf(a,c,b){a[9]=a[9]-c|0;en(a,b);a[11]=0;return 0}function -dn(c,a){var -b=V(a,lZ);return b?gf(c,t(a),a):b}function +j=0;return[0,0,bs(b,0),j,b]}}function +a0(a){return yg(10,aP,0,a)}var +f_=[C,lS,ag(0)],f8=0,f9=-1;function +dj(a,b){a[13]=a[13]+b[3]|0;return fW(b,a[28])}var +f$=1000000010;function +el(b,a){return F(b[17],a,0,u(a))}function +em(a){return b(a[19],0)}function +ga(a,c,b){a[9]=a[9]-c|0;el(a,b);a[11]=0;return 0}function +dk(c,a){var +b=V(a,lT);return b?ga(c,u(a),a):b}function b3(a,c,f){var -g=c[3],h=c[2];dn(a,c[1]);eo(a);a[11]=1;var -d=(a[6]-f|0)+h|0,e=a[8],i=yR(e,d)?e:d;a[10]=i;a[9]=a[6]-a[10]|0;b(a[21],a[10]);return dn(a,g)}function -gg(b,a){return b3(b,l0,a)}function -cu(a,c){var -d=c[2],e=c[3];dn(a,c[1]);a[9]=a[9]-d|0;b(a[20],d);return dn(a,e)}function -gh(a){for(;;){var +g=c[3],h=c[2];dk(a,c[1]);em(a);a[11]=1;var +d=(a[6]-f|0)+h|0,e=a[8],i=yD(e,d)?e:d;a[10]=i;a[9]=a[6]-a[10]|0;b(a[21],a[10]);return dk(a,g)}function +gb(b,a){return b3(b,lU,a)}function +cs(a,c){var +d=c[2],e=c[3];dk(a,c[1]);a[9]=a[9]-d|0;b(a[20],d);return dk(a,e)}function +gc(a){for(;;){var r=a[28][2],O=r?[0,r[1]]:0;if(O){var p=O[1],q=p[1],c=p[2],ac=0<=q?1:0,aa=p[3],ab=a[13]-a[12]|0,P=ac||(a[9]<=ab?1:0);if(P){var g=a[28],m=g[2];if(m){if(m[2]){var Q=m[2];g[1]=g[1]-1|0;g[2]=Q}else -eg(g);var -l=0<=q?q:ge;if(typeof +ee(g);var +l=0<=q?q:f$;if(typeof c==="number")switch(c){case 0:var y=b0(a[3]);if(y){var z=y[1][1],A=function(b,a){if(a){var -c=a[1],d=a[2];return fE(b,c)?[0,b,a]:[0,c,A(b,d)]}return[0,b,0]};z[1]=A(a[6]-a[9]|0,z[1])}break;case +c=a[1],d=a[2];return fz(b,c)?[0,b,a]:[0,c,A(b,d)]}return[0,b,0]};z[1]=A(a[6]-a[9]|0,z[1])}break;case 1:bZ(a[2]);break;case 2:bZ(a[3]);break;case 3:var -B=b0(a[2]);if(B)gg(a,B[1][2]);else -eo(a);break;case +B=b0(a[2]);if(B)gb(a,B[1][2]);else +em(a);break;case 4:if(a[10]!==(a[6]-a[9]|0)){var e=a[28],h=e[2];if(h){var s=h[1];if(h[2]){var R=h[2];e[1]=e[1]-1|0;e[2]=R;var -i=[0,s]}else{eg(e);var +i=[0,s]}else{ee(e);var i=[0,s]}}else var i=0;if(i){var x=i[1],T=x[1];a[12]=a[12]-x[3]|0;a[9]=a[9]+T|0}}break;default:var -C=bZ(a[5]);if(C)en(a,b(a[25],C[1]))}else +C=bZ(a[5]);if(C)el(a,b(a[25],C[1]))}else switch(c[0]){case -0:gf(a,l,c[1]);break;case +0:ga(a,l,c[1]);break;case 1:var d=c[2],j=c[1],D=d[1],U=d[2],E=b0(a[2]);if(E){var F=E[1],f=F[2];switch(F[1]){case -0:cu(a,j);break;case +0:cs(a,j);break;case 1:b3(a,d,f);break;case 2:b3(a,d,f);break;case -3:if(a[9]<(l+t(D)|0))b3(a,d,f);else -cu(a,j);break;case -4:if(a[11]||!(a[9]<(l+t(D)|0)||((a[6]-f|0)+U|0)>>0))gg(a,w)}else -eo(a)}var +t=b0(a[2]);if(t){var +v=t[1],w=v[2],S=v[1];if(a[9]>>0))gb(a,w)}else +em(a)}var _=a[9]-Z|0,$=1===M?1:a[9]>>3|0,bX(bM(b,a>>>3|0)|1<<(a&7)))}function -ds(b){var -a=eu(0);cv(a,b);return a}function -dt(c){var -b=S(32),a=0;for(;;){aR(b,a,bX(bM(c,a)^b6));var +h=d[1],a=b(f4(nz),h);return[0,F(f4(mv),a,g,f)]}return 0});eb(nA);eb(nB);try{eb(x0)}catch(a){a=e(a);if(a[1]!==c8)throw a}try{eb(xZ)}catch(a){a=e(a);if(a[1]!==c8)throw a}lR(0,7);function +nC(b,a){return db(b,0,a)}function +nD(b,a){return db(b,a,u(b)-a|0)}var +bd=aZ(32,b6);function +es(a){return aZ(32,0)}function +ct(b,a){return aS(b,a>>>3|0,bX(bM(b,a>>>3|0)|1<<(a&7)))}function +dp(b){var +a=es(0);ct(a,b);return a}function +dq(c){var +b=S(32),a=0;for(;;){aS(b,a,bX(bM(c,a)^b6));var d=a+1|0;if(31!==a){var a=d;continue}return b}}function -ev(d,c){var +et(d,c){var b=S(32),a=0;for(;;){var -e=bM(c,a);aR(b,a,bX(bM(d,a)|e));var +e=bM(c,a);aS(b,a,bX(bM(d,a)|e));var f=a+1|0;if(31!==a){var a=f;continue}return b}}function -nK(c,b){try{var +nE(c,b){try{var a=0;for(;;){var -f=bM(b,a);if(0!==(bM(c,a)&f))throw fN;var +f=bM(b,a);if(0!==(bM(c,a)&f))throw fI;var g=a+1|0;if(31!==a){var a=g;continue}var -e=1;return e}}catch(a){a=d(a);if(a===fN)return 0;throw a}}function -gt(f,e){var +d=1;return d}}catch(a){a=e(a);if(a===fI)return 0;throw a}}function +go(f,e){var a=0;for(;;){var d=bM(e,a);if(0!==d){var c=0;for(;;){if(0!==(d&1<>>0){if(!(25<(b+cM|0)>>>0))d=1}else +c=es(0);go(function(a){ct(c,fL(a));var +b=a-224|0,d=0;if(30>>0){if(!(25<(b+cJ|0)>>>0))d=1}else if(23!==b)d=1;var -e=d?a+fk|0:a;return cv(c,e)},b);var +e=d?a+ff|0:a;return ct(c,e)},b);var d=c}else var d=b;var -h=f?dt(d):d;return de(h)}throw[0,u,nZ]}var -gx=S(b9),cH=0;for(;;){aR(gx,cH,fQ(bX(cH)));var -ya=cH+1|0;if(b6!==cH){var -cH=ya;continue}de(gx);var -dw=cp([0,fI]),gy=function(a){var -b=f2(a[1]);a[1][2]=0;var -c=t(b);if(0===c)return 0;if(1===c){var -d=a[2];a[2]=[0,[0,o(b,0)],d];return 0}a[2]=[0,[1,b],a[2]];return 0},n3=dt(ds(10)),eA=m,eB=i6,n9=function(b){var -f=t(b),D=[0,1];function +h=f?dq(d):d;return da(h)}throw[0,v,nT]}var +gs=S(b9),cE=0;for(;;){aS(gs,cE,fL(bX(cE)));var +xY=cE+1|0;if(b6!==cE){var +cE=xY;continue}da(gs);var +dt=de([0,fD]),gt=function(a){var +b=fX(a[1]);a[1][2]=0;var +c=u(b);if(0===c)return 0;if(1===c){var +d=a[2];a[2]=[0,[0,p(b,0)],d];return 0}a[2]=[0,[1,b],a[2]];return 0},nX=dq(dp(10)),ey=n,ez=i0,n3=function(b){var +f=u(b),C=[0,1];function G(g){var -d=eu(0),a=g;for(;;){if(f<=a)bs(n7);if(93===o(b,a)&&g>>0)if(9<=s)var -j=[0,[9,k+dI|0],g+1|0];else +j=[0,[9,k+dE|0],g+1|0];else l=1;else if(s)l=2;else{var -I=D[1];D[1]++;var -v=E(g+1|0),p=v[2],A=0,J=v[1];if((p+1|0)>>0)){if(r){var +r=p(b,d)-42|0;if(!(1>>0)){if(r){var c=[6,c],d=d+1|0;continue}var c=[5,c],d=d+1|0;continue}if(21===r){var c=[7,c],d=d+1|0;continue}}var B=0;if(typeof -c!=="number"&&0===c[0]){f3(h[1],c[1]);B=1}if(!B){gy(h);h[2]=[0,c,h[2]]}var -a=d;continue a}}}gy(h);return[0,[3,dc(h[2])],a]}}function -E(g){var -d=F(g),c=d[1],a=d[2];for(;;){if((a+2|0)<=f&&92===o(b,a)&&fn===o(b,a+1|0)){var -e=F(a+2|0),c=[4,c,e[1]],a=e[2];continue}return[0,c,a]}}var -H=E(0),Q=H[1],I=H[2]===f?Q:bs(n8),h=[0,br(32,0)],c=[0,0],m=[0,dw[1]],n=[0,0],j=[0,1],p=[0,0],s=0;function -a(f,e){if(h[1].length-1<=c[1]){var -a=[0,h[1].length-1];for(;;){if(a[1]<=c[1]){a[1]=a[1]*2|0;continue}var -b=br(a[1],0);f0(h[1],0,b,0,h[1].length-1);h[1]=b;break}}var -g=gw(f,e),d=c[1];ab(h[1],d)[1+d]=g;c[1]++;return 0}function +c!=="number"&&0===c[0]){fY(h[1],c[1]);B=1}if(!B){gt(h);h[2]=[0,c,h[2]]}var +a=d;continue a}}}gt(h);return[0,[3,ed(h[2])],a]}}function +D(g){var +d=E(g),c=d[1],a=d[2];for(;;){if((a+2|0)<=f&&92===p(b,a)&&fi===p(b,a+1|0)){var +e=E(a+2|0),c=[4,c,e[1]],a=e[2];continue}return[0,c,a]}}var +H=D(0),P=H[1],I=H[2]===f?P:bt(n2),g=[0,bs(32,0)],c=[0,0],m=[0,dt[1]],n=[0,0],j=[0,1],o=[0,0],s=0;function +a(f,e){if(g[1].length-1<=c[1]){var +a=[0,g[1].length-1];for(;;){if(a[1]<=c[1]){a[1]=a[1]*2|0;continue}var +b=bs(a[1],0);fV(g[1],0,b,0,g[1].length-1);g[1]=b;break}}var +h=gr(f,e),d=c[1];ac(g[1],d)[1+d]=h;c[1]++;return 0}function k(d){var -b=c[1];a(du,0);return b}function +b=c[1];a(dr,0);return b}function l(a,c,b){var -d=gw(c,ex(b,a));ab(h[1],a)[1+a]=d;return 0}function +d=gr(c,ev(b,a));ac(g[1],a)[1+a]=d;return 0}function i(b){try{var -a=g(dw[28],b,m[1]);return a}catch(a){a=d(a);if(a===ae){var -c=n[1];m[1]=x(dw[4],b,c,m[1]);n[1]++;return c}throw a}}function -w(b){if(ey(b)){var -a=p[1];if(64<=a)bs(n0);p[1]++;return a}return-1}function -q(b,a){return nK(b,a)}function -e(b){if(typeof +a=h(dt[28],b,m[1]);return a}catch(a){a=e(a);if(a===am){var +c=n[1];m[1]=F(dt[4],b,c,m[1]);n[1]++;return c}throw a}}function +w(b){if(ew(b)){var +a=o[1];if(64<=a)bt(nU);o[1]++;return a}return-1}function +q(b,a){return nE(b,a)}function +d(b){if(typeof b==="number")switch(b){case -0:return a(nN,0);case -1:return a(nO,0);default:return a(nP,0)}else +0:return a(nH,0);case +1:return a(nI,0);default:return a(nJ,0)}else switch(b[0]){case -0:return a(du,b[1]);case +0:return a(dr,b[1]);case 1:var -f=b[1],n=t(f);if(0===n)return 0;if(1===n)return a(du,o(f,0));try{var -p=fZ(f,0);e([1,nI(f,p)]);a(du,0);var -x=e([1,nJ(f,p+1|0)]);return x}catch(b){b=d(b);if(b===ae)return a(nL,i(f));throw b}case +f=b[1],n=u(f);if(0===n)return 0;if(1===n)return a(dr,p(f,0));try{var +o=fU(f,0);d([1,nC(f,o)]);a(dr,0);var +x=d([1,nD(f,o+1|0)]);return x}catch(b){b=e(b);if(b===am)return a(nF,i(f));throw b}case 2:var -q=b[1],y=b[2]?dt(q):q;return a(nM,i(de(y)));case +q=b[1],y=b[2]?dq(q):q;return a(nG,i(da(y)));case 3:return K(b[1]);case 4:var -z=b[2],A=b[1],B=k(0);e(A);var -C=k(0),D=c[1];e(z);var -E=c[1];l(B,dv,D);return l(C,ew,E);case +z=b[2],A=b[1],B=k(0);d(A);var +C=k(0),D=c[1];d(z);var +E=c[1];l(B,ds,D);return l(C,eu,E);case 5:var -r=b[1],g=w(r),s=k(0);if(0<=g)a(gu,g);e(r);if(0<=g)a(gv,g);a(ew,ex(s,c[1]));return l(s,dv,c[1]);case +r=b[1],g=w(r),s=k(0);if(0<=g)a(gp,g);d(r);if(0<=g)a(gq,g);a(eu,ev(s,c[1]));return l(s,ds,c[1]);case 6:var -u=b[1],h=w(u),F=c[1];e(u);if(0<=h)a(gv,h);var -G=k(0);if(0<=h)a(gu,h);a(ew,ex(F,c[1]));return l(G,dv,c[1]);case +t=b[1],h=w(t),F=c[1];d(t);if(0<=h)a(gq,h);var +G=k(0);if(0<=h)a(gp,h);a(eu,ev(F,c[1]));return l(G,ds,c[1]);case 7:var -H=b[1],I=k(0);e(H);return l(I,dv,c[1]);case +H=b[1],I=k(0);d(H);return l(I,ds,c[1]);case 8:var -m=b[1],J=b[2];a(nQ,m);e(J);a(nR,m);j[1]=da(j[1],m+1|0);return 0;default:var -v=b[1];a(nS,v);j[1]=da(j[1],v+1|0);return 0}}function +m=b[1],J=b[2];a(nK,m);d(J);a(nL,m);j[1]=c9(j[1],m+1|0);return 0;default:var +v=b[1];a(nM,v);j[1]=c9(j[1],v+1|0);return 0}}function K(o){var b=o;for(;;){if(b){var c=b[1];if(typeof c!=="number")switch(c[0]){case 5:var -d=c[1],l=0;if(typeof -d==="number")l=1;else -switch(d[0]){case +e=c[1],l=0;if(typeof +e==="number")l=1;else +switch(e[0]){case 0:case 2:var -h=b[2],r=cw(h);if(q(bv(d),r)){a(nV,i(ez(s,d)));var +h=b[2],r=cu(h);if(q(bw(e),r)){a(nP,i(ex(s,e)));var b=h;continue}break;default:l=1}break;case 6:var f=c[1],m=0;if(typeof @@ -2920,7 +2920,7 @@ f==="number")m=1;else switch(f[0]){case 0:case 2:var -j=b[2],t=cw(j);if(q(bv(f),t)){a(nW,i(ez(s,f)));var +j=b[2],t=cu(j);if(q(bw(f),t)){a(nQ,i(ex(s,f)));var b=j;continue}break;default:m=1}break;case 7:var g=c[1],n=0;if(typeof @@ -2928,154 +2928,154 @@ g==="number")n=1;else switch(g[0]){case 0:case 2:var -k=b[2],u=cw(k);if(q(bv(g),u)){a(nU,i(ez(s,g)));var +k=b[2],u=cu(k);if(q(bw(g),u)){a(nO,i(ex(s,g)));var b=k;continue}break;default:n=1}break}var -p=b[2];e(c);var -b=p;continue}return 0}}e(I);a(nT,0);var -y=bv(I);if(i4(y,bc))var -z=-1;else{var -v=aY(b9,0);gt(function(a){return aR(v,a,1)},y);var -z=i(de(v))}var -A=br(n[1],n1),L=m[1];function -M(b,a){ab(A,a)[1+a]=b;return 0}g(dw[12],M,L);var -r=c[1],B=h[1],J=0,N=p[1],P=j[1];if(0<=r&&!((B.length-1-r|0)<0)){var -C=ym(B,0,r);J=1}if(!J)var -C=O(jP);return[0,C,A,n2,P,N,z]},dx=function(b,a){return Math.abs(b-a)<0.001?1:0},eC=function(b,a){return dx(b,a)?0:b>>0))switch(b){case +e=k(i),f=e[2],g=e[1],d=0;if(b8<=b){if(bF===b)d=1}else +if(dP<=b)d=1;return d?l(g,h(a[29],f,b)):l(h(c[42],g,b),f)}return[0,c,a,m,u,o,w,x,y,n,i,g,B,C,D,E,G,H,I,z,A,J,L,M,du,eA,a0,R,S,T,U,V,O,N,Q,P,t,d,j,[0,e,ac,ad,q,af,ae,a0,p,W,X,Y,Z,_,$,aa,ab,ah,ai,ag,aj,ak,al,am],s,ao,ap,an,aq,function(i,b){var +e=k(i),f=e[2],g=e[1],d=0;if(b8<=b){if(bF===b)d=1}else +if(dP<=b)d=1;return d?l(g,h(a[30],f,b)):l(h(c[43],g,b),f)}]},gQ=function(a){return gP(a2,a)}(oH),qn=gQ[1],qo=gQ[2];(function(a){return gO(qn,a)}(qo));var +qp=function(a){return gP(a2,a)}(gB)[1];(function(a){return gO(qp,a)}(gB));n3(qq);var +qs=[C,qr,ag(0)];zb(0);eo(qt,qs);var +as=aA(0),cC=aA(1),qu=aA(-1),gR=function(a){return bW(0,a,0,u(a))},qv=function(b,a){return bW(b,a,0,u(a))},cD=function(a,b){if(a!==as&&b!==cC){var +c=y$(a,b);if(c===cC)return[0,a,b];var +d=jh(b,c);return[0,jh(a,c),d]}return[0,a,cC]},gS=function(b,a){var +c=ck(a);return 0===c?[0,aA(ck(b)),as]:0>>0))switch(b){case 0:return 2;case -1:break;default:return 1}return 3}return a[1]===ar?0:4},qD=function(a){return[0,c_(a[1]),a[2]]},eO=function(b,a){if(b[2]!==ar&&a[2]!==ar)return cF(bO(b[1],a[1]),bO(b[2],a[2]));return[0,az(a$(cl(b[1]),cl(a[1]))),ar]},eP=function(a){switch(a){case +1:break;default:return 1}return 3}return a[1]===as?0:4},qx=function(a){return[0,c7(a[1]),a[2]]},eM=function(b,a){if(b[2]!==as&&a[2]!==as)return cD(bO(b[1],a[1]),bO(b[2],a[2]));return[0,aA(ba(ck(b[1]),ck(a[1]))),as]},eN=function(a){switch(a){case 0:return 2;case 1:return 8;case -2:return 10;default:return 16}},eQ=function(f,e,d,c){var -a=e;for(;;){if(d<=a)return 0;if(b(c,o(f,a)))return[0,a];var -a=a+1|0;continue}},qF=function(a){if(V(a,qG)){if(V(a,qH)){if(!V(a,qI))return g0;if(V(a,qJ)){if(V(a,qK))try{var -l=fZ(a,47),$=bW(0,a,l+1|0,(t(a)-l|0)-1|0),aa=gX(bW(0,a,0,l),$);return aa}catch(l){l=d(l);if(l===ae){var -j=t(a),A=0;if(j<1)var -v=[0,0,A];else{var -Q=o(a,0)+iJ|0,T=0;if(!(2>>0)){var -U=0;switch(Q){case +2:return 10;default:return 16}},eO=function(f,e,d,c){var +a=e;for(;;){if(d<=a)return 0;if(b(c,p(f,a)))return[0,a];var +a=a+1|0;continue}},qz=function(a){if(V(a,qA)){if(V(a,qB)){if(!V(a,qC))return gV;if(V(a,qD)){if(V(a,qE))try{var +l=fU(a,47),$=bW(0,a,l+1|0,(u(a)-l|0)-1|0),aa=gS(bW(0,a,0,l),$);return aa}catch(l){l=e(l);if(l===am){var +j=u(a),A=0;if(j<1)var +t=[0,0,A];else{var +P=p(a,0)+iD|0,S=0;if(!(2

>>0)){var +T=0;switch(P){case 0:var -S=[0,0,1];break;case -1:U=1;break;default:var -S=[0,1,1]}if(!U){var -R=S;T=1}}if(!T)var -R=[0,0,A];var -v=R}var -c=v[2];if(j<(c+2|0))var +R=[0,0,1];break;case +1:T=1;break;default:var +R=[0,1,1]}if(!T){var +Q=R;S=1}}if(!S)var +Q=[0,0,A];var +t=Q}var +c=t[2];if(j<(c+2|0))var w=[0,2,c];else{var -_=o(a,c),h=o(a,c+1|0),s=0;if(48===_){var +_=p(a,c),h=p(a,c+1|0),s=0;if(48===_){var i=0;if(89<=h){if(98===h)i=2;else if(111===h)i=1;else -if(dH!==h){s=1;i=3}}else +if(dD!==h){s=1;i=3}}else if(66===h)i=2;else if(79===h)i=1;else if(!(88<=h)){s=1;i=3}switch(i){case @@ -3336,210 +3336,174 @@ r=[0,0,c+2|0]}}else s=1;if(s)var r=[0,2,c];var w=r}var -e=w[2],b=w[1],W=2===b?function(a){if(69!==a&&dS!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&112!==a)return 0;return 1}:function(a){return 0},B=eQ(a,e,j,W);if(B)var -C=B[1],D=C+1|0,f=C,E=zu(bW(10,a,D,j-D|0));else +d=w[2],b=w[1],U=2===b?function(a){if(69!==a&&dO!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&112!==a)return 0;return 1}:function(a){return 0},B=eO(a,d,j,U);if(B)var +C=B[1],D=C+1|0,f=C,E=zg(bW(10,a,D,j-D|0));else var f=j,E=0;if(2<=b){var -F=eQ(a,e,f,function(a){return 46===a?1:0});if(F){var +F=eO(a,d,f,function(a){return 46===a?1:0});if(F){var x=F[1];if(2===b)var -G=1;else{if(!(3<=b))throw[0,u,qM];var +G=1;else{if(!(3<=b))throw[0,v,qG];var G=4}var I=x+1|0,J=f-1|0,H=0;if(J - Format.fprintf fmt "(log_begin_call@ %a@ %a@ %a)" format_uid_list info format_with_parens f - format_with_parens arg + Format.fprintf fmt "(log_begin_call@ %a@ %a@ unembeddable@ %a)" format_uid_list info + format_with_parens f format_with_parens arg | EApp ((EOp (Unop (D.Log (D.VarDef, info))), _), [ arg1 ]) when !Cli.trace_flag -> - Format.fprintf fmt "(log_variable_definition@ %a@ %a)" format_uid_list info format_with_parens - arg1 + Format.fprintf fmt "(log_variable_definition@ %a@ unembeddable@ %a)" format_uid_list info + format_with_parens arg1 | EApp ((EOp (Unop (D.Log (D.PosRecordIfTrueBool, _))), pos), [ arg1 ]) when !Cli.trace_flag -> Format.fprintf fmt "(log_decision_taken@ @[{filename = \"%s\";@ start_line=%d;@ start_column=%d;@ \ @@ -322,7 +322,8 @@ let rec format_expr (ctx : Dcalc.Ast.decl_ctx) (fmt : Format.formatter) (e : exp (Pos.get_end_line pos) (Pos.get_end_column pos) format_string_list (Pos.get_law_info pos) format_with_parens arg1 | EApp ((EOp (Unop (D.Log (D.EndCall, info))), _), [ arg1 ]) when !Cli.trace_flag -> - Format.fprintf fmt "(log_end_call@ %a@ %a)" format_uid_list info format_with_parens arg1 + Format.fprintf fmt "(log_end_call@ %a@ unembeddable@ %a)" format_uid_list info + format_with_parens arg1 | EApp ((EOp (Unop (D.Log _)), _), [ arg1 ]) -> Format.fprintf fmt "%a" format_with_parens arg1 | EApp ((EOp (Unop op), _), [ arg1 ]) -> Format.fprintf fmt "@[%a@ %a@]" format_unop (op, Pos.no_pos) format_with_parens arg1 diff --git a/src/catala/runtime.ml b/src/catala/runtime.ml index 2613ba96..47ae6375 100644 --- a/src/catala/runtime.ml +++ b/src/catala/runtime.ml @@ -34,6 +34,18 @@ exception UncomparableDurations exception ImpossibleDate +type runtime_value = + | Money of money + | Integer of integer + | Decimal of decimal + | Date of date + | Duration of duration + | Enum of string list * runtime_value + | Struct of string list * (string * runtime_value) list + | Unembeddable + +let unembeddable _ = Unembeddable + type source_position = { filename : string; start_line : int; @@ -43,54 +55,28 @@ type source_position = { law_headings : string list; } -type store_key = Hmap.Key.t - type event = - | BeginCall of string list * store_key - | EndCall of string list * store_key - | VariableDefinition of string list * store_key + | BeginCall of string list * runtime_value + | EndCall of string list * runtime_value + | VariableDefinition of string list * runtime_value | DecisionTaken of source_position let log_ref : event list ref = ref [] -let store_ref : Hmap.t ref = ref Hmap.empty +let reset_log () = log_ref := [] -let reset_log () = - log_ref := []; - store_ref := Hmap.empty +let retrieve_log () = !log_ref -let retrieve_log () = List.rev !log_ref - -(* This function is where we have to punch trough the OCaml type system. Indeed, this value store is - really a cheap version of an embedding and de-embedding system where values are annotated by - their types. However, since this logging is meant to be accessed through Javascript where we have - access to type tagging, this is fine? *) -let retrieve_value : 'a. store_key -> 'a = - fun key -> - let unique = - Hmap.filter - (fun binding -> - match binding with Hmap.B (key', _) -> Hmap.Key.equal key (Hmap.Key.hide_type key')) - !store_ref - in - match Hmap.get_any_binding unique with Hmap.B (_, v) -> Obj.magic v - -let log_begin_call info f x = - let x_key = Hmap.Key.create () in - store_ref := Hmap.add x_key x !store_ref; - log_ref := BeginCall (info, Hmap.Key.hide_type x_key) :: !log_ref; +let log_begin_call info f _embed x = + log_ref := BeginCall (info, Unembeddable) :: !log_ref; f x -let log_end_call info x = - let x_key = Hmap.Key.create () in - store_ref := Hmap.add x_key x !store_ref; - log_ref := EndCall (info, Hmap.Key.hide_type x_key) :: !log_ref; +let log_end_call info _embed x = + log_ref := EndCall (info, Unembeddable) :: !log_ref; x -let log_variable_definition (info : string list) (x : 'a) = - let x_key = Hmap.Key.create () in - store_ref := Hmap.add x_key x !store_ref; - log_ref := VariableDefinition (info, Hmap.Key.hide_type x_key) :: !log_ref; +let log_variable_definition (info : string list) _embed (x : 'a) = + log_ref := VariableDefinition (info, Unembeddable) :: !log_ref; x let log_decision_taken pos x = diff --git a/src/catala/runtime.mli b/src/catala/runtime.mli index 39e0d21c..3d9ad207 100644 --- a/src/catala/runtime.mli +++ b/src/catala/runtime.mli @@ -38,6 +38,20 @@ exception ImpossibleDate exception NoValueProvided +(** {1 Value Embedding} *) + +type runtime_value = + | Money of money + | Integer of integer + | Decimal of decimal + | Date of date + | Duration of duration + | Enum of string list * runtime_value + | Struct of string list * (string * runtime_value) list + | Unembeddable + +val unembeddable : 'a -> runtime_value + (** {1 Logging} *) type source_position = { @@ -49,27 +63,21 @@ type source_position = { law_headings : string list; } -type store_key - type event = - | BeginCall of string list * store_key - | EndCall of string list * store_key - | VariableDefinition of string list * store_key + | BeginCall of string list * runtime_value + | EndCall of string list * runtime_value + | VariableDefinition of string list * runtime_value | DecisionTaken of source_position val reset_log : unit -> unit val retrieve_log : unit -> event list -val retrieve_value : store_key -> 'a -(** TODO: This is a cheap substitute for a deep embedding of the language values, which will be - necessary. See https://github.com/CatalaLang/catala/issues/89#issuecomment-799723775 *) +val log_begin_call : string list -> ('a -> 'b) -> ('a -> runtime_value) -> 'a -> 'b -val log_begin_call : string list -> ('a -> 'b) -> 'a -> 'b +val log_end_call : string list -> ('a -> runtime_value) -> 'a -> 'a -val log_end_call : string list -> 'a -> 'a - -val log_variable_definition : string list -> 'a -> 'a +val log_variable_definition : string list -> ('a -> runtime_value) -> 'a -> 'a val log_decision_taken : source_position -> bool -> bool diff --git a/src/french_law/api_web.ml b/src/french_law/api_web.ml index fb400184..22a11369 100644 --- a/src/french_law/api_web.ml +++ b/src/french_law/api_web.ml @@ -113,8 +113,7 @@ let _ = val mutable loggedValue = match evt with - | BeginCall (_, key) | EndCall (_, key) | VariableDefinition (_, key) -> - let v = retrieve_value key in + | BeginCall (_, v) | EndCall (_, v) | VariableDefinition (_, v) -> Js.Unsafe.inject v | DecisionTaken _ -> Js.Unsafe.inject Js.undefined diff --git a/src/french_law/law_source/allocations_familiales.ml b/src/french_law/law_source/allocations_familiales.ml index ae78ae5b..f804978e 100644 --- a/src/french_law/law_source/allocations_familiales.ml +++ b/src/french_law/law_source/allocations_familiales.ml @@ -211,15 +211,15 @@ let smic (smic_in : smic_in) = let residence_ : unit -> collectivite = smic_in.residence_in in let brut_horaire_ : unit -> money = smic_in.brut_horaire_in in let date_courante_ : date = - log_variable_definition [ "Smic"; "date_courante" ] + log_variable_definition [ "Smic"; "date_courante" ] unembeddable (try date_courante_ () with EmptyError -> raise NoValueProvided) in let residence_ : collectivite = - log_variable_definition [ "Smic"; "résidence" ] + log_variable_definition [ "Smic"; "résidence" ] unembeddable (try residence_ () with EmptyError -> raise NoValueProvided) in let brut_horaire_ : money = - log_variable_definition [ "Smic"; "brut_horaire" ] + log_variable_definition [ "Smic"; "brut_horaire" ] unembeddable (try try brut_horaire_ () with EmptyError -> @@ -398,6 +398,7 @@ let allocation_familiales_avril2008 let age_minimum_alinea_1_l521_3_metropole_ : integer = log_variable_definition [ "AllocationFamilialesAvril2008"; "âge_minimum_alinéa_1_l521_3_métropole" ] + unembeddable (try try age_minimum_alinea_1_l521_3_metropole_ () with EmptyError -> integer_of_string "16" with EmptyError -> raise NoValueProvided) in @@ -409,11 +410,13 @@ let enfant_le_plus_age (enfant_le_plus_age_in : enfant_le_plus_age_in) = let enfants_ : enfant array = log_variable_definition [ "EnfantLePlusÂgé"; "enfants" ] + unembeddable (try enfants_ () with EmptyError -> raise NoValueProvided) in let le_plus_age_ : enfant = log_variable_definition [ "EnfantLePlusÂgé"; "le_plus_âgé" ] + unembeddable (try try le_plus_age_ () with EmptyError -> @@ -454,27 +457,32 @@ let prestations_familiales (prestations_familiales_in : prestations_familiales_i let age_l512_3_2_ : integer = log_variable_definition [ "PrestationsFamiliales"; "âge_l512_3_2" ] + unembeddable (try try age_l512_3_2_ () with EmptyError -> integer_of_string "20" with EmptyError -> raise NoValueProvided) in let date_courante_ : date = log_variable_definition [ "PrestationsFamiliales"; "date_courante" ] + unembeddable (try date_courante_ () with EmptyError -> raise NoValueProvided) in let prestation_courante_ : element_prestations_familiales = log_variable_definition [ "PrestationsFamiliales"; "prestation_courante" ] + unembeddable (try prestation_courante_ () with EmptyError -> raise NoValueProvided) in let residence_ : collectivite = log_variable_definition [ "PrestationsFamiliales"; "résidence" ] + unembeddable (try residence_ () with EmptyError -> raise NoValueProvided) in let base_mensuelle_ : money = log_variable_definition [ "PrestationsFamiliales"; "base_mensuelle" ] + unembeddable (try try base_mensuelle_ () with EmptyError -> @@ -544,18 +552,21 @@ let prestations_familiales (prestations_familiales_in : prestations_familiales_i in let smic_dot_date_courante_ : unit -> date = fun (_ : unit) -> - log_variable_definition [ "PrestationsFamiliales"; "smic.date_courante" ] date_courante_ + log_variable_definition + [ "PrestationsFamiliales"; "smic.date_courante" ] + unembeddable date_courante_ in let smic_dot_residence_ : unit -> collectivite = fun (_ : unit) -> - log_variable_definition [ "PrestationsFamiliales"; "smic.résidence" ] residence_ + log_variable_definition [ "PrestationsFamiliales"; "smic.résidence" ] unembeddable residence_ in let result_ : smic_out = log_end_call [ "PrestationsFamiliales"; "smic"; "Smic" ] + unembeddable (log_begin_call [ "PrestationsFamiliales"; "smic"; "Smic" ] - smic + smic unembeddable { date_courante_in = smic_dot_date_courante_; residence_in = smic_dot_residence_; @@ -568,6 +579,7 @@ let prestations_familiales (prestations_familiales_in : prestations_familiales_i let regime_outre_mer_l751_1_ : bool = log_variable_definition [ "PrestationsFamiliales"; "régime_outre_mer_l751_1" ] + unembeddable (try try regime_outre_mer_l751_1_ () with EmptyError -> ( @@ -602,6 +614,7 @@ let prestations_familiales (prestations_familiales_in : prestations_familiales_i let plafond_l512_3_2_ : money = log_variable_definition [ "PrestationsFamiliales"; "plafond_l512_3_2" ] + unembeddable (try try plafond_l512_3_2_ () with EmptyError -> ( @@ -634,6 +647,7 @@ let prestations_familiales (prestations_familiales_in : prestations_familiales_i let conditions_hors_age_ : enfant -> bool = log_variable_definition [ "PrestationsFamiliales"; "conditions_hors_âge" ] + unembeddable (try try conditions_hors_age_ () with EmptyError -> ( @@ -680,6 +694,7 @@ let prestations_familiales (prestations_familiales_in : prestations_familiales_i let droit_ouvert_ : enfant -> bool = log_variable_definition [ "PrestationsFamiliales"; "droit_ouvert" ] + unembeddable (try try droit_ouvert_ () with EmptyError -> ( @@ -872,38 +887,45 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let personne_charge_effective_permanente_est_parent_ : bool = log_variable_definition [ "AllocationsFamiliales"; "personne_charge_effective_permanente_est_parent" ] + unembeddable (try try personne_charge_effective_permanente_est_parent_ () with EmptyError -> false with EmptyError -> raise NoValueProvided) in let personne_charge_effective_permanente_remplit_titre__i_ : bool = log_variable_definition [ "AllocationsFamiliales"; "personne_charge_effective_permanente_remplit_titre_I" ] + unembeddable (try try personne_charge_effective_permanente_remplit_titre__i_ () with EmptyError -> false with EmptyError -> raise NoValueProvided) in let ressources_menage_ : money = log_variable_definition [ "AllocationsFamiliales"; "ressources_ménage" ] + unembeddable (try ressources_menage_ () with EmptyError -> raise NoValueProvided) in let residence_ : collectivite = log_variable_definition [ "AllocationsFamiliales"; "résidence" ] + unembeddable (try residence_ () with EmptyError -> raise NoValueProvided) in let date_courante_ : date = log_variable_definition [ "AllocationsFamiliales"; "date_courante" ] + unembeddable (try date_courante_ () with EmptyError -> raise NoValueProvided) in let enfants_a_charge_ : enfant array = log_variable_definition [ "AllocationsFamiliales"; "enfants_à_charge" ] + unembeddable (try enfants_a_charge_ () with EmptyError -> raise NoValueProvided) in let prise_en_compte_ : enfant -> prise_en_compte = log_variable_definition [ "AllocationsFamiliales"; "prise_en_compte" ] + unembeddable (try try prise_en_compte_ () with EmptyError -> ( @@ -1065,6 +1087,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let versement_ : enfant -> versement_allocations = log_variable_definition [ "AllocationsFamiliales"; "versement" ] + unembeddable (try try versement_ () with EmptyError -> ( @@ -1226,12 +1249,14 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let nombre_enfants_l521_1_ : integer = log_variable_definition [ "AllocationsFamiliales"; "nombre_enfants_l521_1" ] + unembeddable (try try nombre_enfants_l521_1_ () with EmptyError -> integer_of_string "3" with EmptyError -> raise NoValueProvided) in let age_minimum_alinea_1_l521_3_outre_mer_ : enfant -> integer = log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_outre_mer" ] + unembeddable (try try age_minimum_alinea_1_l521_3_outre_mer_ () with EmptyError -> ( @@ -1242,15 +1267,17 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let nombre_enfants_alinea_2_l521_3_ : integer = log_variable_definition [ "AllocationsFamiliales"; "nombre_enfants_alinéa_2_l521_3" ] + unembeddable (try try nombre_enfants_alinea_2_l521_3_ () with EmptyError -> integer_of_string "3" with EmptyError -> raise NoValueProvided) in let result_ : allocation_familiales_avril2008_out = log_end_call [ "AllocationsFamiliales"; "version_avril_2008"; "AllocationFamilialesAvril2008" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "version_avril_2008"; "AllocationFamilialesAvril2008" ] - allocation_familiales_avril2008 + allocation_familiales_avril2008 unembeddable { age_minimum_alinea_1_l521_3_metropole_in = (fun (_ : unit) -> raise EmptyError) }) in let version_avril_2008_dot_age_minimum_alinea_1_l521_3_metropole_ : integer = @@ -1260,26 +1287,27 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i fun (_ : unit) -> log_variable_definition [ "AllocationsFamiliales"; "prestations_familiales.date_courante" ] - date_courante_ + unembeddable date_courante_ in let prestations_familiales_dot_prestation_courante_ : unit -> element_prestations_familiales = fun (_ : unit) -> log_variable_definition [ "AllocationsFamiliales"; "prestations_familiales.prestation_courante" ] - (AllocationsFamiliales ()) + unembeddable (AllocationsFamiliales ()) in let prestations_familiales_dot_residence_ : unit -> collectivite = fun (_ : unit) -> log_variable_definition [ "AllocationsFamiliales"; "prestations_familiales.résidence" ] - residence_ + unembeddable residence_ in let result_ : prestations_familiales_out = log_end_call [ "AllocationsFamiliales"; "prestations_familiales"; "PrestationsFamiliales" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "prestations_familiales"; "PrestationsFamiliales" ] - prestations_familiales + prestations_familiales unembeddable { droit_ouvert_in = (fun (_ : unit) -> raise EmptyError); conditions_hors_age_in = (fun (_ : unit) -> raise EmptyError); @@ -1311,14 +1339,15 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i fun (_ : unit) -> log_variable_definition [ "AllocationsFamiliales"; "enfant_le_plus_âgé.enfants" ] - enfants_a_charge_ + unembeddable enfants_a_charge_ in let result_ : enfant_le_plus_age_out = log_end_call [ "AllocationsFamiliales"; "enfant_le_plus_âgé"; "EnfantLePlusÂgé" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "enfant_le_plus_âgé"; "EnfantLePlusÂgé" ] - enfant_le_plus_age + enfant_le_plus_age unembeddable { enfants_in = enfant_le_plus_age_dot_enfants_; le_plus_age_in = (fun (_ : unit) -> raise EmptyError); @@ -1329,6 +1358,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let age_minimum_alinea_1_l521_3_metropole_ : enfant -> integer = log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_métropole" ] + unembeddable (try try age_minimum_alinea_1_l521_3_metropole_ () with EmptyError -> ( @@ -1364,6 +1394,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let enfants_a_charge_droit_ouvert_prestation_familiale_ : enfant array = log_variable_definition [ "AllocationsFamiliales"; "enfants_à_charge_droit_ouvert_prestation_familiale" ] + unembeddable (try try enfants_a_charge_droit_ouvert_prestation_familiale_ () with EmptyError -> @@ -1371,20 +1402,23 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i (fun (enfant_ : _) -> log_end_call [ "PrestationsFamiliales"; "droit_ouvert" ] + unembeddable (log_variable_definition [ "PrestationsFamiliales"; "droit_ouvert"; "output" ] + unembeddable (log_begin_call [ "PrestationsFamiliales"; "droit_ouvert" ] - prestations_familiales_dot_droit_ouvert_ + prestations_familiales_dot_droit_ouvert_ unembeddable (log_variable_definition [ "PrestationsFamiliales"; "droit_ouvert"; "input" ] - enfant_)))) + unembeddable enfant_)))) enfants_a_charge_ with EmptyError -> raise NoValueProvided) in let est_enfant_le_plus_age_ : enfant -> bool = log_variable_definition [ "AllocationsFamiliales"; "est_enfant_le_plus_âgé" ] + unembeddable (try try est_enfant_le_plus_age_ () with EmptyError -> ( @@ -1396,6 +1430,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let age_minimum_alinea_1_l521_3_ : enfant -> integer = log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3" ] + unembeddable (try try age_minimum_alinea_1_l521_3_ () with EmptyError -> ( @@ -1423,48 +1458,53 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i then log_end_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_outre_mer" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_outre_mer"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_outre_mer" ] - age_minimum_alinea_1_l521_3_outre_mer_ + age_minimum_alinea_1_l521_3_outre_mer_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_outre_mer"; "input"; ] - param_))) + unembeddable param_))) else raise EmptyError with EmptyError -> log_end_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_métropole" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_métropole"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_métropole" ] - age_minimum_alinea_1_l521_3_metropole_ + age_minimum_alinea_1_l521_3_metropole_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3_métropole"; "input"; ] - param_))) + unembeddable param_))) with EmptyError -> raise NoValueProvided) with EmptyError -> raise NoValueProvided) in let plafond__i_i_d521_3_ : money = log_variable_definition [ "AllocationsFamiliales"; "plafond_II_d521_3" ] + unembeddable (try try plafond__i_i_d521_3_ () with EmptyError -> @@ -1556,6 +1596,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let plafond__i_d521_3_ : money = log_variable_definition [ "AllocationsFamiliales"; "plafond_I_d521_3" ] + unembeddable (try try plafond__i_d521_3_ () with EmptyError -> @@ -1647,6 +1688,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let droit_ouvert_complement_ : bool = log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_complément" ] + unembeddable (try try droit_ouvert_complement_ () with EmptyError -> ( @@ -1683,6 +1725,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let droit_ouvert_forfaitaire_ : enfant -> bool = log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] + unembeddable (try try droit_ouvert_forfaitaire_ () with EmptyError -> ( @@ -1739,14 +1782,16 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i && param_.a_deja_ouvert_droit_aux_allocations_familiales && log_end_call [ "PrestationsFamiliales"; "conditions_hors_âge" ] + unembeddable (log_variable_definition [ "PrestationsFamiliales"; "conditions_hors_âge"; "output" ] + unembeddable (log_begin_call [ "PrestationsFamiliales"; "conditions_hors_âge" ] - prestations_familiales_dot_conditions_hors_age_ + prestations_familiales_dot_conditions_hors_age_ unembeddable (log_variable_definition [ "PrestationsFamiliales"; "conditions_hors_âge"; "input" ] - param_)))) + unembeddable param_)))) then true else raise EmptyError with EmptyError -> false @@ -1756,6 +1801,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let nombre_total_enfants_ : decimal = log_variable_definition [ "AllocationsFamiliales"; "nombre_total_enfants" ] + unembeddable (try try nombre_total_enfants_ () with EmptyError -> @@ -1765,6 +1811,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let nombre_moyen_enfants_ : decimal = log_variable_definition [ "AllocationsFamiliales"; "nombre_moyen_enfants" ] + unembeddable (try try nombre_moyen_enfants_ () with EmptyError -> @@ -1775,14 +1822,16 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i match log_end_call [ "AllocationsFamiliales"; "prise_en_compte" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "prise_en_compte"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "prise_en_compte" ] - prise_en_compte_ + prise_en_compte_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "prise_en_compte"; "input" ] - enfant_))) + unembeddable enfant_))) with | Complete _ -> decimal_of_string "1." | Partagee _ -> decimal_of_string "0.5" @@ -1793,6 +1842,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let droit_ouvert_base_ : bool = log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_base" ] + unembeddable (try try droit_ouvert_base_ () with EmptyError -> ( @@ -1851,6 +1901,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let droit_ouvert_majoration_ : enfant -> bool = log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] + unembeddable (try try droit_ouvert_majoration_ () with EmptyError -> ( @@ -1881,22 +1932,24 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i && param_.age >=! log_end_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3" ] - age_minimum_alinea_1_l521_3_ + age_minimum_alinea_1_l521_3_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"; "input"; ] - param_)))) + unembeddable param_)))) then true else raise EmptyError with EmptyError -> @@ -1921,37 +1974,41 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i ((not (log_end_call [ "AllocationsFamiliales"; "est_enfant_le_plus_âgé" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "est_enfant_le_plus_âgé"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "est_enfant_le_plus_âgé" ] - est_enfant_le_plus_age_ + est_enfant_le_plus_age_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "est_enfant_le_plus_âgé"; "input"; ] - param_))))) + unembeddable param_))))) && param_.age >=! log_end_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3" ] - age_minimum_alinea_1_l521_3_ + age_minimum_alinea_1_l521_3_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"; "input"; ] - param_)))) + unembeddable param_)))) then true else raise EmptyError with EmptyError -> false @@ -1961,6 +2018,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let complement_degressif_ : money -> money = log_variable_definition [ "AllocationsFamiliales"; "complément_dégressif" ] + unembeddable (try try complement_degressif_ () with EmptyError -> ( @@ -2046,6 +2104,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_initial_base_troisieme_enfant_et_plus_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_initial_base_troisième_enfant_et_plus" ] + unembeddable (try try montant_initial_base_troisieme_enfant_et_plus_ () with EmptyError -> @@ -2160,6 +2219,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_initial_base_deuxieme_enfant_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_initial_base_deuxième_enfant" ] + unembeddable (try try montant_initial_base_deuxieme_enfant_ () with EmptyError -> @@ -2262,6 +2322,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_initial_base_premier_enfant_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_initial_base_premier_enfant" ] + unembeddable (try try montant_initial_base_premier_enfant_ () with EmptyError -> @@ -2381,6 +2442,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_verse_forfaitaire_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_versé_forfaitaire" ] + unembeddable (try try montant_verse_forfaitaire_ () with EmptyError -> @@ -2413,20 +2475,22 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i if log_end_call [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] - droit_ouvert_forfaitaire_ + droit_ouvert_forfaitaire_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "input"; ] - enfant_))) + unembeddable enfant_))) then acc_ +! integer_of_string "1" else acc_) (integer_of_string "0") enfants_a_charge_) @@ -2459,20 +2523,22 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i if log_end_call [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] - droit_ouvert_forfaitaire_ + droit_ouvert_forfaitaire_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "input"; ] - enfant_))) + unembeddable enfant_))) then acc_ +! integer_of_string "1" else acc_) (integer_of_string "0") enfants_a_charge_) @@ -2504,20 +2570,22 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i if log_end_call [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire" ] - droit_ouvert_forfaitaire_ + droit_ouvert_forfaitaire_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "input"; ] - enfant_))) + unembeddable enfant_))) then acc_ +! integer_of_string "1" else acc_) (integer_of_string "0") enfants_a_charge_) @@ -2540,6 +2608,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let rapport_enfants_total_moyen_ : decimal = log_variable_definition [ "AllocationsFamiliales"; "rapport_enfants_total_moyen" ] + unembeddable (try try rapport_enfants_total_moyen_ () with EmptyError -> @@ -2550,6 +2619,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_initial_metropole_majoration_ : enfant -> money = log_variable_definition [ "AllocationsFamiliales"; "montant_initial_métropole_majoration" ] + unembeddable (try try montant_initial_metropole_majoration_ () with EmptyError -> ( @@ -2571,18 +2641,20 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i (not (log_end_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] - droit_ouvert_majoration_ + droit_ouvert_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "input"; ] - param_))))) + unembeddable param_))))) then money_of_cents_string "0" else raise EmptyError); (fun (_ : _) -> @@ -2606,16 +2678,18 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i (ressources_menage_ >$ plafond__i_i_d521_3_ && log_end_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] - droit_ouvert_majoration_ + droit_ouvert_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "input"; ] - param_)))) + unembeddable param_)))) then prestations_familiales_dot_base_mensuelle_ *$ decimal_of_string "0.04" else raise EmptyError); (fun (_ : _) -> @@ -2640,16 +2714,18 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i && ressources_menage_ <=$ plafond__i_i_d521_3_) && log_end_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] - droit_ouvert_majoration_ + droit_ouvert_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "input"; ] - param_)))) + unembeddable param_)))) then prestations_familiales_dot_base_mensuelle_ *$ decimal_of_string "0.08" else raise EmptyError); (fun (_ : _) -> @@ -2673,16 +2749,18 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i (ressources_menage_ <=$ plafond__i_d521_3_ && log_end_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] - droit_ouvert_majoration_ + droit_ouvert_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "input"; ] - param_)))) + unembeddable param_)))) then prestations_familiales_dot_base_mensuelle_ *$ decimal_of_string "0.16" else raise EmptyError); |] @@ -2704,6 +2782,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_initial_base_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_initial_base" ] + unembeddable (try try montant_initial_base_ () with EmptyError -> ( @@ -2737,26 +2816,30 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_verse_complement_pour_forfaitaire_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_versé_complément_pour_forfaitaire" ] + unembeddable (try try montant_verse_complement_pour_forfaitaire_ () with EmptyError -> if droit_ouvert_complement_ then log_end_call [ "AllocationsFamiliales"; "complément_dégressif" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "complément_dégressif"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "complément_dégressif" ] - complement_degressif_ + complement_degressif_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "complément_dégressif"; "input" ] - montant_verse_forfaitaire_))) + unembeddable montant_verse_forfaitaire_))) else money_of_cents_string "0" with EmptyError -> raise NoValueProvided) in let montant_initial_majoration_ : enfant -> money = log_variable_definition [ "AllocationsFamiliales"; "montant_initial_majoration" ] + unembeddable (try try montant_initial_majoration_ () with EmptyError -> ( @@ -2782,14 +2865,16 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i } (log_end_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "droit_ouvert_majoration" ] - droit_ouvert_majoration_ + droit_ouvert_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "droit_ouvert_majoration"; "input" ] - param_))) + unembeddable param_))) && prestations_familiales_dot_regime_outre_mer_l751_1_ && array_length enfants_a_charge_droit_ouvert_prestation_familiale_ = integer_of_string "1") @@ -2802,24 +2887,27 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i with EmptyError -> log_end_call [ "AllocationsFamiliales"; "montant_initial_métropole_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "montant_initial_métropole_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "montant_initial_métropole_majoration" ] - montant_initial_metropole_majoration_ + montant_initial_metropole_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "montant_initial_métropole_majoration"; "input"; ] - param_))) + unembeddable param_))) with EmptyError -> raise NoValueProvided) with EmptyError -> raise NoValueProvided) in let montant_avec_garde_alternee_base_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_avec_garde_alternée_base" ] + unembeddable (try try montant_avec_garde_alternee_base_ () with EmptyError -> montant_initial_base_ *$ rapport_enfants_total_moyen_ @@ -2828,6 +2916,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_avec_garde_alternee_majoration_ : enfant -> money = log_variable_definition [ "AllocationsFamiliales"; "montant_avec_garde_alternée_majoration" ] + unembeddable (try try montant_avec_garde_alternee_majoration_ () with EmptyError -> ( @@ -2835,26 +2924,30 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i try log_end_call [ "AllocationsFamiliales"; "montant_initial_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "montant_initial_majoration"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "montant_initial_majoration" ] - montant_initial_majoration_ + montant_initial_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "montant_initial_majoration"; "input" ] - param_))) + unembeddable param_))) *$ match log_end_call [ "AllocationsFamiliales"; "prise_en_compte" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "prise_en_compte"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "prise_en_compte" ] - prise_en_compte_ + prise_en_compte_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "prise_en_compte"; "input" ] - param_))) + unembeddable param_))) with | Complete _ -> decimal_of_string "1." | Partagee _ -> decimal_of_string "0.5" @@ -2865,6 +2958,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_verse_base_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_versé_base" ] + unembeddable (try try montant_verse_base_ () with EmptyError -> @@ -2875,6 +2969,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_verse_majoration_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_versé_majoration" ] + unembeddable (try try montant_verse_majoration_ () with EmptyError -> @@ -2884,22 +2979,24 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i acc_ +$ log_end_call [ "AllocationsFamiliales"; "montant_avec_garde_alternée_majoration" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "montant_avec_garde_alternée_majoration"; "output"; ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "montant_avec_garde_alternée_majoration" ] - montant_avec_garde_alternee_majoration_ + montant_avec_garde_alternee_majoration_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "montant_avec_garde_alternée_majoration"; "input"; ] - enfant_)))) + unembeddable enfant_)))) (money_of_cents_string "0") enfants_a_charge_ else money_of_cents_string "0" with EmptyError -> raise NoValueProvided) @@ -2907,6 +3004,7 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_base_complement_pour_base_et_majoration_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_base_complément_pour_base_et_majoration" ] + unembeddable (try try montant_base_complement_pour_base_et_majoration_ () with EmptyError -> montant_verse_base_ +$ montant_verse_majoration_ @@ -2915,26 +3013,30 @@ let allocations_familiales (allocations_familiales_in : allocations_familiales_i let montant_verse_complement_pour_base_et_majoration_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_versé_complément_pour_base_et_majoration" ] + unembeddable (try try montant_verse_complement_pour_base_et_majoration_ () with EmptyError -> if droit_ouvert_complement_ then log_end_call [ "AllocationsFamiliales"; "complément_dégressif" ] + unembeddable (log_variable_definition [ "AllocationsFamiliales"; "complément_dégressif"; "output" ] + unembeddable (log_begin_call [ "AllocationsFamiliales"; "complément_dégressif" ] - complement_degressif_ + complement_degressif_ unembeddable (log_variable_definition [ "AllocationsFamiliales"; "complément_dégressif"; "input" ] - montant_base_complement_pour_base_et_majoration_))) + unembeddable montant_base_complement_pour_base_et_majoration_))) else money_of_cents_string "0" with EmptyError -> raise NoValueProvided) in let montant_verse_ : money = log_variable_definition [ "AllocationsFamiliales"; "montant_versé" ] + unembeddable (try try montant_verse_ () with EmptyError -> @@ -3025,38 +3127,45 @@ let interface_allocations_familiales let date_courante_ : date = log_variable_definition [ "InterfaceAllocationsFamiliales"; "date_courante" ] + unembeddable (try date_courante_ () with EmptyError -> raise NoValueProvided) in let enfants_ : enfant_entree array = log_variable_definition [ "InterfaceAllocationsFamiliales"; "enfants" ] + unembeddable (try enfants_ () with EmptyError -> raise NoValueProvided) in let ressources_menage_ : money = log_variable_definition [ "InterfaceAllocationsFamiliales"; "ressources_ménage" ] + unembeddable (try ressources_menage_ () with EmptyError -> raise NoValueProvided) in let residence_ : collectivite = log_variable_definition [ "InterfaceAllocationsFamiliales"; "résidence" ] + unembeddable (try residence_ () with EmptyError -> raise NoValueProvided) in let personne_charge_effective_permanente_est_parent_ : bool = log_variable_definition [ "InterfaceAllocationsFamiliales"; "personne_charge_effective_permanente_est_parent" ] + unembeddable (try try personne_charge_effective_permanente_est_parent_ () with EmptyError -> false with EmptyError -> raise NoValueProvided) in let personne_charge_effective_permanente_remplit_titre__i_ : bool = log_variable_definition [ "InterfaceAllocationsFamiliales"; "personne_charge_effective_permanente_remplit_titre_I" ] + unembeddable (try try personne_charge_effective_permanente_remplit_titre__i_ () with EmptyError -> false with EmptyError -> raise NoValueProvided) in let enfants_a_charge_ : enfant array = log_variable_definition [ "InterfaceAllocationsFamiliales"; "enfants_à_charge" ] + unembeddable (try try enfants_a_charge_ () with EmptyError -> @@ -3090,6 +3199,7 @@ let interface_allocations_familiales "InterfaceAllocationsFamiliales"; "allocations_familiales.personne_charge_effective_permanente_est_parent"; ] + unembeddable (try if log_decision_taken @@ -3114,6 +3224,7 @@ let interface_allocations_familiales "InterfaceAllocationsFamiliales"; "allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"; ] + unembeddable (try if log_decision_taken @@ -3134,32 +3245,33 @@ let interface_allocations_familiales fun (_ : unit) -> log_variable_definition [ "InterfaceAllocationsFamiliales"; "allocations_familiales.ressources_ménage" ] - ressources_menage_ + unembeddable ressources_menage_ in let allocations_familiales_dot_residence_ : unit -> collectivite = fun (_ : unit) -> log_variable_definition [ "InterfaceAllocationsFamiliales"; "allocations_familiales.résidence" ] - residence_ + unembeddable residence_ in let allocations_familiales_dot_date_courante_ : unit -> date = fun (_ : unit) -> log_variable_definition [ "InterfaceAllocationsFamiliales"; "allocations_familiales.date_courante" ] - date_courante_ + unembeddable date_courante_ in let allocations_familiales_dot_enfants_a_charge_ : unit -> enfant array = fun (_ : unit) -> log_variable_definition [ "InterfaceAllocationsFamiliales"; "allocations_familiales.enfants_à_charge" ] - enfants_a_charge_ + unembeddable enfants_a_charge_ in let result_ : allocations_familiales_out = log_end_call [ "InterfaceAllocationsFamiliales"; "allocations_familiales"; "AllocationsFamiliales" ] + unembeddable (log_begin_call [ "InterfaceAllocationsFamiliales"; "allocations_familiales"; "AllocationsFamiliales" ] - allocations_familiales + allocations_familiales unembeddable { personne_charge_effective_permanente_est_parent_in = allocations_familiales_dot_personne_charge_effective_permanente_est_parent_; @@ -3311,6 +3423,7 @@ let interface_allocations_familiales let montant_verse_ : money = log_variable_definition [ "InterfaceAllocationsFamiliales"; "montant_versé" ] + unembeddable (try try montant_verse_ () with EmptyError -> allocations_familiales_dot_montant_verse_ with EmptyError -> raise NoValueProvided) in