From 47b1cbaf042617a1bf447f9746fd9b9e32d5d4c2 Mon Sep 17 00:00:00 2001 From: Santiago Lema Date: Wed, 7 May 2025 02:33:01 -0300 Subject: [PATCH] working request to openai --- DumBer | Bin 244038 -> 325310 bytes MainWindow.cpp | 112 +- MainWindow.h | 7 +- json.hpp | 25580 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 25693 insertions(+), 6 deletions(-) create mode 100644 json.hpp diff --git a/DumBer b/DumBer index 17f1c0af692d02265e572c4928dc39a46d01d5dd..622ebd3eea0f636c3860af736578dec7d0cc4af4 100755 GIT binary patch literal 325310 zcmdSC3t&{m^*_F#XnYc_XliX66&1B=HV_EDngpU7UakZb@v#ZXLV|g$$p!+7Mi3>Y z(MYvLS~cRMXseA{6;U*TReYyvEk0T!+Hzx5qP2og{-4j8xw|Kqy-0uGN5B8u4)=aO zbLPyMnKO?&ch+21IN`K`0|o@#YnQ;O0iyH+43}pkO5WSm6$#`8as#{K-ya2jD6)eR zG21^Zuh~UN_Z~<$GSt2sA7duodw(j!$mJev?ryq)fRgSKo6dWu055w_Gbj-Ld%T<_ zxP3R1&U@c`un~0cZfSRip)VmkYxP`?=TQhh0Pev3b===TV0NbfUxGWYD4rt-l?c4f z!F_>!CeFq49k}0!a4ViSlEig8oH5n>2u zBg{mYj_?%1i3m3#oML4M;`vGhUdwSWKv;+HbKn)YAA|4?p6|o`Q{1QF{xbw#tq6M| z+=_4wxFZnW#PfLEe~G~B8-!8v6bLK=w;a!laqmQ+i=7Po9PYCbeva@Y!np`PLg4j0 z?&l%=70(YLl;Zg~ge7>s4EHAxcn!xr5BIgWFGKjL-EI2sDLn_O=kI#7BjOIl zb~ILd6CMX5=p`-QGX*~a+~^d%ml_8m%R~BABZuXE5Zv*24?OSZNqfErAL+rV;7>tL zP7zU&f^(^1_F*dSW9;*pxHsD8RJU@FF&oj8N&wt^AD(oHCvGWlJ;LD#*C0$sC_5rn%Cc#So;z!rOd!rs5c z{rd=)Bix2?A;Mn}jzPEr;Q)kB5PpPEh|r7h074mpzAgfofpDPhFthR8hwwGR55Vn( z@IxE-J$qk_xDdik2uCCE`ZGe0JYmeUcis+0xB%fagnu9mwmKfe^V0}>0RIYiUMC?e zKv;&btChoJ;Bfo=Hl8OTL=oB$c*V^v@FDKcAdFV&81*DV8n{Bs?}z*M5zYdCGVUF? z{|n)d2nPediu)P_UZ(*cg;0m*YGLpX@C5rj1JAs6!F_l8Ogsh8Kj8zeS$G~|NHOy%FXjG}y?oc;oS zAe;dl#{KWO{}}fl(rvFv2*^?0sDxDd~e z;?C<22zw)(O<=Djh_6R*fPd(cKKB_pW?b+_FFm6F80W^1M&szQ&*jfKGBrOQ6ICkt z4aoOU^v3o%yNHTmR#7AF`(p(hW8ra~EdOE+mP=_I59Qfje?}obKUn+^S{EtluG`3*vayia3O{3efihS(TCY* zeQQKRr_!?=(!gWG*q~O|$wx`DtqT1!Gh55Baov?TFO! za|Wj7^D*G1va`;oK6jV;**mb`BT%R=u8ULYdCSeyG%bNwVk`e&r{Xg%h1Vw*Ljgq%=v=X2R?qj5R(`Cd#8QTnqtHQ zf5o^Y{0l}w(DJK&+PB_k9Ge6)Qq}W;sJB!+*HP@JO?DhO+~&J!x770I`S|%L>A!mg zGVMYtYV|zr<3A1t@Kp9(;!|%g4^CbGr=ugK(zD!W+?(seAB%ih|7`~vzjE7p`U$3e z+dO`CEf#*M^8FHiB6@B%dhWCSFbxV*$q z-W|_x^l7g>eEjE5pMJW#Pdz{H(_gq|OI5BnU>^JLOTEU5QQOTXSH&~ED? z-^#b5e%v;)l-#O({QtK;ewYFKS#Kp3#-2m1vWtD{;a;EmJOuv9a&>GqdeF_~%EmZJ z{rT@(Z24KZr?P(?_*C=qamS{v&uUDpsq}Dvhk80}zy8|hJKo1{pUq3H|261O)sE@e zsrgo)dfvll{z~&1mlpcu`)50TW{yVzaW%-lSeyII`+FRh+Ri`hnwsCmr`=~9pSqsg z(2v-@ot|;~)J<`Gb7geVR|ZALY|eH`)Fk*lhYylhuDP3dMZeZM(bs05iXD_>P&z zAFj6@Z_?1z<$4h7XX=p+b?BZ7J9zc@%nM)m_~C4yap2n@8T}6~Bj_cN#tO&TLeR^lST49X09$kNVXAk5M0~^xx&<4`)JOD*yQ%7F4Xal87l6 z=UrZV_|(I7sOMDq@;y5hf7W4U{LK8swEKFaUf!Wo${(&un|;c)^dKYO zd7hE~rO76+K0CENe}~^vf0JDgm{i#R&Py%70{T+fdFKJC`Hy_Y^TU1YKLO*9yx&=W zux=i>-p8*pq#t2j>XEOt^IaAl2^aTgcrDLMZRZ%D@%c*lHR~rU-zaeFXO_=8;g@*9 zPgOq?eAbyy`qbyuKKl>Pp}l1OweJOJZn-u>59@8EU7y2^<$B#`+doEn`V95YdT4*w)PTG0ddNr5i>L?jt5T!qP-_ofL&0x<-R|Qj*C4s96HYYw-iCVQ z^^8w_zT;EgYw}XJOP+1tOi%m1;M3pvEh|;~uJu{h<@wCl5885dc*eKC`;5cy`i!4% zq9It%-TV-UtHRs@C;Ir|1u|d2pShuj>s`z%y#D6n&xiQryTWI^(d?sVmAp5Zy!5|0 z=-{+J#!XmUg;=lf`jL{v@UDo-u?|7f}-nl;hHrb~h7W$NTtIUJ@1eSed{1e?ru0=lkIj{TF!<|0! z$g8sM!v2!yee*bxNBv}*cHa;EpVt-Hsq6nXAA8R8@#oJEHuay?X!P4*Jut@hmw>0g zjE29Z@~fMC>VKF|J4Sr`XMoSTasIx>&UQO56q{-Y9PCq{OEGVzvh$8iqo;4FDes|s z8%6uudWiAE4zAytW)2+SQ*Ya#oPL{U$N6POO(5zsK3{c2YI}~zGkVf*G#T30foBR=cN z@9&yg&%nIY{A&15s`k1V6E5v+dePX4;Zd%aeEKi9=~C%A=_sS8!|r=v7?v_H>|w{BbXzz@l{S$8tI)`lXLOn^B*s+GQV~c0V2Z`QDdh*8}dj zcVK>Mzx^J@6V_YjyT%`oom?@Wa&5wTlJZTZW?ned%8&N(pCb-SZU496X=mV5qsQIf z_~CA;<$s3$o2nl6v;9{NWWpA={|@k3|M#N4Q|b8~=3AC4=JB7eF&~MYwmvcJ%M}Bk zO3&}@dqL)8Q=d0lM|{L*o;}h>&(j68XZvfm&w4e2s+4xI_QQ?kdf%rWzJhtF>>rk$ znm-7_)bIT+fBTOu@7dpb%4eQh=EL{;jOTCowELYte2Y*0Jm52qz3eki{?Nz&FF}V& zRc}Lm=JB)gQ}?^DkN)S-j;Zwj#;0H8<)xM%gM3rzDLByhbCcaqcE8U~g1@DbU*Izy zF7SD;{KCi2U&Fqc?AOgT10K4qTw{F3y&RwUqSda4!#og$>re78&fnSnz!J~AQviFI zZ<<{PVjEDdPto7GU*!Eh`^&MZ>)}qH_0m3j8UOe0`|abiet0)8wLgru`;gx6ZsRhI z{>E9^zjQPd0fBU&l{Xglm{wahXvVHUHdfr{n zyy7#@7W?>5nNR&6Vb=*I`KDZZ+HyVWv;L{~;m`Bow`QlVpWU#YOjWM=LsQG2gZT(U z!FE>>-s7mJ=~83=Jd~5y!#?%7#O^PZ*!2(np4X*5^U*?|dOqE!9e2U_kjkD5eC#;` z^FGJ(OgoQYI+p7N@TtmMhV^hNe;bPKpNfCdr=Q;B^B!?B+J*M4^vpZw__X6lpK`qd zzfEP&a*(W_@I=#IAKLQX?=$}{^Xb1&_|(HuSkQ8P+v!=~eueocl|6w-Wld!~5SfWv zAQCBSEahWqRptCBV0pAII;*li9<7VatShaKLU?8^_>^pYytFPJD6N|{CsJQJCmMjB z@<_a*E?QcSB-N#rH5NrG%L9a9XN5{DFKj4g%7)mO+Hzz%tGJ@HE?R!ZjM>q$xJ2g{ z6s4liiq_Rv);gPhRhE^;A!ehEXi!AWbCx`pSB2+P zyQ+dC@@LdG#3x5DYKWrnog4QdnF$tEM#GPzRHd*YJV~wPmGM(aE)}tx;p6 zGfNw);wGE%p4j2pMfImuRz>UQLAH8IU1?2ymDm`ri_VPJq3|YMZo!z+cxhGbtkI`O ze);qhg~!3h5EmXL;?jhe2VJ0@sjw~s=B%FD+_>&xmYW2_7crjW{p)R@}X zyt>L+74gDK2!&JTGzxN4qK$E?F%pqkjg65Q8l;xK6Q38ElNE?et(i*~m>jKdsFqq{ z%ZxG2&W9zMCDMr5WGTThr$SygF$eI!0FX570FIZi3+uaicM?@x`&uPdvloD(e!=N3$i z*4LNLiq3GWH0gDt!qK{!wRP2nv%^x7V6ecXE1gjl4Gzz*s+w9;Y7~{D1`?`FhW&(t z5Vm$h2h``w>}KRq9g=^*^{HywR567Cp;Y48p#P5gbKqs1-x%x z%fXQ-ac$L{XmKoBRynhhW+W=85-v{)PvOqc!D| zYU7n<5Ss02s$}^_B`V+6m38+WNZ7X7fy9W^tv9x^K2{nptFW!8Oh@T$_S=_w#F;2) zN`=E2(|^!I*PBpVi;f-4k+Gq=y0&IVZI=+wHSIj6cBfN}Mq_JnZ<8lfk4#jtHO&;p zH{P~@Z@jI4-*{X5zVSKVk^e|<{FvIBInlcKl-fkY&B5HuVa^sP7%#2AFj6HIpQ@#D z!VOjR(NrZSQW`!9;VZ$us51omw>Ie34o-l9te5tkO zrV_=NEVFrvMo=SOaXdR%Sz8~OQCc63R8`KXE3KO+D?XWxa%-w;E2>LtYJwwYW9E)v zR*cLU9tmbgvPPCirRAkDjPgZg#r1{mit4|p#kvA49Udu; zMapU$YT$K|SiBB~#;QuoqD7PbYgrT)mln+_oG@uL)|)jAoc>WlEY~iK#A>lToL87# zm?+GD+Km4jwSiUA#7H@&ms)q2`A^r2S*8CM9bv515>#u<#A|~l&1h_v++%H%xQkHN z?X|os(~tXaF*!JLZXMPokutm#m6oCFVTCfjOx{$A>qnNxVpx?ZW&{S?m}xz{xzyFp zE1WzY-e1N=?WF&38}>6x#-IPRK_lShv!Zdl=2k_yc12yqM<-qcP-U#M;Ajp@)uk6k zBlYrT8i|+A%83+5;+2JS3UeZa5S>!&BN{+ElvT?c>3?k)3+8xSp-|@T;`&i_X1!l% z-9nrIuK~r8Xmt$lVs+6N#_!rXyrR$#SjJjApxYD}4~sGK*1*(;vUp*2nf97`#7>M< zMN2P?p#1K;>32>Yqoa*wQF+@OQG=}mR&Kp4bCP~b$~b0lq#pY@TNUkiyv}CZ)uG*F zVk@nWM;b80mDN^R`_LHwu1fJwtJ2K4#r0#di=_J$vX8;stO%R4Dk{4U#r0Ct@Q+9t zb~)nF!s=?b;;N(7WwCiu+i)OmeALdxif&eASp;wRwRQG|1UUq^%YiRU-&wuEEWG1Y z%0^9H(Igla%tEz6J!kTw;`s3D(pYhPB#fsy;HOw5n))845ThQk={GPeEhuR8@~e&%h>9QE~ma;`-uxdabA# z8#}}3m~z%mG+44f*ugkBybep9O6;nMN0{v!(;bqsiRo!4atLP0*d^L*9=VapGa~W2 zXcWd5$4A6UE9;72{*ILGoF8G8xSb!NzLg)L^)LjXhnB^I^{BjpNFgl1u2(%4V{kVT zh0={V1XtF;BhiU#DzWE=byI@V0Q%m8tJ zyR@nbTeVnIB_^nyYb4#h?1FE~&b*rFbm*31gUko^c_zANe_M*<319!e+HXhOrIYQq z6{v09d1Ym1haR)ANRHF&_|mz#6j8mpvgW&cbz(-_Va2B!!qAc2IWU-F?9xLQ2d7aO zoPwidjUoPG2dJWP5>q(myXGQ@6_17v&Jo`=&7?AS=VtEV%Isj4yu)LfYlx02x2u27 zhIUjKB{7k>SpstJ+b&9?HM8Os{Z}P!?*ALL+<*1DgH^|WPc^x(YX7UA}@@1HT1<$~T z%$j~oUDS@kJDk7%n=H?^mSaJ~ih1}?*2D603 zCo8-&%qXoYttpGn@L3^ZSe$IXVf~LgZ8i%!lAqb_>l!v9rq+PORfQCk<8 zfzuJ#LytDbFzD3aD|umX_=RIcDoi2S(AdE^Z}Z8;77X|Fq|A789Uj4s0IbCLP#={~ zoZqeEe{7vUg3EjkSfe8|X3U;#2CKw)gQbwWP{V$iTEOY|ubrvu|1taRdkWU1(OLLd zQ8l453&YKvDUm|NRL-i5<8yy)Wb|kh?EjLT)&D=SvtkE!PQvaUwj*(T2)l^vxOz)` zbUkL}GaI6H^UVI*h=QqgRcha(J_lPl_~P(gi)-2F!8if^Q_hmP0z0(-p$|u5!;Z#h z+u?WgC9N>PH&X1B;KMNMY*az9d~Qot&1jsdsIIM>S9FGO=BUzmslU;vLnCfK6K2Wz z3oI3)bt0TN3lJXfeqj#FMr=??x+_#s=>oK+dA}>Hc0W4k=G@`=5e)4z6pk+7NujeU zqjN{$1ApSw(D>kpIQR&*z#^qw;IQ1u^DjJ^QB)HjF2{oG$8mE8Xos1m(lK%b_ipj> zuk~+tqN;y%aCn&e2UBWMvC-0MQ?aU5Ff_`nH2%8>>Eu@4h`AM|_TUA_&HlT8D)Qga z>3)pbPM_O^|CTcQrR(2Hv(sO>^friV_IKyhFI9@qcfsL2@Nfn`gXI^EkJ@o1ryyJ! zuYmKjHw8z?LB#UPI@t=J7tBdKM&?#jmQ~T6Uq415LqE@bY2~m0`LkzLGGB zi5kIT6`C`N<)!BEm~y}~jQ<%~*UElWiP+3(zFGboe=gV;cA zh*Xu%!xw(BHAe)D@%>_HRpK~R&0O=DDM28CB2WtN#CVRvk~-&%xi$FeD0*`WI79|f)Y@3QSPq7csjaHT=U$WT$b#Y+UZhMy zRz@&ujC^xC9os!tCR>JDoG!wLUpuX04?Woq%p7ArPTR&C>JyFt5$?2m;(|Eu7N1z! zcow&l3R$k)1{{^7Nx`7pOy`kwK|5cu2&VC&(fZVBFbABJ0&Xu80o{q$+IWsp87`#L5~mHm86$KcUh_kC5AqON$F_Hy%|`&=8N; z)+FjK*=ADaAS$>FZCaJAU{oE!?AbGB1hZ$L7dY-ap#Qty zY+Zx?U(yxp@lq6RN4RG`q^fpek(Zq8xy!m!UkAKN@O55)mzYw#6WQuXQZn9|MA^gb z(Jp(YD-x@#jn|@UV-szst^ZCXJ7viZ4w>z|CEuk4?)4u%VP;+RKWzi2A2aj$onTMI zd(N)A{7#>?P9*s5bJhvboSi+??50Q@_s3Li%B2oCyHqgs(Pkqb9EmB@=RmHN*#1Cn zLUYz>{9(*Q?CF*ljw}e*;URzu3TGT&9a5!d@Xtc()$E<(cXrgmi3RxF$GMPs=tAuN_@8MpCWm*+a&d@)i6Dv z4&+b2G8blWH19^y^Zg*Shm+>K$2A8UE+Bw|0>yoO?; z8_g|$EcIl1j+BlH-1+HOxys829bdM@{0$h)+DV`9!&I5`NL<1q=ge zzb_Y_Vz5bNm5{28{2C*tRN`1la!(aIAG&y06eWv?&miU)axf>tp9A2?k3HeR&(94t z6}7eYh03ijvx2f42ByN)TbuA0|4hW_)3De-t+EckEP)ButQoFB{08rrJHHD{-eG)4 zFxBZV%*7Ip;NVAI_-z+{IfFwnvfMTY22;2J70SjcTNSXKGYY zJ>Ezv%}9e^X$3Lj*5ktpj=Y^AnU5+Mi{H!eOfmmDVR;*v%H2 zdV@DaFbh)lmoR3CvVtM}yiXIkVY_Iuq-%ckA{y?=6+bi5X-9+;gqsYVyI*er)`jn9 zQE|Q7Tcup^e7ED^Eg4JyDfmHKqPnaxXkF~+;UGXIzBks*!d{2Gob4di<{_=RT~e0M z%^bbnoUXyE1bqI9~Ko3b!_>q+h%$V?W+Cl5Y^HU5^7E zj#Ks9B`z9Uv*RmM|D87So;J}3WYMhWWrQ4wzuA_HCOsws91~#$J!{7K#P3+0aduhKo)3$Vb zyPe<@+rNDiLfqsjsIA4G&G<4I3KB87h(W$;AJ-cd9LZGfQQ{Gi(;8~<>m~f4g|D>k zUL$JG8^bXVD z_{i+;{UuXXLSd!PF{8=j5%b;0jQCR@b;u})?Z#+)E>@hVGkk_g3=w*(U-u%f{CC9J z)tV{Q2;Qty;>3dcAwTi$T|Sq}2OXb}@caUg)#hCHcj0tVx5{A195e`jIc$G5u4ARc zn^XJJa&t>7al{W_XU$rRqT_Xu6XT#1!0SHhD?`6j+ykq@4yydPH|4J@WjU8nXNMtn z(XxiRI*hH!E-4vr*E~7ck(p9U=QUff_@Q`l6ltTy^qb_q84~8tsK+9rEN)^(nj7k9 zW?4;K%)qGGFOfSib5>A&E>Tsr@&o&No@bX6!=`>sFV5xr4Eh{QE2}g!P;op*7H-%b z$Stpp%*EopMkXs17qdF%MRcTU_n2H6*dV`ebLE5Yt=vDMoSaaC|zlKW(VZnOW6PZ#UPmCQ6tP9FAd8Y(S3o=d8w%b|;BILBd z!||{ZZ!pGI{D^HkBhe%6?gta)Bod)$Ga6>5N?`}qT=!RYc7K_fV*SfJ5#yI|%9Q^H z(=d#GhvpGdC+u}8N`L`_O^sm)V-h|(N>8)3loUrT`4l)&MflW=6Y@uC^wO-`Z947h(1Gobry0Nw{Ldsclyx&|V~)n+U)sRji0uu?{nIWrj9WO|dv*y`#b+7)3B$%W;jylW@# zWK7Cri73Mw(7GvW&YYG38S&aGVX@LO#v&(@@gz%B` z@Lz7+J8%IwUToh3Y3hMWFE)JG!*@gsKh493Ennf`)8`p`VjjNR+SBOa1J<4< z4<9Zu`7ZJBT{hn~58r3`b`Re@-`KO#!a)Yc=WR6nDi7b)V(jVk@a>jg@8JVK zGxA*?zSGKY@Zr0Cc*lp|>fyKA@&@eR4|4sd#MX0~hi{){>`eFYeb&wl5AT*Y)5CYz z@(%OxZh5nO_*@@8&xa3t_{NJ(`%d%lZMT_nm3a83TMZxc@NHI4qlfQYY2=$ce2LZ5 z=HXXbJfF= zciR6hXP<|6+kLBt@3Qg%``>$X?RVQf&4*9-;WK>rJP+S(>nG&l-TGpe3*w0n5BepY(;5-Z=~;obUK<->RS@aui}4IV!8D`S7Rhj;6z z&%>8k`GB2I+;(iYe7c7Zd~Nh+diW;GXL@FkY-^6;IO@AmMS1B{+N58rP2fSo_x`p+C_ z2^yYpR%hj;zF!iSIf@QptF z5)YrZi>aSB5AXVUyN7SG@+&>OE5FLacUt*Q5AVu%dH5!aH+cB;{fxhLd-$;B9S#;r$@7DiT5AW80z|Ie@|G4#^=EJA^@EJb*Fb}`X+L7hq19tq(_3%xW&-3!Oyde+o zmN)F--SSTJ@NRiaeE13@b3C{tB23C`8Hi@@^{-eJ>RU0(w6k+U7YFRr>!;qoaN!u zIt`!e;SaHVo`*ly@*xj@s^!BT-m&xJG!O6kVa&sic+%L@=-~@3-{j$oEx*LWM=amw z;cG0v%)?)7`F0P##PaUnhh?oFkAJvt!pr^p8eZQ0yUbp`&Hi`My}bM1OZW0!KJxD0 zlk&>Df8Wi^yYDMrKGU|3mv`6iUfx~rczJhU#LK7K@!QM0^R}0F=Ql6!&I4Y)+m3%; zeyb1PX#1B}-hChS@+*DhJM4QU<*Fuz^6g z;;&M?qxd|<_bI+a@lE#cMbduFZ&mWoG16X3l)UBxb!PmbsQuG+lA=w?Yd%fMpQZGt zEBF-eTnjfa*Z&LEBl)UD%l>A&}Pp;zKzopIS zJjK7P+l_|ui0O^UaFI!scfHzfT{^GlTc{Yrm^lGl8jl7B?yo2leAzf8&3EBRqcUi0lr zzEjzgrQ|igQpt}|^0`W0^Bqe593`KpAY-B{rn^O-eqj_<7*nbxWrY@2=Nqik9E1 z)(M(Vv->Ju`3xU^m=B-p!-stMX+C^~58vp+FY)1*`S2@!_*FjqdLMp+5AXQ!?t0l< z&+hw#m+w^T7TsQbKKwN057Vg3UKNU8rTCcQ?{bB4Z&LhcieIAm?<+ma6mS1jtfXpJ zd_?JKvispwq4_N3pPDbR>v^wyhtglH^siFSV`pP=}V51*y@r<8o-WoEv{$JT)6 zbCvu9O1?zNYd%lO|3t}8Q~b{prNWw4@jQ*Qv7(uFH!tSN>7{O@h9;T*D}SoCRlveQ+$u&S1SGhrN2Y*$13?%ioZkgor*tP z@#__Tk<#C#_|L#_$!orSn>BNewyM> zReXu!f2#Nj#qX;4M#Z~-^N$9tRQwPn->vFR^BqclwW^1eN?!A;l>7vxzfLdjpDC_bk6ixl6e_$I}#QtKtnFH!Q#lzf}wZ&G}_;%`%YhvL^LewE@kD85ti zZ!3Pi;=fgVm*V$PjUd=iVvuMG+yy(ia%5F8H$f7K2z~? z6hBPy7b`wX@lA@)Rs3Sb=PBO)iE^pEkm7%){p~6W1!mGY|LbRJ{8QhH>i^ zzo#pVdza$(Qv3$R<4@-%u5QKelVAe@NAdeAzEAOk6~9&S?z_H3H6 zil3(V!xUelc>D?B#8sjABNA*N5L5h-if>f>FvT}1{%FN7QT#EAZ&N(}gmB_orugF% zEY`z{KSA*;6`!T}4#j6HewE^fE51|lBNe}1@uL*qrTARMZ&3V6itkoD{*-Uxaukn0 zIh?rq6#vr%8whMwe7@oXmnZ#ytm4xYU#R$W#h<4548@wLuzf|#kioZo^ z62;%D_%_AguJ~n&zeDluioa9wD;576#dj!vrQ%m9{%*y0D*kthU$6Lk6yK%zdlkPy z@%JgdTk#Jl-ckG?6yK-#hZVn7@sB7zuqf&Ok10M)@sBG$UGYySK11U#9ps72mG-w-mop@qbl(hvNUH_*II3NAaDC?^gVJ#lNfg zF2!$D{07Cpr}%Egzpr>l@qbr*pW+?GZ&myUiVs|o^#5MPrz!qJ#iuL&W5s7EezW2; z72l`$VT%7m@mY%hm*R63|GDDx6u(9BA;o{C_^{%?R{S)@f1~&k#cxx5h2rrevcwfr z`~bx_Dt@5in-sr`;+H6XkmB1EznkKhDSmgww<|tP@hcU-hvGXFzo+6?DSmIocPf5g z#jjWV{)+EX{Pz^ULGcGEzFYAbigy%$u;Tj^{{zKuRs11}4=hgl{|^NrT8-x z->LYp;@2y_Sn*wopQ`u`ia$s3-HM;Cct`Q)D!xzg=P7=x;xABq;L4=`mnc3>@uiAS zSA3b`GZbI0_)Nt|6+cYzGZmku_zK16D!x+jd5WK{_>kf+RD4+RRf?ac_-e(MD85GV z6^gG_d`$8BJ7A;Y>y&(x;^T^6qWA{Iw<&(E;+H9Yp5ogTKVR`H6@RJXI~2cA@v9WS zNb#MDze@4z6~9FBU5am3{07Bet@v)mwm2L{L_l>R{S%HcND)~@qLPaR`FXE|GeS@_InEV z|6f%6)KK%^&kim6FwH5z_M~&%X9EJEMNg$gLd_qZzYen7a$Z?IFtF{2*YNM)ALrqT zxPt58p6+e9j(Cok8hg3~uO%Kx+$nf9F*{#Rhv55(cO`BYd^hnR;x@r6h<77y61<$4 zX7|JdFC|VRE)je+@gBrs!3&A^B+e5&pO~Luda?x95${c$DR?&VKE&yQXAtj891uL6 zcrbC_w;+y~Oq@>KEqEL;KdJO|2`(VspSV--iNxO{?hu?!d;oE~;A4n~5Vr|FjQBv} zCcy_2A4D7zygxBNz4Vj_-jkT0TzbNS2NLsBOHZEQFCPK^0dbb#Pl*p9&J_Fs@ehg9 z1#cw&5ph89o5VjR?)!%2e}y=cxLfdZ#D@}h30_Nl7;&fI)x?JrcL=_pcqnnZ;Jb;B zAZ`=9g7`?{Cc(>zk0Oo|AaVG@NDAa zh|>knAU>WrAb2|Q3B-M0OZyXN5qAq7M;s*X5?nx>P24H?MB?GZ9fGroM-aCQK884l zxJ~e3#3PBD1RqR1iZ~{Ce`0=8=_wJsC-G?Fu;78jClcog{&E%YNyJ%#KP5hyI8*Qk z#HSFa3*Jb4Dse#Yo5VjQ?)ysGpE!@WTkvzl`NUm<*Af>HcM4ujJchVK@cqPNiQ5I= zO#0BY~m@z?ShXX zo=V&%_%PzLh?@i-Onf$ROz{51(}+t1?@4?Paaiy`;_1YBg1>wi_*~*F!JiVJN1Q46 z1LE_E(*P4EihnZ!+kmlMw-jtO2$%n7KcMDW$bmBeAe3yEhF=Lw!qd?9g`;5ybF~F8CPY z2I4lshY`;qZW4Sj@m%7V;QfgkiAx0UNj#4@EO;RCeBwO8Up@qUF>#jQPl+!f&J_Fs z@dDy>!5fJ$B@PIFllU^?zAe)J#7)HAf}bP4oVZKyTH=Mooq|^rFCy*`d_VCO#O;Fb zCSFY3CU^z$mBdYgmlIz_922~hcnNWd;H!z7iNk^y5?@W6CwM+_3vrgdJJEWw`=|C%^c z@CU><5vL2@NPIJKK=7Nyw-ERJOWL2fow!@@bHuk2cL`ogyn?t>@M_}Qh&u$|PkcLZ zyWqQt?;vgyyn^^n;wHh%iGM>J6TFmoC2@)1tBLO-4hvpLd^d5P;Q7SACC(CDNBleD zOu@5>?;%bXJcIaN;(*}k#J?x*`%K!OxP!P`@Hpc8h`R(A5Z_PSDfmR<2Z%caXA}Q{ zxLxou#19g;2|kSYA>t;%2NOR`922}h@hajH!Fv)vLL3%6ka#t5p5QP40Q@L%mf%l` zA0y5b`~mSA;&j0qi618p2!50J3F5wgO8XOc5_b!Jj`&I9F2QSw*AjOMUQN7?xI^&$ z#7_~o3%;B9kHl?)R}eo<+$4B8@iW9R!AptP6PF0Sn)q4bu;7Kn&k^Sdo=^NdahBjZ z;unZB1#BUPk3I6f{;J1jg z1b<5WHgTrl4~YLtoGy4H@!yC8g5M;5hq&((X@BBw;%>pu5x+~^C3r3IM&eGvtBKzu z?ht%G@%zN>g6}5&J8_%f6~zA_ZW6qlcoT6<@KR!jxJ2;P#684e!3&8$AkGs!pSYJe zOK=_Whs2qJXA^%!oGy3<@yEmg!PAL16ZiE=`xEyOcMBdz{0VWF-~!@Li8}?KNc>OY z4#C;PpAokUK8E;T#BG8PBmSJYN$|nMTZm(V_b1*;Tq1Z+;xCB9f(H_RNt`G6%lm=9 zBF+;0De>3DnSwtc{)RYR@J8Zqi35V)B;H2cw^`bsI4}UXTkvzl`~=q1C3r0{KYjId z3SLdT3vq|w`-yq9zNcOA-NgL#)zc<;1@UggO@fyb^HWz(Oz=|TG~yD$R}=3+92UHg zcu(Ry!SjjtBF++AN6b%KJ(+@M6YoQuZsPG@pqtsY?TCSQnfpR}UoQ7h^E;1+2V$pW z7gWxK=1tCCSR}OxMf4F=K*YHLL+6C%&CW+yLNE!B_&QyPq|gSEi%#kL4fHhZ)pB}z zYj|7p+3CG$i`H-J8~o(y>5Drr8`LuyZ(r-UJ(GWSe)E=4YtGh90|NPHO=xXcpFed% zYjtP-l;TkHR}&Do=)+K`d1~8)<`0~&F=vNb3s;3&r~ZCI%MmXk4MLM;>9LahrrCNzIKq4{Gcgd&An3Ohrsjn0J8o8o(fS{v?l z#-Z`SLbGAhD4Ju)_5DchtAttxy}`U&8al={Uz`?dy*NFzs53p(yo<93x>fIyMa_R? zMOA$)T05+Q!B=o4IHCD-=PhhL^j-`#S5u8iitJs%cm;(XqR<7Q=5^ZKeZ|~gF=`hR zm9W`FHL0lnmd`{Cts03sV&xpqx?1!UYInoA`RC=IpMODquTy9(=MCH;&KTrjWt?@4ZMlam^iRXh=@7v+ zEBSo8BzE#;uQJrSrV-xZCS79W+9`L5Jl{Yy@^j5lODp-%B4E9Ark`HTLZQ8eI>ZrtcU4qkl7t}v?Q z9%fs#=)(c|i{8(eIN-C1qdyzG_-BZk*!&@E%YbdpJiNA{3S*FTs_`sFO=zuPrISo5 zCn}cGN$_tzL?{=iO;{qKO6*J#p0qc*jX6-s4)2cgl2J@p2OjP!Oua2 znjfSwJ)d9;3eu0KLEFUU&z#oYZQBMv^dNU;=$|zlZdzLjP1PseFVx)1;`Qu;&PXSH z4?|?ng#x~HE@jLG?52x)GwASz=<+>Vkr|2)_t@-=An^vwaf!o8d;mghVF?Dn7L+HRmW6q&BobFos&N}C3~P)O&X!qFUZOr^ob?Q85$NUrFf z+lk=;ye;0=Fal+Vw>jA#kzPzgY@^c|K6ef?eS+2Ee2np<=W!%-c7=2=9lBG=?;UD= zunpMxSX_27H#A)by5hG29;CeU65@N7lYmE20qiJbt1ghid=0CNHeJJ+rJqfMuZY<; zznVJAtT!BiQNQO@fWZ%)p4R+i^V&u4e$zL&HlLt*f^!(eP#I!#fe&dI1;%CwFro%P2x{Yu8i*dBKnekROR?8X|9VLnH zhTOJ=QF&XO7g=G)ijl_YonJZHDLDAB4I7Y|b&6nTPY-Iw_0x-)!8&B{cnE!letHfx z^!$ac+_LLX5Xh=$Jz(%z>1bkRPaRqfaZ*O-D3d40CHM_n0C`TtOl$`7t#EvLx9PJr zkb+A#iwpMb20a*`(1$iTeOLtaOh6vT2 zfF&mRDc(jNUm{j+a~4x#DkL5sCd_81p3E3Bri!*WPci|0ku^Mp(L)ifS5$ZYZ6{V# zce9@-S5z0@EGw$F-$<^gmdHquSW(>w-}J1gJ~yiz&x&d*E7QB8de4yk*Cj6rIp`|p zonl4xFj^zAqB{8RqSaj}C0A6i43$oSHM$>onrLKQ0tIe-bTH*=2ZX7R{uI@ z{=LF1x{>WNG(y>&p0Q@ zn*LMhZ-9P|uhn=_WUt7fajipYsJ%7kiR%YS>>0=;sqjA7T+|XD3XKO~oPowaI)9bC zsqt{pxY_xE)%YG(!O(b!(O4}SH#^^8s)E_QG8lGJ1O*7;ZHonHm(c-wpK|U%6y3TS zj@A1XQ+y&hKIODX%r>W(F;7a2HF3duXJ44uGWB<(!BGo zoAVG`ntQMjz|u6BobSbZF6`R2)Rg90Ok_6GDU#`C=Mc`*%{1qe-uHXAv^j6RpKzp3 z*iC~nXb8q~=cm@P-9fYobDU-V1M{L?o z=N*aJ=FGA&w;*Qf6I=_TQ#kq3(T7Z4&Osq(5pQ_KYZ-JadxCWD-JN^jJ zm7hlyO#L2Xg4>$b4#*pP{WH$>C_)llDQH&{HIJo}I(J?|WuO6n`cLU{OL%L3hW_}k zyM_7o2I+)zv1n$dC$P_AC639~Sw{n~isJJYY_HImml2P?*jBXYx{(Mx)7 zaI?LH@mI-;q<3{PpC=OeoJ#>X&}QdMJh{mV@k}dD!M&#t(*{-iAnQf zKR{-fA!i;fb-4d^bj~f#r||9IHrodOf_Bt1`T1xLW>|NO85OSPu!8}h7yX$vay7JJ zzU+NfRu-4oPBhl0IuFt;>!5jj{XMJdU)fzNLxa|G}!l zGD1>)@i&ud08`Pz4OXgCOTB8P-a@fN>V7M=Tua?!r5<#perBcOTIwn*b*(Ek(@IU! zQl(a^5>hPkMVxwI{5fu_ESoArr#jZA8cwMv(pfDVFsz{2Zv2FW$0o`;=PWjQ%aB`s zAziPXHz>|ShcqefG%1$9o=7p&q^LG2YHW&qkpgYU#J908pza?{Qf-!635tVQ6V^Jc z-wJ8dEvEJ_{;Mg~A_%oT(FA)Zw5}=HhF*3kjj*HgQ_eb>JUA+U(Ptbdcnj~_obQYK z<$T#DefQj>Ol-ZlD-^7AwxZ%_S^)OY)C^?B9@k4_dPRP-^Qs7KHb(v9Z6o=yQQ|x# zkz1T=U@V*BA@Qe8&ZXA)r>)#e@Y3FYQ0?_l%e*czjb_wd3$--lmk=*%Ib>*P@mqth zxCTXTdbAJ!2I5CNy+|Ig)LakjTuQHRd9)MH>P4gJ(Ul+q@xz{8BoB~o2cFP++cMmo zA|zri`AppU=n`^;m`Bi`8?mQx@;7s_A$D=hIh64*@eS0h*hlc;Tc(7cVGQ6n%Pl(b ziLi5>ae;A|>M>rQ%b`-n>;2>@lID)tUu-l<^RCzy#~b1)&6@`VoY&r@F{j+b=k<6t zBh9H)**fI+V9~G}cry+fy+fE9)25rSolN6yfoAJ&BcxMoawfpe(4qxSfG@9`oSSUJ z<$#un#(4|<0j~ZbCTm#zLmDqupG3mWGN(hYF^K&a2Hj~4Iz4I7YdEwB6aRWGQnd~_ z%Nn$A(xBVK$>IN?>^NFtl>O;rNjg8N>?)(I%_!T$Dti+CZmc-UBy2ZUI#9~qb#x%udoJky zE9)=V=B-0!emZ(>TEPRFE={B#J3jOc|ZDwZPnAQ&d7E; zzhNt4U2k+goYXng=seEoywmEuAgS}8Xm^%bN^1Lc`a1j&E+NXsbfCRavt~rCy6p7Vzqx|bdm}{tux;8?}6|AlNnR4 zqA#`#S;lVIlJhKYGNx>zr`a*(pHOdl^Er@ieiIe9_+=JS)|-n>^W2HQnuOBtUTfy8 zC)kggxdY)$q4&d_DrDR5J#sJR-8$rLUzozUgW)v&8DmNb0;ts(O?2M^OEBmKmKRjGa;5Ob@!+ z=={0SxwqB%6gr2s^Bk-5qV04JHaaI6J4=%~M;e_!H9A*e4rSS6Nu7hN&L2|e#KrG7 z%*V_qAGIFEuM@b6I2@mNu{d7Ft(x7@-w-dmJI5j(e4Fzr$Iq4p?am&2XnnMc^XhRX zcBM0d?%Z;5mRVH4E@(lAbCYexC_aF)?m0g_-p0uqpy@R%&g0v}qL1SH*v+BMP6c?z zw>2{BH5uQ+4aXi%Gq*S=H?bn$ai(xEX<0K2aVE>#tPdS)a~y62a;?BRrvNtfK86yk zGzsb?!Di=6>)->CfH};^w_mq%Zk}T*XSa<~IZK?6sNL4geu$Ksk@Y32&e=>=wr0L( zV%wdA*$Yk0G<=`gJ43sn?wB~g8vdri=&o~or z66UNW;*c-nJ&bL~{)kwtl(?G~YIz`+H+jPuyto^+jhHl0&c0bR*{rQL@(rRzR!&IK zK`EPJm9)=hr=!)>`LwHe-{i#p%o^I}Y(RFn<7?!4=XY?Z2`vlO_bxP@y^5u69deMd z{K%x`KmWB@{_Cs6@*&pp7va$+;c%1i$>&AvqYrR1MV@XFmYIZa<4ZqnxE={*i?OE; z4&>y#0(c;wj^)#-crt3=hRv{NqEY*cq}pAK+P#h1#a8Vp343lc39o00)|~T`37^By zK)}3;KQIEt6Kuj=6A5RVgu9r8Lz4-wGYOZQgx|9XpWgs`?}eB4+{J%x7k_;Vy&=pt zgr`sc6B@VWlA&qFZ7-J2vDqm`hIkL#=FFzAK&~KRfddhkHo#bLm}|jP&R}CfhOyu} z*~!BG3@o66{ocVH-vdy06Pn+11{ydF&^c={%Z&ZwZ{m1pS(8Wd$t&@Ubk8C^hOXXq zcIdtl?p)OTcJBj>JdbXD7v{oM0e**Gu*&%o@l0 zPxInNWQvX4l`@VNHaYi651-fsdl@p zjMkj9VU(RJBg=%TVB@t8c^8L-nD31;3~hD>*er{n$WEOZ5*y=t7x|5Z63liJP8;h1Ol_$SWGWB;U)H$=;O#Qtg%f_6R%f;Bw z@FPmP(uXk88h1GynvQPmXO-TJG?bc&C>HHfjvcJhHf*cm3&5CkF$N>;GG~7=M)tY6 zUYXGRiRtj(l z^y0ybd0f*u6P1|XvLN8BgtPY?G+{sh1)*RFN@#TeiLn(O!r2gKs7c%*E8Z>65Hzxr z4h5l>9~6!L>)Cz^y~>{fD^2 z*}NHd`0NH@zG;%yn}hReH12qm+_v626o!R=3zVIun~bs>jj~sg%6?;%br@wwTV?M` zSHyU02f*u+%4b^Tmx5w%I?{^NSbU(x7g)TT#gi=loXrS(Pqp|T7Sn#}d)?w60bBRJ zCyeTH*03|S=3D^V#nGQ~-g=fvdhjD88BOC7v&nf))&iTI59z5GIWCoY+P949HaWYQ zQO2pU`8;GWn$&sJdi^5Xpub{gcSns=t^AcX{qYvhvG_+8&$Rf`4W?brqLP+1=`6x@ z+jj~Scbesn2WJ}oHFyFVey^vbnQ#7kqT#>dOwpRN>t#})1vtpaip)U;OGP=ql7u859x`V-fC zMv6h(oL{uiur1EL91&V`W*LLJO2}?=)}tRGmKD(|9bua@)jIAe)_WS55GI^2*5P{| z;(PJIYK!v~Dy8=|r0qGA{U4t7jA^)y&r4p%iV0F%0WmJ&+Bd#uYU_)udEe~pXN-Fe zm4T`mF2-$gj%6o@_L&1a9v$ZuX)L+(P(DC}h3%ph|urdlw| zO!4>Q8yAv4i#}*w;{s@;<~h{ZvS!uSsN{p$>JXcuxS8xsEsHx44>38C(k#e1M0$aV z!TZ8ZPbU?f`5d1gq|&0+ONTiZoeFCft>Lc@1K6mv*_{iQa?V0Ew+t_8eQczwp=kZjf>XBo$=#O3S|zywqBO7Yk3l- zx5pal%*W5_*>H8Zvs_#c6pj9K!`x77!7yn$=wr#8Od8y5Puwh~ol=jBrCJ`4g0}M6 zYLrB|qh}7P%M5*Q(7@Iq z!6#r?YtFiNS?%%_Byg=Td(0PyU)XKj@kDfLC;AlAcabm<erFNaZUFDAj1C z(ph^MTi4i>Co-gI(pPsbkr8&r!>XehoP&z+8=#K6le8n%% zMo-@?!`HgrU%LsBXR@dNeJ#>I;o!;Tjx8WlTLY$EH*j7#*f0U3zh=Ina6EyXlNv~ zSHL5u)0o*m*~ME1Rk3@vtVwf~84b=LI&sSyW*=&;Pjmi=F4J>77f4t&Gx=v6kIo>0 zwM{YZtSj__x8VbF4A1dS@8)!6_i)yofG=*Y4&w z>{~b5GbbI-&S%&MrsJH)g0|)isgo=&JBZ_q*4HC#zyB7kMiV$cx%q8y zR98bQ9~oHK+X|$#f5!=>SirPs&iR$!WHk-ir9P zM6RgoJmhOL{5vYbloLnl*~y_k7hdk{ZL^GU%_z6tWKo&piLG+IWV2@DkPxD8SF5Knq`a0 z0}G6wW#dn<@u$1-ws!I1;eGbG)|`7_2VODgN&_FI(l6XslUF5Xlk?T3BH?_`82Li2 zlsLy4c^r&1CH}clI6+)N6yCSmC}gRT)k3TAZmV!D>IL-0M&bKd->^t;i*K{hoLeD4 zsuIq~QeKX{*qA8gHfJb(5@eOs(l+M+i_bHd=}T?;qiy>9Wcn@6`)DAh|B1+NaoGOE zhX9+8cx%y*@e%J;cFvZZUE{c+*R~8gjD-D&cRZ|h>vWaVCOu!uo`afKmH8vvLGE2( zD)VXjUu(`~HBy-lmOU(JH_DLIR*=-T2_;b4x@=9BSZ$3)ThM4*ZnZ6iHfPNvZu|Um z4Rwfd%lfOk+^XBpsyo`K+gL5ejkoH?NCjhIv&C8Vx*4eY4CRDavG{qF^8`}%{uQ~f z`Zr1yY;x{~^Yy;PhQkp~iCJ%B+8A@M#PFZTdf(~A@3XK!M^{2yv_U^{uEkBj#@UWU zVNieXyvd4_PCIrLWj~QFhL|I4nNGPxB%G=239UK%nljBj(^Pn^>7}%Ggth5waguke zKf&1;Ig4G;?EE`#iQpFJ=YKYp&LsOvB&LMpsXhHvNpOc(e%Alr%s(ZTb)|(1$1{29DT#oyFFPn zZ=0_7#RuT`HKbZW?TqG?-AQhH=R*(BRlJXxV03olP*!a~>vaV=sDK?q)Vn}BkT7wp z4K(id^$f7}NjqZw>V(1330NgA8jekhH8Khjyu@U}A8P zE0CsM#ZzQ)DNtBBajZKXtZZjXP0I$|E2bGhJ3rv|(jKa{d=FT$rb?2V{W&(3?fQMFo)1Vz5!w{9c+q=W_EsyF}VXhkQu zJ}^Mn3rvkF6M0D#-DFdAicL|jrf3f?_W~)SK?>`rbbgkU=Wc_ z5|60QHN`xSm4Wfhsw|tJ6{xi3eQsFYL|$Q)T6VFn69InJvM>?xs8Qm>B(D1rE$tZB zkzUms8wx0v5Xz%<1)A6w{7l`g{tio^iaBxJ9|6Vm{-Bt|UIHRKB=Dz+omuhB;!WxuX=GOi6E+5xCm7mVtHe`kqk-o=T6 z|I-Cu*99-K3w{HQrh@>EAoxilp0te_NmJ~kDkL$hn#hq}j(4MP2n=?)N>)#iNi;b_ z(e@evWbP(J=>v8pcxpy)s$&O^MO~j;=ec1lEOA|I1cc4|-nfU+bG1Ku*0UH*k47zK zv`-;NK|$(Tq~I3%OY0-7O#yRET*uft`hP_B*V+)X5QScIK!;;b?C|ZJX&1M)ZfY=@me+yni;Gu?#wEL{SK~!@Q zel-q{=qWgFq9|*aYuF1+#*$^iJtuydi#6i|4Rwqn1s{by6 zQ*2VlK@JHLVD>4S=rVKw7E41XP@P0#HS6P^RJro6?|&$&9cE-~tDI0@9~+32_VBAm z#rdsP3q01}QpTbVegcd_es@zT-#r=a;Q|@}0%H_|A#uwm6O@i;k zrZl||O??CsmDeuP2So&afQCPpKWJs16xo4N>R4z6K(PBFH0JSeBWJC-b6(TZlMM;Y*GNv@C0Uzo7}#<{v+bagt*6dZB6 zT2@sjDon0VwF%`~A1L8leHGQWW=UpY_vduqB-vOmOD$bG04(GnP!v zDvsQO+1ALgoWhDDZX@&-Sd6DmflJ|9jS#P=z_M?SdiB5L;jm0O^*XrVG&DC*wrUWw z;hdiNH@rMHoBad4OQ+Pxkpy?4gP`%GcPq_^<^#17Ly+4t) zD+IxeAyS&rtU$K8F`ZWDI4|wd?Fqo)qL=Rof;Kk2GVd= zESEK?99RoX!i<_3zTi*LnuTdB@s2o(PgFg$!L;hlNS_0@VAc-10>Yp4BtWzlghf29 z{^;|30$%H`bYx&UnB+$$t429meQabztIz#2^Yf7Jk4#sRa)c?zF@;xR>{qob*yug% z?9kdn{~{j+6`%>)Y_PC{H7$Ylamh%=dKXhP)|=a5eNM2-l>tyVQU9o@T-9}yCT|e< zRQP2d3J;HiICJ-}hRZ{X*FYKz&^Glm{bqDjMpI$N&p9PNFflbRXbjd*U7xj>fx82I@vVV>1UnGZkADOW!!)x@T?p(WZ5);VN<9WSF`7dzS@lB-2IKh zU6MKlHcL{`BD^t|Z>oQS@H(V*R`0!}Z8RFL77W5kt#>>XufmK3mfbaB>eQQVoiH`t z4C>v>&;y%$gQTqH9_vDt8}Y*`8|C5zl0+aO;vX;xTVgp#>#RnB2uyUdLP(9<^T@$t zQ8m>4-pO}Pka}6?Nr^f~p=d6Sw?f07Cu-DCXxGpfHu;1U0!f_%6Lm7Lv)W#Bv^pO{ z$A~%uQzzUTuk#GMPLYf~iqp42MC8hrxTHV`>qE7rcC`>v6}h-jtT#Lf$rRE!W@}eF z4%sNMz$wrqKtl5U&|{lTEYMkHgJg($r)Co!1lYs~aVI)&k_*bmPrkbh&Y^6=-DRR( z&%@i<+EpR7qgv2ON>J?-yV}NZIiHY1Al6RnB;`Lsv27v<(pf$CA~k&viZGjFaUqKlVRgGkiv7`*^NVq-17b)tOsw1ZrU3KJS zgf>C641bK!$;Uzx2y9MZ9Atzpg)p7*j9$pP29{Ht|5M;qT&Ge&#vBdvpW~QcjAQ=# z7^x#QU`Y3T8^kkF#wi-_5vUrj+zBkiwHVYl^Z^P#n$lx*S3w3asae7wAQsj)r~@x&sgk zvUB3-hdb!gg$0UF|wso!cT>Mqb1;N0e;lm@O2o$Ma)#tw+Ja_czs!CV@Z#y zM{D^ONyj}b;mu6yR25!^B)lV*!NamkQJvZ3{V%NzUd;l*qejTH0O9t$v-9X3Mm zK-(E_K~%U22e&)ruIEiy|TW6<7cmW^*@HyB4L^O=^4UBMSu~>l1t;BuSQL1I*rYa)0FH_JL)YzyBW#b z_hDTwfiNa_Q!<`lM^RA!7=FV0O`~XUZk_rHpwRwm;I)~F_^&wnJVmE=Kv_WyD=oHK zIR{0WADxePDjKwiWU1CJ*eO);dM1jvjL@lAZvz4jhY^Hwbl&OvuY)_giYNggPjE%A14~JH)Ml|s!?C(X} z(ls0Cnbf<8z~cP3uMk@Ve*s6!?gUv|@uMB>UbH}atjDzN!{WctPpN_9#bf;lMG?OZ zYhXcDB&^ccn3ccEc81G|*SW5&C+b34ZE_m@i6hJ}>gBnDxD@HGT*slPOlas^@pM07 zEa~j2@@B-Y`Q9E^W55)?^&o3Xt9m*yPOkln2>ZQfpsY2|5mxh$)Q9J3_|hc!Dh>ZU z;mbS1cRM8bvy$LTHGF{ZW=HsoHGJz+33{?LyqEA99pP`)@Xbl^t+Exfpcmm4c-xNt z$2I)?B=}|x|K;BSU)vFWM61w0iSYKMz{d-Nc)P|hRoNZe4D(3LABntd{54M|=-*l`@+~0#X84wN z{5e_6w>$~HM#HBOett*z5gOi1f-l$bA4BA7QW8AvtQO7>dP`l7&DyK=km(DO(o2%k ztCG_DC8bYEO8@lR1fJ5Q^rcDZg-DOhkpzZkM)>3dBG>A_CG@Orp77;kh(ax*BgRy$ zJvaAf+%aI!?P1zs^vRfw?Eeit8Rv-wpWHJTO)E^oH$~%%65lxDW4#A{lzKA=XU}<= z8tzBJ4FX&{dGy^c@CpvtfzQzJ4TMka2>-Z-uT6qivfHoVQNnKpAKKw>((qMD@UKr^^^;EOzR*=mu+eblrFX~|nV<`XH0S=tX&C*iA$iu}(a zzD4Xy3HR*}!v9Hxv*k5k!+8l;1-N$n9H8+IN`jxH;d>FjGzlKdJ2LO+j%@;E6RY*R z$Ef$ZVkX%Z>GRT+2;!obXT<*d72bmdrFeH4;SV zkfq_jN2zx3+rAcf>4L+A-+%-kBS9Tm*_ZKQ?%00Hh^>a;?eWHM!X3}HXt@OoYB*JG zgmGG_ef>`X8K?7(VcqlaV$buIYj~VMX%F86UWPMZAHw~|y5PlzHwll4MZki85+N(f;CL`<&7Ph)$sSpDi zr~5-slNX~q-hem3HLS7dtPEG|xR#{+rb5Zq^MXwrVYnI#`?_K&KtlX>zS-nLZ;h

XV>jB)xB!-R{^sd#G?}rz5&@mIJQD*$f0+!(l1P^OR(F zO3J=KXAfZZ8OWX}2ia;Khk#yzO=7){{l}i!tL6d+VL@r35_}2vKk74&LNRKd_pYx<-k4Va%uCwoC_N_WQD=E8FXBRWu z)Y-=*W#{Yc^O&8jv-jX2lf$-Cb+*CmV|Df$N!f>GUuMBxMCz*LZy?RS3iI<9z^DN- zb=VNQP){MoR%0xV5k_pf{a#@Iwn%zI>|c0~?X(lS$Uscywqsw|X&$6u*&&u~|9)j7 zER}a4mfwb$^ZvN~KF%)xtPOX!U16>L{)7EH)W&y)oqsb1Ya}>o|Gr}5J4W6cV!B*I z>`A<%Da)FY97;cH;Fmg3S%8FPvF2=5B}86nL*Pk? zq7Gv&AYBE+t|ArxV*R7}81A7feIB}_e*E(<@ORbt+o}b95nX6z_5vzF_m1DFxx`b!Wc8d*hHMaA7)TnP5^&AwMF+z&wHP zxFFY1^{yRStl?~s55W~^aLy6ss6}u^P>I~l zvWS>+3i6oz1U*zj*J0Xv3AEcjpK*3WTptS|6=pCM`#^C2aRmoF3EiO~P+rsLfZU$* zr2dAhI>D+?DJ#lE6Yz-IRY?bdo)$uMySa=tStqb&N9bGECR<@FfIddz9B8AO zf>kf9{1{6LQ+bVWs4kF;c4bLvO#C#kj^04Y+lGzMD9FKdZX6CEId+MiqLw~PLU4&; zH04?F-bMnPZfD|Uv)Y30uw`*IKt4o#Cv0UK{SaRgj~644$$3crf8cT4P~y7qRT#SY z4Ll^aX~i1QpB&9U+Uw!6`5^jqCVExqms$B$GrWY_gQjw-2peTqufoijIvC}ea9JK$ zv;@OTP_HgR5{jsAX#SP!Sk7Of$_Z%5gYw7ycQg#Z z{EnQESsoLmFw1i`7)gM?;1_fDGZ8|kgJLF4MiM4n_=<@bx0)*cXcRifi&EeG)%J09gE-o*V=7&DUz zxhUH5346Nx5FtCi9r?YwmHrl+l;WEZ__5H%U?9Ia)KB>?u5%m}0 z@mh5|>Bs8+&{=f5d8UTtMd7>_w-B#t48?#YO%xM8UrZzm@S=)=Wc3t0(Wolm3szk< z)N`ZM)r9+HFcLY=M*sOtp@Ex+@(>N8h2N_-kx8RW#Oh^dbpx2ed2BCs5JYFBYsc|8 z5W^lRzON!q)tkYdc-1Ma`pT=WbgIr{)zvg3v}{sR)idp?#UER&dfAmA->&@=@laAx z5EaSojF_*W$^_Tp@`7X)qye;IW`@5h7&7qpSo`;6`?oiKDY$I>>hVzWei46k!U8*p zn4~@zaWttFGwdB!t7n5@(Y($4K_j*ZA9rBhdKtxFWTl+GnmKDcSi#Rg19lnN-UaGT zG4zy@VX*rkCjPC?W)ySZlpD5)cq`QPkR6gZ`jI5Lc17jk{wC)daBz7z6n*tLl%j&) z22RlNuF~S?4p0>UwYEh50EATI|2|3{G^y**(fcA^P{dWZ2Y`O-752hH zv#JFe@i4f`m7px&pgMtp0HZT!^`F14OJ6U(R<_|JcHdw-4$=7|0uDaMn~+I5M}R$X z%Cnf_MU}L-Opxb^*9q}?@uIpRmll1#Gy${V->ScYfh1$Tkg;3c0nu?z5H9zO4Ih25rgYNjB3HtwApXv3&z2@NJ9={E5g!bcVf@qdCblla|W zJGulZyI+NXDe?BcW{RCRpJp0|Jj6P=fn2BTGkSQdAnPXYe9%|N*QZo}hy<;hP-O!- z`4uCPKjA601T;AL!sw*(rC&_+7&E`nfFHx7Qx9@Oj;cgVC_dN;xz$I8>2ho%($iQepEtuu>r*-N~fXGo}bzfCn3!BuxfOr*S zFwvrQYCAI3#gHde-MC*QAsZsoi7lFUH-6LrxF*{&U1wm&HhKeOl``v2Rzu@cCjis( z3r}!CW%B5I?FwFjr2W>j5;e%`#~vi0^-K^8RQdE2$qB8H*6Kp4;i|c;*juGnx0VU^ z$RjLzyBpPfrXAt!Zn57|v6kzUg+lG^d!2ezs9;#At`i>OJeRPzN!<_G%9N08&$pwo z)Z~xQJ%~M1vGkk~H`Y52fC^Y64j|ty@KREN_q636nWIUO{bn@UG|)j@tl%EN!{-Q2 zBBHrKs9G&-N2Ad!ZI7l=HGG)`1NQq!`+bJ}+lruz_-5JfA^Ufyo&K`@yA;2P!2#mwwaITquK(k^ ziO*%3(J|WquQe(SeU-o*qhQBDD&;E0? z8NCrp+Sr6WIPW>k`IVhzMrLC5JMZEG^m_RR%6e5?dUjbKl>^>}>(D)-t24Y?@sTL* zq+X9LpM|bmoanM&lPT2Wd)dwD;Rrv1Ykwo1{gEk%bnbTh^C#`Sw+E&W-y00UmJP;S zW4LZ+k=+q`C`xQ#j*L=8Roq;Qu6GoU{`OLU4xDF8n7h)^Zp_4nH_yURitk%COWdam zwlvu7ZYpdg-F|D58roQdJ~UoDnOuASztAhuHa4eMezlPe4jwtim~#+h;%U4w$IoGQ z<&oX^G3JccFUA1A4B?CQ{c89Rm$~ZlYv&Alzu~S6TLx#_NG z*+smS2itc3m}1O{@dclrvNo9qc3G{#rY>gvp5u`H3WyOEX0&QAO)`+Meud7e$BC836I=D`?Wy7 zj`E2Uv1$_4F=S6%TrJw8gd^MkYc-Nb&*Z!Dw z!@M;=X4(9*K0@m|ksk+k`|vmT*-yTD)yeP1-K<^y!h;v}J3E=#*de;rZ>{xM&8B;E zk+I~VUOhn7@T%@zjU|8W#kLnkJ#E2Qr=e9nyP5?Q)%0i0;9&^$T1vvb%~%rZ!!lLF z-Nurq`mjjVX&5X~`iV$&>{?A%v^=GqAfBURg%FCM+M>qg2yb_*K4Hz}#jjywN#w$Q zp6Ez!_8@Y$`rk-SlEp&(nq%iK(yxvz{-a+<*}4DKuZ}EU)2~zP-2cg|mPM_87Fn#+ z&mxOD{VcLrr=LX@&3vXTf``W&b8kO_;nZgQiMLl&o7%UK-2fU*d)C@V)$1Z8*z@_p zwK=iHDD2GdN6Wj${_u11d$-uxcwY^rcgdBGvhgu?64PKwu2^?GVJzUoeLC_HvcU!F zV)!Vq_Z#(s4&v1`>2m1@^mxE$9q?S^vyNaFxtuhq|GMvJYYR-7PT;^c!~94jKN%IU zjdSk7L*-#@%n!)3w&h#!Y;ESq1#Rp9Hh5YWPjDULg|G{p85Vu;EZ3@m$n+XZzSdhz6&R#$mRKX)if2(E z!XjN zoSj>yUmbM{$g5VT`}DJ@(+vGA>Qt$pMV-QY?%`bq?oPXc{@D5m-NS90`-WStggu{i z$A(+7o2?J6Ek)L6?z-p{nB4#J*eXv|Subn?38lyjwqmi#ojg@Vyd!ch0gbFaf^iLGj9TZN}Va#zrEdV|gU_Fgp z($C`~JE;7RjPTP^%VLU*kS77P?2JUs^X!_hLd_1P&aRXfSgdj#wbXCzO^RXQbV5kP zeuQn&VPKZcpDHh(`;b?$?@-soYUu}!dDkHY7TSTV&}|}J+DW`W9LN6f>{DE^V&-A~ z>va;XZm9suSz@Ratk<)W>t(TvB?aZdm&^;nm%thA)<7=>5^ReSg|38mkUKP%Bhfw! zvQ2+dEcWeB5cNuwcg4Pt$1Z&QP#$4duGri1NV|)z#v@{_mK1n_mLa~#CC;}9aU4$9 z^o;a^TIiaUJSwO2IPXADJh}tB2N(R~_i!U|xa)}n;rTg$ON0dN&X4g}2`&Z?7W79+ zSK!>pu}j|Y-Cf!j2KGD7Syqm^_)K>!{fVu3;1}(4PTPd{8=+@_z-Rqz!kDam_*$lVfL0-=R|2@`E9Fj5CI?om;zS6A zxE6tzKGbskY{FyLmp;@|c3$E@%U)ECb!GqHy#Bxv=;v#Xqk_cCeyZUaEg#u@^E3^o z#bQ0UKbC|0XSi?$d$i!RX&Cx#D#vW8j$g5<1iOgM$lP(@n|-!wO)lyvHzU{MBH(Rh z=bMqyIOK78`~8MxnP7G)09}DgBEy8)qlMX1v@{_f#F3b5Z5k%56}C!3Lcls6NXVql zS*Ldi-izAV$6d4!p0BzEfkEs>yxHw!B~+l;@9t+>^7*NzcKTxNHM3iJEU5lqC+rTL zS%$5kX0-dfmTal_4G>hY{G}`>;GPx1y?UDC0JR^#b*UX|>|cVyQpa+NtbhGuYa>Yy|$g1Km(= zP`9#|kiFJea;&kW+o1X~T+-I$wwhaZaUB7VEq?+(gH4@UW+z&N_s+4&rH2+&>tz-em*BQM_>U5n%>Eb^e`j$Dzozxc>b>ZQHL>h z#nc5&ySkE(G8-9|M;VXbk4L=()M3!b!$kP%sXxC>z6kt|8U$0ID@mP|h+iD~^m(=5 zS6TkZEDY9W)S6bHu9$}hvC9dz-4)Xa&5V;;P7*o!Fs{=RfS9Vk9+#2(A~$CGBX=l# z=?RC!i;dyCxKZ{*SaGv`9_$}*$(T^@i=Kf~V-@~v^fk>hPBiIXK@ysgzj5XZ;kxpF z0(%C`5zxMks@!c}`D8G@ zi<`@D^My7WVXTt6T5hHOc~-UI87}M-&z5hzr+;Dw*QT5GpLa3cA3|5L$q&oY=%uk!`hxP1uPeZdAdJ|-fhU{O5S3qV7SCEYVk z>uqZTkaP!y6MpY=e$o*%mzHHs-#BXCIz?!FOH3gWwXbePMh+A#5gXv+1y*=U`=c z9ncqtzcxZI0+TP2?~C4ZosK{-vy{^59Bv*Tijau1b z=^g12w6%8h@mCfpAO| z*4C%k>7cqA^{#(T>h0`lEXu#(^?2AdMj6{K=n9=2;j)u=8S?BB?b2(cOb8kTjO~c z3Y)+i?21o9qSgmno7+qFiUA0radm{4tNKS-LbWk_gq})B9j%(fQM%XK3swquR&mGcL{H_;w$AmjV-dfBqj*)WeiJKWg<0Tp z56}c2cQ=-<_Zmy<6t9aAR*$5mI$BVLA2kgXIgF`CLhJ~zIQ1-L!q-F_P3wcGZh7_Pg21a0 zM2H{{2#|e*_}|jm{dM-8%svU(axAc_q{fVntyAya4Sik`s6oKPWwRF$iX!5ywI_ZK z$m@(|ALg{8X{o?~Kom0TEKhA}Dfwa@S~UbR<>GXIggbCVi2u(z7k-ihRDR(E-**Wt zRiE82nYB(Ty2c~wEu9GE)}WHexC|HL9McadB6+9chsc*Zv&J4xtKAQln9&h19(y~G+*>3ILm26q`He>C28uZH2Y+NZLc)E;xMIT>!E#Lg z+orX_XAFNIr!{e*F_`J+9s#rf@wZh{hv8SV+9*zk+%LfpjG?&^{z+5@W9(+k9dn4) z-7G-qiU+4)Tz99;RAS#rakF{^g;As#W4u#MtJ$Bu*Dlag7cd^m1u8hLs%-osJV&32 zI6Yx-dfg0z$wXaC?Yg>PB=ic3V0Fcpe?z~FvIa`Pjd7S6Dc7U8E84fQthWppitDIN z>Hzhha*h?1yUxwcuxJPSqfB24U7 zWbH-U?jt8qMQ&XZJM4ZC?aeIP!S?ma~92r!ow>oxa8&9PK4)*0U#RtD&f&B7n)Ptm^x9}vEL2;S6_FL}rV zu{wT9jGts=h+*(Pa}^rSf0(`De8jD(X2igh#3HO>QFSQq`c_N@?KMIlqPOwU$Gz{% ze#f8xsS#Syh0e3POEfjV-k6Q;)7aLr-Uxrk(7nl92Tnp3-nxArWAaHD0$t?8YO&wl zYV=6g=QXzig+8x&L_c8y>S`25nw;0fq{v;USK4PRL6=#W>S^ri@-^X8*!Wk0fk)^T zl&m;}4!A`gfPo{2ibJV^G)!w4A-5nXBq3lsJ|BfC$9#O3YCaIec7tTwel;B@ApuXo za;LPWEntusBXkLn3LPW>ZMoPX!iSCwAfV)BVANPRO{=k7V`J%|v79VeDgcPNsF|s` z`+dR2bYHM3UA;aD1MvJ$(0-I4!@A;_csGY>QbG7yh>F)t*&pmmyK+1_Df@b*%2MeB z|2_eo)IGOjykOSu71_4U;sBqK#i(pMnk4wGV}#HG!Z&w>e@5dkC%k>$t46~MJ@Y%l zFV*m75`4LaKa2P$CBc)+{`}8zh8E0^{Tp1?b}YI>$5L?!Qoji4)SVvKpJasQV!Y(E z2ckIH7nu$P^g?(|-h>9umcr1$^$wOy8_RKmWgM_ftj4BFk#~cZ_gfQrQNou-sGlwG zVro?h28)4INZz1s%Qdb*5eS0kw;&32g#A~j6(XMhKx`@m#o>Gg;hqHCkR-S}HJnAb z8xn9v_H0Y7Kg9Z@Dm7MlMK&p0`rfjV)lCx)EV>jm_EfFlw;wi8dVg7 zEtvQsV#WtE) zqYMFy*uFX=ycEGT^&jDzBa2i`?^#em)e50H`Xcr+Lc`Z2!Ec3uLv}xc^{Tle{K*== zoba|>YBYQr@y~Au4|)b@cryvUT*H4%{FBHZ-J(tD3M;8&$q;34tUp_5_Mc>Gx@PDwS- z!R}H#)*pe|akKDzwF;UqOUyHB{gH9#m$6)pJxe>y?5#xg@HZHOY5(QVp8?bl!^iA1 zCZ7Y>aXwbYxP~>z35wi?0&FoC}*& z12Acq=pTV#8sMcX3vWk_X5><;d1#|Nvyo*dn33tQ%O=|7!Le+_C9AT)gV;?dDSpak z##2&e3Py`wYy`mNCr-eiIY8d1TFArZ0#*ew{Lyi#zWnW|uRFqIY4;L(Ph;}~0sl zS{KB9F^JFqgMv0cq(7168>|;&lUzqb%qEmn1Lp1F*%)>cO^7AW1r(94owFRCU z^DMwWA9v{?$UUM8?P_8R(I43S6;xw%|1c>D)qIU=F~(D>N>GI;KCRB2_d?Z!lHez4 z_%Pv1JHj8pBo5$H32*z`K^p#P!e@1a@22r@#ZE8>K2^itMfg@S+m5%TeY~>wh`Q-U zn~PXtkPyV=%nWrTyd4B!fWY;?@M>sYaRd`!6>Lv&WJ0PhG8Wf4ZVy}%yBV8=w0yN7 z`{P|i7ybf)hh3=>oP?>I1wdm7zKu0ZqSQbgV6mthP3y@v*ui5F z=FZS3-E=+LaG|uJkn^3TiJ`|@#Ea1X>rh8yXUA?N1k!d>R!G&{i4^K}9q5O#oNRS#f*nK!F?N{EUHhWJYBu>lJ<=BJTV4YSnsAgzLeoeG>tK=Bbyq(@T&ph zQu86zcI|n`?*9pI>uPVJ@VsZ-fj2e$tArnv1P`;XDaMe{7wOAo}<3tC??GBE5;9yYRoukXpb%F!qCojS}tl4371EVVI?~mM7>mPgEW+FRQL5ozC%oAa z{zVPniWtv<&(iQw!e_LDhrZf$Hz&d4B3b&9v4mG(Q9FI@dr;_^Pk7t@nl*fY@UOuc;S5TGpQPb?5xz7TK5`ubiknlhVopaHt^v%T%IEu-pkR>ryT7JB2b`q;(jS;XQ7Pni{kNxD7YP9*b3gsL6PmCNCyg( z4jd;&(i|rD53kcS!rmrzYeunkYbM^as4k2V;*miZ_kDpN2zdVi5!i0TgpMAcY>I#{gifh$ zpuy%>vVPVkfvXV$orQyFOe0zTn z{L^jyPl7Mi@UIizOu{erAO3nj+RKLj%!g>&H&-TVI!%`hvgGk7srzGT_xXnfx{lDc zUhf?)?S7ijJ1H5?jM?MC`AKli8ZJP%TIn{D?AMM@CMCho*YIA#S9OG+tK*qLN$`_2 zd@sV6wu472ZMsvF;0I~=FF78{N`m)UH>Sqk2Yy@LRG8QYKgQpMYcKvFe5f6j;DhoC zA08#Xtz$a)gQXh2Dha+;!%rZ5O%gnPu@UAiLX398C-5PfHj*Xn5#>x>l4C!0H%dD4 z0rVGInwf;Q^=6cYUJTVxg@9(P#r=NgdYWjYX+R-A9XzV=DtKcxDb`Z-jZ73PjvpjlJe&< z|2;?md>GCeY(7lWHQd1(CX$k9+JL0&F*@7N>=8mh1)9gj8;L^mffX@J>}vdC&*Lqr z@J)eU5wkUVPn$KR6&neAVoVo{qGikAfVf@PY;93kpjm{YM`|&;h?Y-K<^K>@i8%b9MHE%$}~Z2PI`s(%EB~ zU8=KBNy_%=>`R!Pud@#!!gDA;TW9xW_Nh91TT=FMI@`tU!&ghgRx;c60bdQ3c0U2N zQ`>d+)6BNR?zeRI9tcOhuCr$*W&c}ezrpOkGnFq~U z=(M80reh1~I0?}WDX^lc5j zme8vJjqF*>wheTl&hE+VXONv}oWx=>P&%mal!e)sJMGkc@G z4s`D+s3s$6SeOtBbaao>VGJu<)r@9~jASw9X9%F1MD(b=nv5^&FKK3GE{CfqZ zi^@`vhfuCFBDpU8WT-NgxB^w2FPHCMAij0RjlDGq3(naP$krkq%r> z4VO!}E;byO55gbVB!vfQu`OgFTP=26BFG z>T*x9+~Xa}b=BY|!EI@mYw(Yu0BVwe>v#eJu)8)7^;vKh zSgrH98;dQ#v=?->kjMRVGSOeE1FLrs3p#YR6-fJjV8!2p{TKw?0$SAPAOie*j-WP; z?`qI|g02(Lv@o-6PA%5iH#7TrWGC$1K5vQhq1ePbh}^@82IWCJFuukdM<%x5a(y3t zZ`Ep=4c~Sg|TF8TEMg1HCaH;{vOv~>F0po>$C^1^Y zGJW_yHs(AZ$WkldxIH}5+%!xga{NlYR%f5}M|@#-Ds1LK?7AQsSm;o)AI2J%As>(- z9pMKkeP}yACuf_a96Ge)$7lc_{ZU_<=#S?xZqe`W;XU>}r57xyaAWJzxVsPJDdlG9UrW~;pXi&(6tmfq}`vT4z!e4WBS7ppsA7wnhHFulR;8QbUM zu+VNg-3Y~in|ucsn5alLx9m_UkO#rN0GH3)uuLsp)N4cp(b{EtCdzCA2e}Elhf{_K zLM$^&DqpKl0;Q>)R6*pGLz&bT`{fQQ98&VH$!&@MjbTpV0!GVP7sMh}+}l1~rE7iRtW z%9y0@(qDa;bic(}C@lzR<~N{TR|YaJ7)nJ-G740(Ee>*b&d!+jgYY*r@tI z+tU0aIII`OlpAdcRNv7NJNU@i=$&9jP<0v7WqKtxgS~wxN-e32Z=}`zoYeg_@UG_Q zSj|A)4y&m5ILkf-WAlclLQMD2bf#qB|4e|$a8;HadZ4uWf^A8{1HeY959^L3kYT7tMNb`XsU20plAN3wDJeiCRG~8clnU*>*qiFP+^3 zLo4-^&K}EbyPt^a>_0Gj2D0gbQuya|S#qLPO#=lC@DLrS>tJDY7x!Kc7elQgKnVa^ zK4zh<{BtawS5H3qS5Yqsasfe>t5=4ic>Z0rWkvo7H~1Y;+3+OX7A4pHcxzieRnrme z_#&5LpFn#2v)=nqZWY}FMp$YWUSfBEU1~c)QO_H;9qau$a(;t{H-47h#XiBoJ!BR( zz?FiM;>g8ZfI+{(9tRifW6l}Wz%(K$t%rD+7K>oPI;oOS^d!K+1Jl{DtKZ4@hE{O%;{gKpD>jRY}ah)TFR87}n43bnUc^^$%#%!DH*zcve zpD_DFWXJsn{6%Uj#1iP=?%d-wQbXV!btmj2W=iE1peFg8;|HQsvHxj*aye_WnfrjQ zZ71ZZ?qF^4?c_ZF*%}}3_@n1u1>36s60z0~qlMRkF8;3kIkkCAp+U43yhzrC+g2kC)O$cq(m+MtM6QqG?lyB(&(+T+yQWum|-B zT{_}fvMjs-wZR=%Nf3dpd2V&#B`iHE)d?J&b9EL!C^jk{K=`cT*nU42O@4`7k8*>i zEceCjH!_t>FhZZh&*9SiDWFPqgHm$D#A}G;@CcAtdOIHWCKgA=VQA&8@JBGlz$?cJ z6Cn2D$P9&jO7kHXnBoF}Alf+GVn}?#a6SW|W!Et5$>f?nq{bWFD0#DeE4rPb*MWm zCDmBsqHZj;b)yMfqh^hyjySs#D)EAjVp7ud1N9(sRjL^|R(`TKn88Dt*xL!8R*{bm zWF8)X9s@2M>l9<$1Y;~a4*Q^EQ;}zv_v`Y0T|V%s2ZaOMP_PgMa}osu*mZUlW}2in z2l_REeihKAfHsq$pEwG1n9$D9t!^Cm)`mARgk9#i7_P$bnwt7UolRrmCbS5~(hZEk z6Iikitih8TtLyDOO!%Kfa};j;3F%TPt{rKE`+?P<>C(H)=kH=wNauR)akkB3YeyZW z!NbF})O%ndlm0L2z^5FSMYDBa+4#Zx)Z+FI~xvR7k9U zvI4t*FVz(U{(uThRFHrNLH#sAtq3d~_$&?YC45FZc;L79>oq6Ax1K8v=tX!1UzETP z_<4tfp7}}e%^Lp8e8AUsgtzy@P9nVB#m(37KNG&H9X#m2g(`skFG=u|H2hnHFKq`8 zdd6saQj_2ZY51oJpVblmor8jZ>qQBAQZ@Wtgl{cKv=?V@W77yuIe0Z+7bKP2c#iNX zkLBu6PT&^mF1?&^c937A;YtWMKMB7mP?@IROoA`h@MjTzQagCiVQBg@lHg4Z|07gH z4eAJgv4&TO@f>p|ysdBQY-wi-;kOP+@Ta5oe!=yYqgd~oNEho} zO8^A+9SgqlD+M2M3jWD17<+@%Q5;J&+j=B5%cIHs2AZI9K_+^r?=eFhn;|VKc#Pzq zg62ZIK0?IjnCr2+SR0ES8Z6l>lCoQ}rSUtNy-jC7m6ZLa&aP+nN@VK~u0?UIYGyuh zm8`;9sTSlSSiyKgvIe<=23=yDwy_D?P6chGW&^xQ%aeqDOo|9S=qKycMvhP_kr>0Q z7+oOzTggNts~G{TEOtyZu1>ptlH2vYk>2Zb{7y8^+hoiRgDnUb*H1LguQ%qD^3616 zuJIx8Wtf0}hRZx1bNPEN)c4azm%jz^M*sUJ{)#>Q2Tq%vi!tX#KFNfE%a!hm{)xKd zTc)vG>N1xDIsRpGQ(8zKgWtGuq1t`8R_=QoWzYVue5T)e+uVYi0QQ+%T6{d|SOq{< z6Z$(Ig5LtZ?!H!^1qqGCX2m)WJiE`Dl3t8Z&4*B}*ecE9oq-y^A4g4Ak=)g9la%O{ zIBFhqTi>=X-HfY&mw-;Rssz5&Tvj=?CLC9-1W2+f&eq&nv)l?ON24z4x|e59~9% zKKf^TyVPa)Hq{?G0TO$r4ik9pHP)u+Z1iic%6bk}3}1bHYv;;CjYo*^L+rsb=i}7- zNMr7meCGD=&M6=7K@0HJWQ51=#^8~V@z5^R7CiC~Bf1I?7(!)wto3GnEYq_JT2aB^ z7y+fPeorQ5@O;L?`eNM2hB&C$Sok5oAVQ)K6DHPsK)I=ya}&70WMK?gKgBOLtMADyvRZugU$cS_ zP4`F0*>qX7_XW5F9_loXW=}%WvO3h@5zQ{PV#Suq z{?3b9b_^iF& z+-Js`G7uy!OKS ztAcBC{NvB`Vr|4-Wc_|vRnGzb{3Zi8{@^CHk_yktx88j7%_3_XMDrO0S`As8=?&vf zj*~$~?q<({AA+qQ>M6YWiLEZDczkDXbc)+cWL>&>tc{S+mYqT6Mumc!<1+tk6RLU7 z9MGLb{;dZKtc?kLe&7QlpgStAP7bb9Y+PH4Z%zlU{=_w-11{HZUwl5m4d+=DG96*#jf0x|g z>wg<%ii48(8k2d!PkuKHxGo^BhdSUgej8U;2iJD!5OLkH;l?|F>muSR?0{=6-hZR1 z-5gxiHZE)Mt`gwNC$1kLoa8o6|7~2Uz~!;lijJHKP@?z`P}o{(j_+I)ErgQdV~#y> zUg&@k>Y!ak5$Awt|!OqhJO~ zCABA%gPLLcRh@n@a4h7`UA8&YUBh?)WHod5LjI5EQWwFgUsQD4PG-aJB|Em*83r`#La>I-ABf@uQJi@li=P=MTtT3o75Kxt=_PgH{wUlZ zg_+&4@UDYSt8YOu&kA@P7M5#4rRK9x_^hHkcHYvl+GMAq$+gwDJ=bfMt+aZ{x?hCq_b~lc8<=zN@xF%*+X^q z<;)(avwyF%XEOUto&6IAUCVdrx_j#E&dlzjvp;6`r#kz`-$}zh0+jl4pfrp_w&go@ z_WL?}5wjb0_QlLLb-S19>`G?8sIxPeJwj*C*V%q%SLy6ZOhGK4qqFbR*#@(3)7dvO zJFK&>)7jhbqb}3g`-uEXuP}A6&c2JK&(YcMCS~{5*&~_VU1xtuz8_TvTF1H(~ZI!6m7*XdE<$N1Gl zgoj}&6OB=I*dkMdV_7Sq#(KnXUj6-Dap?woi)<{v{eb()(~XC>0URT3Yo-PfoPEqxh6{Liw2 z%=Wr>sDUt(<>z5Z8I3%%)5M`x&okSVz<&P{4CEf@q{gFnZ5-wXH_Fa&$8x2%BCLPW zAA#P1McJP*l$eJF`!g>g$13nXPtw9vh*ri8KQU1<*zrQ?Ml-J30Z;h34R0lr8+1^&CZ(~+xVK)4Zx?8G7 zcFJBOyuzM~UvLYT?+;J0xz!~$5NHreOr#xL=wsb^@1HDYG6sQ)YRs1G5zHQ=vzO}Z zFOZ~O)Y)0g9;dVC>+BMkrK-}|$1wXwoqeCq{)DA()7g74W4F9mXJ4nYS)aO0XTL@R ze?_~8!8-eWl6H>HzL436baro@{UWow>+ArtU)I?_LyIuZf0)@{XSKKB4*QF6Sh(Vn zV{pey5iVpXvWiz4bA4GDQe(qWH0?h=+@53|!QJH8GgE20oAEJ+YD@z(;+K?-GbeaM(8gz?nufv z$j8ot3E1f{qb7G7jNv-E?9n9fHm^@SOCKsE-s3l0#b9%;G-t>5nwXHyD|~A zV)ic@$ixhRdKeB{h{3HXwg||iHdH6;VXEBE>6I+OSnx^h3sPwW$BEwg~qtIW4LOCL?^dwCGzpSvBh%P{JLRSo_B6 zoEaI4JtYdZ=D_A0ce+AxTF0o-`lRCM@E)r`A}TwGPpEt&_I?mw(l{0xh>Lb5D4P>z zvi@v?G3OCltF=K&`IdG3E)J$8^=CDzL5nl5IVYlD^k+5ZkV?!UhI#{`Geq*ON_Y}fe3%3S2|eYk9N7(w=Dim8FUI8d_mO-V_ZxK5Rv_4MtlCnAMK3~ z%53n}f8NQT{gKal1M>tPV`-PGa2qUWIxL@`ScM1Ox`S|Im}cmC8U7SqhS`!)M?6)9 zP)vLZ09uWEAP1+ViBwYI3B(?`_=bCxn_^eAvUf)OXGW%hzu1q$aWwf`9Q|VtPpxJx zKRMLGOB>{qL$}glIG-H4Lchqo?wo;qL1Zk&l6ad9`BmEA8yZee=X`HysD9CWy@W4_ z2dzzD2L{8KzH0Zyp_QIsE13EqpkS_J>ctT@O4;wzAoNOZGT)W z2yqcV;DKrLrq}_TU$gm2dw&>U+TNSVe|Y1N42)>_V?-!Wdb<-}hs}}d^}h5hOU5BB zGIk}duY+G#?l-J$^cAyvz-?*219UnfV>s}88xz(r)q{cn0bBcs;b-Y*P#Gs75HXBn zWupX^VZcy$?6bLVJXC-yUEnIQ4*8xDdXln-uaX1ITEBhKY3at2W?VDYV>y*%$T8DK z!3JS@#|ZES=9smPY(xqNFuT5yA5OxY2L=IasOwl*gD|kSy4OE9ft5>pUIt-Y(?jmm z#LRfr2<>2T3zO4Ouxv8i5&eXE>@=sRXqUell1uK8!)a*c?E;HaL~@ljgoW1m^Y>sM zik7n%ANIu-4GepPwGvzmPPt(t1$;MpSKB$8xKjW7&iJtOhz~kaK)Ys&E6KtG9XH?f%)Cr$KLHMBKX6TO=@!*sZLd+8q zF++x+n=<^kJG|ta9|&Hk)xxHI0c!~FrStohNczjSh2{o_=9y0aUfe&qV@aa=2b3^E zr(^C->p>Fj_J0a*pfH%U^WY~2So#lN)a7$WecOqo|WxVt<%Kj=<7ig-!d{e06 z{Y}YK^=wB~lJxfj9(yoRUy|GtI{PUyoO5S`Q=X6}+$!n^ZAHILZ4ISDN49?F=#R-y z{za#cVl*?Umu?3xq2l>K>A0>25}vgPFR}4p$|3dyiaYg0`s5NM;(_;tm!L<@>B*KS zJZkwdP`f)$PM;}Tq)l=%)$oG~jd!_qP9sJ&+X7C1l9 z&43lEh>vn#0$k9_8r%KaKH4!+df`2`^Fg4l_Md`Eix=5LF|YNh_(~qP^7pZ2*4{tA zZWqQ5&>HCw)N4SY2d%h_1P&UT06`bFJKPTkVMcU#`T_=WzfMt1#yPVP0`5__2)Ys2 z5n0TE4M-w!nyd)!3JZRdt`<33-sg{RkhSgN)M`O?^nv+f8$_MX=14_8q3F1iBc~_3 z6YOtv)ckprz`b$s6E^vgl9fl{=@WJf)bklfQ}u`8{C>^Fb<#BX!PxdR-QJES+%E3W z)PppIF8L9os?+omi^NBL)+1d#Wg_CPT7Jh;6z;9A|0jj(Aw3K~cTzH6g-&+#YLO_V z9w474AV(kQf7&cU+XtK13`$I0RDj|tu86CGOmeuS8u3IGrY;S%fdVaO8~xjiR3F6j-pW zCCT=-S)3J{@0d&luwVz2Of~dm?bweYhHYY}?vR01L}Bq7;a{${J78h>iKtAd>XVD+cQBSbfwYZ<6BCmYW7gZ6gzv8; z53O)eV29dt8hPzR3`x@x0Iy@(Kyu?%? z=qD;W@S&%1c=|vLI8Rt5k-7{xxer5!z35n$M${2ba@}ecN6~4elO(vHQ*P-v3x)^U$sdjwo2DjUV4>b%ENciDZ=K>fBy8xu; zQ^qbbmK3%j)D8`UOR?j`AsDgtX3#D}l0v$_#8|}I;0#CXFS>FZ5*>oE$Zm{9{y*y8 zJihAU`u|UaKveKXEgG#$v{8etEmYB@fF_2>JDMm3QCdZ5Rm8f0a<5X>U=q#sdNr-u z(pD?gTJhtCRV0dpurvYdg1F%dZZL170xp0X`8{7V@AthoA!_@1d_RBu@__q(zh^yj z=FB-~&di*_Jv?(mmi%+_fE*2RL?uRs^sFTL+X1BwQ@Z0s^VCtAmUQgdEvLFWVASDw z+>*t3d_JAFE31J^{wCz@jPiTJl$|F-*M+4b;lxO9SE(~>+Tpo1QwkVuzhSg=!#R5g zYHet}pN#JVQ%+9We*SVRcIMk`orc~Xw!UtL-eao2cIfYxS(b1&h8@cif_aeCsPy>D zU_!EE>COn`g}EcIJBDy8W3pR@@bde#r*`OKaturvfT^@LixGfiC% zO-+KPbbBLW5@A-!`60Bt;kJ*gX#u-}xhoPjJ}pc^&V_*te4Nyxfq&v=-u%|44QU{o zmInyVlx2s6)Dx)Z_2l$RHl+9_(}f|D@mbNmo?B5rbv@b_1t7_$a;yt_bi zr2f!Qwp&J-9Q4uG6#DLaq>8VU#m-CFY^)`~*#%@1z<84ES;O8YG>?_`Xm!8mTOdS> z#Ldl86|mQw$Y5kdTK>s0s=vpFEPnQMEq@T|?`(KJ>8r#OK1U`qh zMsD2Ia<^9hhgJf>XHtB$*G8AVh$nnB9j8!ar6ZEoWf54gIlPk64#Iu{5be;e1Jwu z&NSJ^W`#xx4|x2^>G_~7-+$kP?GNi48{p9{W&_V(t+)c70S>-{5ZjK=Gr=32Q^DCx zro~<8>*g=1tnM8YZ%38KS=si!U&a%8h&TkTeZLZwa?W2?&QZaz?rPV5t7TwR6V7 z#W&eG#f+GC26qYVYw@08=QRCx7gBSMUF@WVf8G}vNS-RO1Mjp*c2i7yd;Q5&=#c!W z#Y=E|{jLfQk-XU=>0`G?xw0u`rVstsf?8*%A7r~GxW8V$K8bO7K0zM=p4YSKyR3Fu zS9|go*pq(*2L#XWJYn&?Z)J+7JNs=Hd-D4Ky*+sp==jg@tYfEcrindyjrjikyIMRy zvnasx1=#I}B};RB!-(Rgm%q-v^!8uk#f~0-y5+cmNxBPDd`pIKy9Uty-Y}LGD_B%y zkc^~UDVv@k7QW5q7LU5p=K-`(2V zd{Scohtmw?Am;>w-?y|4X$8UVW)ia!Riu4UCOFS1XZ=K~=|{zKRLUzuKPZG zHpMb0nATzWSh?x0Hx_^9_`gjr`bo&?IObiN9n$ zfgd5zoIDOuRR!*7%9?iNcf;bw{-jdZ9L+P3Fh563;b_7?izmr1qPpg@92R=MrK~Aw zep9+NBC&wH#;Z#M?P&FIq+68bTP`j4Bo#9mKPSd$qPxo6BeJeurai^fom)*BSKi( z2n%58X<^~0<74O3iyZ!FvfZ_9i-aQUkD&S@wP|6`5mu{}-C-s}HzSAZ;LIGybC|BP6XW%nJ=`HMgm#Pdr!Y^O|rCzJmfTp`8HQZzf3 zR)r*W=*LjP&8U1kCp#L}v~%c35bsWv9jD4ZA$_QABY{pugJ9q}akP+j?Oayzt6f8j zVJ1I+JtK622AV?GVAj~VgxQRnVaX9W{^txkD@PlkYAZ))*_RQ${5NgXh~EB-VsU{w zS_2Nk_x%||Wa;f!ktMbC+re69&f$*)qi2+GtW{x2aT~RJ7ojO5X?O=9ujZXi2#JSPPGG$9 zpQ0X_H6$&w{Qhv9^w&gSZk8zVOG!o65iaZAcK+r6jzD%19*w>B@l_`?l#+wa`$&(W z_wX>I=+mHCGNIFgxXqqw!S7t?ZJmEVEq5pD1)D`;KIx=X@K(6!%N6~Ii;gMUce(F!(IXXoi;F%( z(d91pH7@#MMPKQnujM@i?LrqlUAF%-U39*3_jI{E7yUFrrr1S)j+y20AG_%OE_x3Y zz8}#DqdG88bGT2+U&u;ZFyE5@CVSmHTQk_4je#I%%R>;Ebq+OrvpKtm2yGqagYB#Q z8@E$Z$`y;%W4p=!P-gxETz+#pS%Y$#3xH#l|9cfC|2AFgzdSSl>$_ysANh~!ADEf{ zR+rzru&rzTd)fL~dV7rCPo38lJaS+4m2R3d2XVL)I*e>~cKpcKDx{5F+j*u(jsW9* z&`*dppMJFi)+|?0W0&g$^cQ=%`DIw%3qrD)xkTmV+&&KsC#U6EUfx4_{CDw_Xy~E#Vg-{SyDyO2scb8njJ}L|E znPtIled|wuet#d7+#p0 z-Tp{seYP&ku{cViEq}4ItCANOEwjysf@-Ga2K!fILyY)UYk4lGH8z@ZF@iSdvvlAZ zuAL10mU?mA$>}Q4Q3a5S&Tz=HH0xQQv%R&kW>zkn+CPn+W)A%nfNG`}@-0tOm5Hjt zqDbAL5h+7VUz7ccJ^)p5xnF9*ebzEh$NPGOA9z4zN4(ro6|`Tk@_T&ZU~9j(aeNw` zwmzXWPm>aEQj@(rQH90`pc8QE*CzUjSUtBg;{9UqxEdNs7f1r~S+v+Tn5XJ$QK;vlc&&DcKe zYsNP=mx2`0M-RNq;(9sSjE6rj@qP7lepYn7NH8D$7uTMKDNINEGo9OG`)PFG%-h3R zamkm_a{M5+=R16*%D;090-~fndiXb&KUXA2+wHzdI9>pKC;G7Xc{aq)8I|#^*6pGL z0E^ne!jV_9E|%XuMB^w`{|~5N?faJc3o`1rcpP6DxvW*4V-d{2(a-v$vc5t3- z{V2jQE(n~EOPXF9L7m+CHmX}V_FI?LN8)nXz*QmNWQR%ZQnu#59Q)KOc_vc3P8PrV zt}@5g_KS{~^P$Lqbox-HyeM*a+qTG&CKF#aB0U>Bz`uqz1ayM8 z3?YLp?_NnoOLQU@ua#Aa2?bS&Ddc58JiBkI1{cL%s?Pqpx@1#ykjp3WTN!CS$h-!R zv?8u>u6fqI4;x%KC-x63tyu)FF8Mmf+=KGF_>y&W%8m+E-u{Lw*Nq1|Y=e8Gb4?K} zf=lM2r^sK-;Q`$7bry9d@sSiKHq~!53@>Oz_t8ZQ=q*!&nyS8wu1WRM47#&j`~_gT z9UpKeSWn5z(S1VvKxZ6R7o8~|w36nwd|P-^`i?x7+Pj3oHO}9J@3xBhAe-$jpT`dN zXLiB+=%y6zS4YneQO~nQD906>`oi`@3+Pu@s0)5dy(#>kCB;-K2KYbCy<7bMwKM)} zE9PgnU#I=*?B40z5t%L0c+2Ft><8c8={w!tppUF#%23JwPb9yW*vB4qzb2QSl7^M+ zxi3BkCZEV*cZcuDquI$x>$zp%oXEA~NHqi*IY!UYS?7CAIls@^u9=}1xpQ;m>fL!2 z6R0X#8f%mLV7r9Ega`J5;PC;x@sP9Nu%dlmqhIBzq1irSNdR=*_yu+98b z3{tL;%M#x!RKS)G)H6D*HJSvtL|Di4u>4(MM!?5MCoU z7~D>0YKyI=WWC{bRt2OJ6o3gEW%Vowdw%oJ2r%1BFRV6r> znRC`Vw3B-x@zPlp8Me7PIsJIlDBAO-sRVD;$sb{dtC$Np$M*9VQe4QNrRVDggF974 z^M^D&(#%b3SzCvV$S#Pjre!b!GAxq|eqXE(q$8H_^I1A(fMpeSYYb{5w+nPbx$uYX82|Q@)rLsXGGnIeJ;j zkvst@=MM*8^|s%an2>)p1!YHSKkg-y{f8XXi+>!{gPVneldkeK0A$)RoVG)!015p0iB{|SI49H z*Nk6MSWp>9zpIR&jsN}H6~$I3a71L`H}`_JKu>P--)2(k52R>+T2Q_n@27|Q@_#bM ztxi25)Tz(@OguQHQmY-G=l(uokE>K@4M5$_GPK@if(PTb3ayw zX06f#?fO(&5op&>u2=VVuU%WU+77|&mF-vi2imqfeqh^=n)FhjOEPAbl+sc5B)Vxf z8loRt`E$W)Jf@*kSD;NUH!ooh$7xS-UyO6_L6GaFC2{_Q!c5+}LLeX2@6!X>I~ub;Hg1DqT_OGDZ%Ep$R?OI*DNZV%Kut~lzXqQ_iLsPG3fl2DtElGluAMxNQkoT>e3Vfa96=3DL` z#4|nE)xKoTyw{lprs#oyxwpuQ-P!CH$JRKP;v{9Qt?{P&Bvb78vfL}QPbPB?xiP~& zc}ZrTbIFrg`!HBWBIj4PhUt6zPruXIf|)Mg***uQ)0)4LHUP)^-CyOe>yn%DN7J6w zH+SEj)%3gif91VmUAA4;QR6EA4=TvgyZBR=_Lbcb!V6BW56Y<9sf>{-!`cgCyQSyf z;_&{NWD4ll^1uINe%gcL#5lfXewanE;rs=<4fXF#jDzo4ocHU9Ml2!u_rEPjz!L;e z1KTD3%sfywgB3qn5cb-3BE;G;3-if!3W`)L>!hJO`&r5!d&4}HfL)0zyN}*hYO_X< zM2WlPRX2;j)N(p!q5Tz_m9x+$i8UjM%Cyiv%5-CVW9YQvTBL zJE*To-^>TCy~Jb>`TD9HzlH{N!cH(gWUsbrygBF|6_&FJ_XAz*%XP3N$*cHrqL8$G z*y#tB6UILwO6nR0z1r>B(INbH#P(?u#JCK}&9V$W=*L8_cyHOM${Ntru}&TAk_Aby z-|ejmA1%*qf5YN&NJsQhjfE$e?xjm?zt7bl=qCl~%7?3RH9mGAS^Mb38yFE75}ySq zdbX-YMKls2crqhGeuKR#JNiqsne}3MH>`6&wN`-A?C4J^x~GZ^7FExM=SlnESdPJO z07$<{xpINIJ?_S9kg}qkpta!N?9M5v&K1`HP8KDz3>#Z({_XT7G3vF6UP2>hLNi(r z;M3emI{!e%LO1f?(ZB5&nKkH}2`Tjan3_%!7Ve-{s|Z@O( z+=|fhz@CJf=1Tc_&7#es&e({WMX*v{VqS7l125)icBU|1r#Mh|g?&si5nxrlZJG&V zu-Q&RA;W*^^-z8VxXEg*wFOh!N|pAa)h!ma@GfcaJIoRtBXWaEqlwm9TRW-elArqs(rz77fqt2+@c%CD`dXTLBGs-NJGU#|wO#kxcC93nyp6Q*^nVTM zXRK$)ZvzO*7af`h5m94h9Z!o?yXuwkEqf}$Z~vMmi@|8b%TXPOraB(%1Zn9cA+QI@ zQtu_NRwpB8uKz2dfz=68+3^>Y$GN?l8d5CRu~KaIDf>j2|HMgTJ~zyq86U!9`(N<1 zsDy8Z$EH_(^ObHVc$>hF{$>Sh3~U&@y2-+nf;ZW3!)>&}Ewf}=w-`SGK6kBIV(}Bh z8kXWSqrBwpLY6nXZLS`SG6_Rd#KZ?0aC+zW`RLR?7>>6~RjH_X+%<8C`bzUhY=zgg zsGzp1_0XS|7UI<=B*;V9dS$$Lo*S`}zh0Y7m%>j-U-21h!?E)x=`aC}C76vu9+(;T z?a+l06>Hn?%bX!Lj}27g-3BBL6kCxk_c+SomKv~+~Tp!;|X zTxAYJT1!_-{AE3fA&P-)EP1n|u~A>R&w(3DD_;&hjoogmQw|8 z(VS7|a+0g{R*#*k!%QI!4$w{Mt2;QK6FpGxQ6#%;v5bwrfnpe`KMi8$4iwd@GLtz| zR7z&iuD~OL0wYK@iPAr!gmubyVmjaM79^K%(}Sc-);C)C+W>EZn$Z6}87)pQ*)KEf zlXo@PSgugnXd;9trgx~N4*Kj__};vic61EEVCh;*&Y|Dx&^1hBoGlb>=QK883Oud?MwdIk`YN08jy5{I(_@ zW(!;7$vIs)leer^Oj~^mkBBRIr9zSm6hg8KY_i1z=m5%D>ryL|;4pW&vMNX<5B$l+ znFJqH}jB+ZAPiY#Nr8j(|2~Sn%ShYcFD1g zUTymT**7Bfmr}cI79R?|<7jks;)t@ECkpN0kJSH_Xnk&`ME2Be+(m?QYvD>kl+3y6 znNB#noZe5>_`bFHS|TK6y;8<+6ZO$3!PrMdxMr9+?E1n3P)*ZXSIt~&!>fU2NU{`* z2!8oasKl{d#9QyhljF#a6GBe?TtwgUhI5P2dYk>#Ms)4SHRIifI~8ymA64fW{uC^XAE?N(<4vc0#9ji}8>QAct}53}$M=}8t) z+NeGZz;=5V<39mR7O--bV5_ff&*lmpwaIHvdFAMlRHjIOi$A5ji`4uo4WOXeK-6#eF? zZ4XOIx2RnDDWtmsRJNcDn5yAs(gzZ>rv3%Grz&xm8#)_}4?kjfR3#6q`?n}zx!Fhv zh1elivNk$Wa#L%d2d`Iw0l$PfTT1sFgEqTZ3q)I*IWw4`%)2a0e(!%MIq`k3Z71(;8chd_yMxb;WoWxHs(knVfG3MEvpHJ#&!pvrbc40pCWJktF6vn zBe<)x-#wA8KTKrMP?l}qRg2$G13`MpVnJa(c#(W97%qZ&9}7g4$y*DhmVmIiJdDri z3zNU0cTKsrncu&uS8X^u4jsbOA~Y--Hkc`jape=cW)-m)5Nl1lT#dEdEWBAgWlg44 zq?Imu4DhSeA6dD1n;qjYdGcmRk#k+aj*vQY#HU(?y-beS7uZ9}yvEoLv@L#;LLdiU zm)?wTl=v%tZbyeY{xEjo+NCHl?>iAGL<-z|;w2N-nU9e0{tmV+r|Bb2p2?gn7UdGbadR2ZUXm$t+D2Rrr_e@`k z^0%;2H>6L&pNklmH;-h_AOVn;x<7F}H^ovS=yvD{iduFzMg74RH4HX8Cda=Tj3meO z@~83)%TJE!?f)j@8+e38|5&Wv>}kLLS{fQVh|>belRM(NtT}Syp4QyE)oghUWcB3Z zaUk#599cSId;7XYB6B~V60HRB_s|Uc)m(pSJUD=5tlaOR-mfHA>n^{FCOa0uYHtZ7#VZ zMXG<(hF(ZD{&xjgLO%X3y>4X29e>sQ9OBS@AySb0U|w0x-KA#8GX!Q_%jp&{_5q0W zJV3h}?dms^`L!}VsYq5-%2?=?zcRD!6_LXRQDD`Y^m11gbHvI-j2`Et-&-`Am0?z? z@lOBor=f$BC-H*yXUrl*yow|7)4l>OK`^w@f7kAXnrMk-I zvh&WnU{ds`ipnMB6EC~$g7cym*?CiS@&XoMHkx-|QD$`9)HAw6hdOEC2Em&)V&~Me12B<$kJ?pGE31r*w>;JvDdY zWs$lwgLIQ!x;_!B6QucF6WtNL;IimZUI|y>t{^8FPyg+t3vg5$WG!}C_rT$e3U>44 z&iVdIgx3^3s_KHvF2s0Pa$>JY{dI)-G`VBRb`WX)`R^SakKt&K77n^bOAv7;=d|Dx z?_RZI6k`JOY`^n}YAv6_%;w@rXqEQTyhoLb?O4%W6a5AgA0IWTp?peUgK4d;Av)LW zwN@Yivi@d;mXdgFlQPr2t+mX;KzpJfH7C{ulaab1u)dTMADfV&-X}<3nS7#9gkY|q ze2zg5D-29nyH&D^ILVx1JC*%?bfLBOh?@6#l2P<7tdh1~m((p=o6Hrfr1a+0^64KB zh-IyHZr-38;PY9QJ}MJW6t?gI)8U3ek}`j=W((`v`U$bN&9+GSR0WLyXn0ozAv@l%Fi8SY&NmPm!WR|`t z4brI%qqze$l$pb&rrTv`4jU0&@8%tRs3F&VTuW-?OVtwH#}|vk0DAf zq^d5%;~1%9pkx?P4keQ((KTF0`8Wlq&=TD}k+UC3Y(sX&&`0o_YBoZJqay=Zc5v*B zC3}nRP?2j*vz_I}F6GTq9rrd;HAlDX@EG-?9Udoz23{7mCz&6kjYnt`nZOnV%C5o`21!Uq+3V&y=-ZW2>baJ4RlAL7AIdsM!vYi6jh$ zh|K?uq_@D4ey)Y?uXA{qyU3;iavM*-l7#BN8q6emP6?j+4*RdnZ47qyuKkBK+$;Qi zTmL-|^kM(q9p9<{q5^>at0U?=`tKJc`G)@c@$>&@{dW^ZGmbm=-(`|Obj{)PW2*m3 z{?)nv?rCuS_dA3K{dWhS-`sx(P~!ih|K3AQQvbcdGu3|^FeJ{R`HueE zn^uMWw-GJ4%lLal0MLIci29EH`x8mNq5m#>?*FX+o~P)Y`tJc|I_kgiU_I4;zg^zB z|NLuQ|2?c0bdruwf6dz$)hSn$+$s{dG#K_G-#`~*RwU>I47FUQh+`Hxf`^5sPoy%Syh0nJo&aVp)BqKjV%If=1Z{tfWuP@ch`SJgTC zc&NqF$1*#6JB^{5swCo3SK+M?Dk9BnB9OFUgYC`xnt%jhF1dc2rk2J+MVdJ4~2+N z9Y9oPdOQ>uJJI8otG|&RTb~j=&iJqB5q&;arRL3(M6n>b`g_Po;pe6LEiQ!O_icEaMB zC(?uSj#;{{rd1wVwlT+5<0h(c49;0Z;gxX;+uUacTDZWrPwO)6_R zV@kly(Qa!9sn3Od*GCIVhDeMq`(!$LCGT zlXTiGi#d}|Cmz54z;m^avvu4P8-W2 zMjM;&UH)>0RwbQ+b>CJHe=|*M{yPjs=*`i|KR`{$#HY>>o%~C5vdPlPCNo?F4V|1x z6uV(XC$Vp$lOK{sbW#DGjD}7YH_*1S*7_PAx#sIur*INr*-$2()CY7@@93mHppzd# zC+HR|R;F}|Nd0JuoYuZeyt1Rgezzl+Ce)EzCgJ!D^Bu^AR)j>@Wuh zRJRRKh+cm&TqxP^A}xoJ>hdMnJi-AP%s;D>4_JCV%oe-J9LUp$p+X97yoBSE^kTc_ zE2bft`qQ z=qpoq(lY)5lp@eaiOSS6qLWfQEH-*)^TWgyv>;`3kP*gq=*B?p?bcLdeufz>rJFY< za(+ggR*i1|tCQFL2@oCa`KYC%L-}m4l^lH+sjcS+_W3XW^Wgg_o+17@f1I1K9SM6_ zGAD0>8r*r?wDymWLvMov*qti=D30T({zT5~i6poFEZG0O0HKlE+(f+ik4$Sady#f@ zI<5H|X@laL^XPl_e|O0Zzf9#%?@!{%y_ANtemSx1i_`b^fWQ^pT%%bImWa>T9UYroh<_Pne} z`7*Q<`Y+kohha~6PUrCPL;sdN>+OMS#t*$QJ94TLJA5S@F*GTCuT=U@`?-Sso4Rc) z&Yc0;>c_I*EpW1|*zUEZx$F(J^=@|WD17XPWD^^IQWv!&lDs;KP4$<`-=bxS6 z*{=9Zc=oFOB75db0T@N!490)}j41&ad(be^SL(35!$(Bz&BRB3=lYAf;)D8kN!4Ha z&GpX*uR_CioEdNUCc)0}{|w`I={|nLcf{`x zk4+fF4i5!%X(%_VaDLB6~c5aNe)n_14? zu5jUiuf)FXzk>;M&wn*9+Z|L{6vLk~NXOPY`tgbrhn=fIfKriibR_Pn5t+>S`{gts zF~B?mlhyo8OXS*Dsbi7h@LoIL(RBgfqn@#v>L1J)4cfI`9vBjX_O=D(`Rx)j8T6aX zsZ@;ax}zR{Iun$P=te;3@8WHDDakLCBy2DJYRea_c@9>;iSZT2yYX#plUArhCcPPh zUZOFV&Lz`p+=!tD)@o2DdO#~RdBot`VSUXEL)7T?vE9U5?6?*@e2&HJ%*wV+_*SxW!bsf> zT4bW#w*1lSy8!hNY^#xt$_I#Ud$Y0H?l+Df$6F`-4;&}_y98PPLHaG{{&(pg>Lz`R z-M<2)5!M-lJQ$z7+c#PLFz52`OmBU^?Ag2hBm5sEa|ZsG>9?HoU&7x_`fr8*zf3>y zzf8Yn?0*S=H|f6>{{J%lz;4oi8@+8gduRB+4W5U(N&ju-U!IwM^y6nb{$?!+maQSj za-O~f7#NFhz`FQ+RG&^OXM&i!RD6BFDt{ue8O+G;Z|}am89{kTSKjzeW$~(B5 z^2B;W#%t#soPwUn)B~SN94;;`@)A?9jCVx&V9dPQf!O5WGkQWpGfP~R@v)dNWG#m$ zrx(aG$M=*8@mI~D|G_T3M&m2smxKPI$#5bovZT?23;B;UiD#CkoeOLU0-J2$2p8DI4Y~PtWkbgms}dKphvmcQ^yFiK02a!vYwT1v=v2@itDg?7=QNQg@xoj_+u{y()1Y(sEjXDGk$sYO}XZ_il7hRs5Zd z^LPMCp)(51-eF>yPB#2Qb-o*Yq&ohdy~@5S5##pPb6ouf{W?|uB9hYnXgSxWHTi5| zae9G>mekV=3&8C>vml*iqiIkUZSWGtr-1+&1yCs1tI47E#JS{~RbZ}8XX!AbgIac_ zmKJ}aO&h~gO90Us>9pHS|BSRN{U5t>=cmd&GM%==e0`ULUgggBKg4j#DARVcV4vA? zFL_djHCHm}b${F*!1+dg_nBUxTC@?y+d}(5MeMn`wkYl2ZM2tIvKl;C zZuVYBqimU({%;(AvCM_5U!WUi9;4vcr*xTlNI$<3MxPa{NR-=|$0$4V7@jgxIDHtE zPK>0j+)jx*n1Q$eOc@%kOce$%b6pFSF?jXsjk1r`XBHuW|P* zOgr7v!j+ykylKBTcd8(Ed;3$aJzipO1{TxsblXSLb^_ORjLc_rnf5yzzh9?x=4SfU zhF+gREzqacXa9f0AB!x1EIw8A1%I4N7nq;j(V0IMnSA1HocQDSUG&cUvB+$$4$^@% z^U2>F%j=#$7MbN?V)4h;AaQs6vB=CxC*5ZLLeg*Jk42V0UXaeR(M(X5@8FL`=BMc_ z9cEBaOSk;7$n;95-DY;pNV^k%EHbZFrLfmw-kAFx{4q^GEOTmp`4oa*)>Y5^YB?^m z-MI9U<*Wj4K#`!e^Ud)4C^cDLEDIJcEkS|8=a~~kq;0k0ANuo>wQG4aXBCLyD9Kzi zBr5OcZMEB#fIrdvaMFLKmE1V=If0R&9U@1K7LaXuawqkE)yV$oHJjr zDN2JBESMJaI;0LL7O22U}JqC@-~$E9%coK3{dL zi&s2h8ZfgjX(X_rR<;yV3{nw!RQ%HOD!t#nCue6RVoy}YzgJkz4jQ~a!Bj-N#}8H= zlZ&bnlLu7A&l`Xe5gl5YI3u?*$u;JgrkY6I+f)Fb`Q@2Z!Ny^}%CHP#v*8|OvCc@H zgoV5}B6p)_q9x$UaeCntDW5;pvGn-T__Er!zTO;}e_C$r)I-w5)#Zq^uL#kJw?}^|}k+wp(0uo}?Fuscbtb2h%0B<)ud(U=<-ZxEf1Bq{`ekMO867fU z2(Vl>0G&hnFZV-n9Cj^j^Wuy1rHEi1Joz4}uUhGU3$ZKTu6xLpCTn6NNWsa>0-JDK zq<>Ox=Fi%;oLF3>NV@9B-`Z7|<|}c~RpY2wHRdxpU`l<<6cv%Eui+8te~W+=CEzb{ z=wVt-VGkk`vgT{ImvPWdDsg#zB_!KoA**!Jkz)u7J;C+62d9?SelW(AE$$>Aw0E#iCf) z9HiuBKuE4vjG!6d^wZQaJhdo`LS#YX2h<(qOhq z=T3`|jsHlA5T}V}3X&(^)WZLaNsOLYOKc+hK2NM z;Qx^%LA^HxDXK`JJ65)t%NGWb>>%u&!DHi&&rZ<<;_hANqHGdJH?#kzwQ_z@Q0 zw(DR1UJNy{>ibqWmR%J*9|)dT2G6U4rx!dcgJ&Vn4C=J{Z<1vNahh`QsemPfQzQ zH(VVKq`JnrGRcb9V`Nrgy52ga0+1v=oC>I7E1Oim{~}yD^nYXdCEK2ASUNzV zVC!k}u-UvzwH^rLm|P0a&o^_?Bhjh{cEo#_o9#QZ_*d-BT=DXrT%_{s-jcZ&k1)N! zjn%)ySSG1Me|3mr&&xCB7R7Fim-jIr(mLw}ytTYIYv5M-0%vYL0syV#Z7Uz6S9JE$ zKzAR<`=rR8_RJR#X}M;~ao{s)HyyH9ukSr8ao4rCl}vG~+oNBvB^^m@KeoApV1%^U zJiLgNlFR<_D#excYT|8Q@kU^-(5BaTttElD)%1xd2qW688m}}!HrGB9>)lroX*f&U zP`L~>qFl?e4LN$9mJ9o7Sh{pahdB|VC%k?vABkyw6uzIrj|{>`wm@&4M=K}X{eKhe zPvpmqtI@9Aoov8(!d#*Wh55saRj!9X@@SV<7@&; zTvCV&_OlCfrH2jdRu7AE#&qZ}PNC@7!JYN5D0kXr9IqJxh478L89QC{_XMct;(*R1+SUSb-2^L2B~Ch^s?tjV#+>~nl-4!hCp zM;6k?ULc={s#Ct#(Qm_i1!fOMQDE8JXx{o=D&OL{HlG7!zTN?4De;(2M^qW>iUBT#3EKkmwA_-m zeAZ|)uMeWq%+oW!ya^x^lS{1uTj#*+T>!~5x-ic(AiXy|s)^LeLqtelj(P4zh?Vzr zh5xlv#x7~X?uT%IY`(_lw)S<;JVUe&I2f#T1NTdyr1$yaY$>QlFILYWBrv?*4K5#|>g{A)BzQUmI3te_&}f zyqYDxxRkoQ_<{-ck<|W4-HMU;!+LUi3A?M1^ocrIEV7sJ6sn+OcJyjNyl)x8o3M02GES)zp zf6P+>C0inOzhb{-s=wrYg9w-ai%*OU=59c3!jkAU_=!MB7dBW@7F7v>)S&}w$;!~w(>2C{%tfbzyZdLq!}tlM$JJ6f$KKwsag ze7}8+3|jSxJ?kZGWlWJ(1rA7}KW3$&fVfCqi^`~f7qos|PYL**u$x-hFJ()K#FvmD z?3#q#7thxK%F${ceOWgj)ZzeXzL!`a1c*H>x*l=F+DZIPlx~JwR=k2WsGxhBng}r7 zvC<4*4)m{|{bff-MIB1@I`&mmGW{o0W$lUq)$zOZnpVgXw^-pVb>PP*L%h&ou{qbqxbT;Um*q95-Q!#VbjQd?NMlAji;l z8mr*z1XP#oz+bySS{cYVgch4|~{uwML7mcGnbBKk%E5mG0hy)$O?4UMSYIh8Cg_0!}tru{ev`x?S zzd;Q1JQyZ)bRuol)Btsp233`qNS$;}nB_y-o{ql+5;XB&4m=#QjPRj0zD2WqZZSfa zECuN^YAjo?nGwfQ^R~)J)Y}f5y+Wg)6KgAluMKLb75RM_sV@cfAwNynVKunCC~`wj zfKS_pxErn>?`8mh*0;{&>RBL=-VRo^lt&lO)b zcz99d`a?-xdEW2=mC4fvc!^sk&=N24dyCAH)sqirWn=gNyr4OPj3)zPjMPsgpMP0U zzvYX`eid)1-!u>`4`E1+T5mbge9O<8PaJmYxq4&L@hYrpDLkshtp8j!a$gB^j=t{p z%Q!}gb-I|;k?=vt27e?~rTG`elEf{ddC~~I<~L=aBiDjMdv(D=F6hRP%4VtfMyn_V zZ~4CNPDJIs&GN=HxQ@BMYM}(O`H}u(Tg-`R=puDGX3+^k{}-ye`8weH9&#=i;qvli zL7TH05UP^%TJ*plTEF&Ry8bZtO7z5+%eC|H1SXUCI%a*ox!LOYTIFLRYhFUck_g*c zf!QCKMR1_@d}7{bI#XGDU*UR+)>RELm|eZC6-%6iivJHmjyQXBAt{-SFX8Eb5q$J+ zvPJtZ1>f6vc3xi#uX(b^Kd@bCcTnQoB4*oKS&!n1bVidopO$-xY1TS@boWLornxdw zO~tYs7^x!l6&h2bOQF1G+BgPDMU$PP)W1)AP_M@Xbxa#$vZ$lAd|Y;0dC#6iqU4*! zj9ssGMpIS*1`FzFU!B?4S(sW2eH)n@EA0avkl zXA*RTJ?OsIZ4nd=O+QPqqFj~H+FU-;(e!FcTSo9|6Zyu{P&SI4E*|U`2AhuV!Dfru zN6pYkNQ@f8UbGg6hc%Hpxv#P*&ZpP?PoT8Gj(}bBG0`2}e8Quyn@5TY_bv2~Z41{#^0;o zV41NnV9#T)UXKOQdT3>vRKD32&j~OzE$_!$SNXpbPfqP$uUCy|*FWHn7D+ znaPn%r_1X;emI@(64KFW*0LCHt9i19v>s_~Kao!TB-Y$~TDk2j*E4DdHm8cUdWuCE z-CEv#pRnW&G8mlJo4MeN@XrOTcG*7_zTAH{c=iLLuJ&r#s;fAC zRCb1!teBr+v-aTmb199@)h<^d$jqFtY)_i` zj65aIl}3@MZzMlf9TnppWhW9PZL!;BK~W{|{Dc|6-y3(<|2Haq650H7&HflYvzIHg z+3QZ!%aS)Eb)PFi!mhka%-a1(u--9BRDFZSnAP#kKu43Mgl8B?zMMs=$wdQ{I^t5O zmz6@+Wy`cNki4K|j-VBlHjosX5^#aO&*D7#{zynQt?zfXFHeSHFFKBjB6a;p)|p}N zM~INuUIRU7(Zk6xJF7iH#JDPgL*>xsCxm@qi6eIh?~bnT&3o50FoODq%LmO9s&(4*>}1E7)tiz! zt#!X=tT$r}n${T8aUktb3+FeSUubC_F*=jazJkXM`0U$jgy6Toh0o5%uWvY}Z?@Vv zgh`*UwpkyR&vHuu)jwHA^heQA8nA_Gd5V8x#HmUyRJ*kG*9sc80r1&cKZXo6Z=vIi z?2NxfwhAW8iZC-zXNa&fBxkD}qHFqlO%!@bSVJ}oh6Q}sN%3a;f`d3VB7?m9RY(x; zC9Meo#$|05YI@shL22to?p%a?OiP)8tDsw}uim^gu$IX@W(23my28spP_w_OpXSj{u}0nXVh8aq^d`RW+_CWt zZ3lf+{PcgIbs3S?{~Y|3tccY0h8S^dBkO0-2^RHqK!>^46<+r|ku{67aGMpmv6Y&n zot?^I?eRk!*_(3=GZ2Lgu_2!laws7+*31jPc+nd5YQ@unUX5eKtIt#$~tOI5#G%{zwx(HJSTFu}K;3Mp89g1F0mMlNZEFzn2}1>3*+u?cp$WC{&456n={(mIrw zRx?6#qBZlS7+JcgH?UOyA_CI#QS?&3TH$|xfbhluX;y_8#RN_YPW*jp6!O5KMiMm% zofCprQw$vGp%AHih~fhFgRv4d&%a%~+|6r`Iy!s2Welf@;U{x;U#&;qVGM|7SdA)7 z4TJSz7iJ8R$R#VJ(>NPxI7A*bnGgiVl5m(u7P?(W@`yL>QW{;_wiA0&cvfO+A2Y~` z+r>7;Z$%)gJh4DzSu?d5!Qsr$$*K5TeM>#}!Zm7v4W$?f2NmI z&i(eTxPRlfAVSpsqcM(G{NW2FWNrMEeDIN~f(|*^iJMyJ&`#ll3e_pwUC%@=X$uiQ zv{QYNI&MnK>fH6Ugg}4h`MOjCTTd*`_Su>vy41*-bE~#^MCzW=B@1lp3pxxT37#4D zw$F6oB7IQCPCdIwMmLBln2V*oICfEnZOisR8T$hJn1?hNC{An%1F{B&3Mt0b#B^PS zeyOsbUC)?SKB3&@`>h>Bo6K_-Vo+4HZxgr4@x!hH|w zizWMXspw57CXQRRb6=RSFa8zw#Y6ZgPY=T`gCIa=lL*v*8v|HSuaMKUR9svPbq}H~ zL)|A*e}E{2-Z?qwoj!cKeWKZZ7VmC6LogRTWwF75)}2T2=59xD>&_$iQx0 zuqJ%V2zEoa>bI~vH)h#%R6t+P$cJbu@`CXiz08!L5SF!71e7wPk7<~u0qO?pQ;?HC zGL4_{A-}q|4}pHW)mn$8hJU~~%!^Y}T%h&Df^2__^|Vepvxpdct`uaqC(N_6AvP{( zhx}y&Ft^*dVTEKU;aiGW^E?XT*%~~b37#(n&o_hThTwV9Judxa!Sl-CIWu@(6FhGS zo`2@)|KVPj>5AYP4W1);?xg=FuPuTqQY+xW8Qj?)6pIPQ>*q09N(}GWR)0FE$;O6- za;V7&ELIGD@WNs~B6ZPSg)W6iZn!=ha-Co%L|nY_MG2C&LRU7@Qlxss9_z5eVS zZ1a}x=wW^}*+T8vnIU_u5asA}k%rG7l!AY&%@$c$-ph)Yx*ss0x30*G)IUtRYP{g8 z7M8hGYGuhf?$_m_iq`rjKC{}7ftc$U8ChBLQ1F#$PPb_maYRbpA!m@VhF zqn7bGvnBC*nOE@>11Mp+loxxvGVzGTr$06v50%Nf!tGSzTJOLPF(PCfD`f1(e(CSP zgTT$iL*k?noSO%-==ak&nJ=7-1SgUjmjD7DZdAE7ur%41#llh&B15Dz( zSO7ksC?K2#ps!1@mdd+Y0M;m3_ZEQTu8^d>7z@CM(W9}5rp>fv(%Wl?{!1&Jk$T;o z)73EjwP2Td;|fbB>&(x7ul^WD19PU3OIz#5!CmKy;XR-<3EMYJ100KB`F!{RYX4$8 zG=ou88UI>?yKWb_Ov3IgZ|`I6tzGD+WKzNO%y9&dQ88XgTcmC^EPx>uxxS4Ty2&!6 zxTOJ4XC%|c7Hsbe90V3#5t5W-(c5+}dy_ z1Iyw@h{L=Hff3ulyJ81=Y~b_Qz-MjYzZNI09Xd|CZX)$RP>VC1RYd9(;w2ZKuY&qG zS!KDx>PARB=cGGewzsKm;i!yTUMwPXyw_9nQ@ppbw$6@SY|Zth7M_&N$!^j&uW+Q1 z>Izid;y^Uobg3PU*Ip`oEY4Djzql0hB)^=^X+e|TLCH8Jb3NY~CAp%7WtJXq%d#2S zy1>2_P%_G)B7e~kt% z3~nCdK{8-2&#ICyqEY0wP^j}5j!jl1juY!SX5eeuB3qhe-qFzJ+LjU%J(%7a0b9%- zHh4g6L&yl5vr3T)@#xxKm9=d>t4b_Y#~xI)s;Mk-&eWr9dUJ1}!ZM9}KuajELct`7 zRDT&7hTYIPK7LBCup0kptEt<;A$>U{WA?;5O2#i?zTlz&0Zk~u-EhUpX=OeYhpuOBsw3#D@ zk-92AD&sdhv2p?*O$@AzO$DMrw9)Hf_x>(?bdG*Qz)Vuy^Sp%vAq2pG)Gj>s<`m0Z z0iWK@D)Ll__G;(*f3&aN9>}!ILA0}TwLLUrL4)23O8u>LR9IsOfj@+rzjckN#dWW+ z>Gglfd=&wq#oG~Dx*9+h@47Y)EmSA&v(g+>wX~$_lJ_F@9^u${q=$7fXI3Zgv#ON8 zi-uM}FRs6EVri!Csa^`?cRhwW!E6k$OtF=+gSH$X<qW8UB8>Pis83jD7%9888nXokN%^nZ`r%8 z!8bXJZL|28OXidb@6H*TG54w4+~VXa|8~|qGQpud(#Q7-)A#mgbV;H3hxR8v-rN5b zan?WHTpN&fYZvcrDu@fJu}fX6{JjAY{%7s+rd0s3~VVYdBKaEx|zteUi{0Ia&CTfA90y~ zFrLYm7*Rl9wXd+{zd7(Vt@Fn}#-N(E*E@VA0Y%6fJm}Mdva_Oxd5M{b*Fo1FOiN3) zMf=s9aAfpAQv>emTcn?Ir78Z2v}-^f>(q~~aOc1-wb-kAk*T}8PTF%kv$L-K>Edmt zZn>bF_^$Aso(bPZJ~H52AN}v)OVNux5^vqT3Z&xhx4awzqh;(~yB_q0r~I^Dk|rWl z$th+yGrgK=ld^PBecA*(Lh`B`ekYh2;6U4AV#8~ud0DakHPZ&*haf~F^w(NG02-Ty zu?@`nJ5X#Lowt^I3NJQaUcpYvm8tn&&9pJ(8J87(u$8j`q!?jVk*R%dKo=Mr(BC^`cvWhx7Xx-B}6)<6I6*YTwb;4&eM|-UHcc`U&AK^ zlW*pQT92{BKl_92;4OX}vaBaBS*^nh_+QNb5&R#=;L+sKh$&UVBrD?Y4bzslO)X_h zKRkHbYY2860Y|*oYro`P#~z4~+Aq1*F^8AgU%Fczd)jw*siP9a*OooOY=HRN@#ueL z@$4^8I5EQQj~}C|l|9kh#?1P|oUAJkn*C+R`pROqsL1p&hIKJow6^=*E&n@m#%DZAecAwJU_4$eW91(ne>ORK>pP#wU zNx|n<`{{0N{KCEC$!%iJ4);D+@4Ng#z*NlFdoR6nYa>X$a)hOe_^XWmi`E=m-~MxN z>HCLW{N(xlSH@q7KhN5Jb_=>wZ8s&EFVL!R8{LO4XxNi3AcG>=d#4Psb5KDN0B=8Pjh&Hkhuo|L`_;`us2A%j`Kp|19b*lWjT6A7Ni1 z{w%-3zG|%bKeMkI3;qvzU6Rk6IhyGi_q+xMV(Q90rP+ zW1>0c!e80A5n0jwN#ZGv_dR%cN>XaJ(sW{qU7#%BGmFfYOKE4#%mNo!pul|dlyo*E z;3L3iBB-}M09#1+lG-wrkM=EkJBv4U-o?P>pUQ{hvraw-dy^1~vnF8$xf=wD_teZ9 zp&_w8c2VnaPppcQ+HQ;Fx66w&kSfX*-Q6@_1j#;Q=a+W| zMYJz*a$>bVkX-h>aezJPUPE_Q1L;y`>)wjqYk*A15`oG|TLLwm@k!i_W46C2vmNyE1XS zou60Mw&IVU*mh$MLfv7onQI_rjmjI8n5lcNbqk+7=3lDAY$tSJi%=k#a*eU6mzxnm zE(0Bh_U#mXSbfd*Wv`lPyJp3($x9bCyMvG|dxecVhI)%6Ln4|F0{PRe3$JQO?|tGc`>1?4hNK zm1Yj9s$|fMFRjdeT0TZ_rhyw0j6(R^S*a~YFaFXcsRl{a@!%vP?5WdXWjmi*#EeXT zvozG=)h!l|lfbax@DkPFxy8#~?w>*$>F2dA*;hR2HQPKL9S3_Q^#3Pb~-$oS0TGGJLa_JYWHh&T7A%Bdm?5(tZ8m-YNakI>*Alb|=S1b|_G)y^DrZzvz%v zjKlt`K{+;+&5_#ogivdn5Li|Hzrb5T<;v%Ze?Z3 zXOXM53YN}To&6zKY*s~vo64o{^^j$w3dGTJ+v?eG1OB@GEFdj_WURkm@dgwBHb;gBztbI&Nh~WtD)nr zz2o?hCtEJnCa2kQ=ByZx9gupx;l9>Au4XlOC_i9UvvYS+@_9R9gUG2;xp%=ll zl0o8?>}4q#ksC>V0`;d_}6;VjqnN0ND9OZ(O69{^J_hTR?e5(EzhNoHShZ#tzaVOwVREIm)b;wg`T zu5+k~PHgd?BGC04J3b3+pI%Fw$Uv%MQl$?uIvko0K!9d8kC77{jS4FUZZ$6jp?4B0 zFv}9vMI~NtS>)DM|3=l3(m%oMd{Q)dgUj;SaLbt_l5;1ly>zT9acPsQ$A^p1u?Ie) zW7gVobrr2^|GN}`$43Qcwk6^RnLpO$BrnD!P z0LRdQX8&KSCbwmH2cpH>X~A$MHHHg@ue%g$)$?F8bIb7Gl&t#&!(Nuu?3Ur^Ag6#O ztKhGef-Du`eEk^aZrAV5SM21jyP~5WI&mL!0?H7rmO;($aix`~mF&fleus&A=ksap zs~WA0v;NncoW72pJ_V$;Kj8Y^;wLzSoFO*N%`w)>w7@jEkG2r8!Z|GT*0a)FC4_Tq zT9b+DyY zT0QjFMO=GKmw%<79Q~Z2$>%|cR242*Oc@&jv<|py5GYKU1L#_%5WdX`HU;+~LD^am z8z7R;F~$=5jFsj=2An2-S53C8$2`cwetM{<=2!A$<$NN48cfwtgs<|L@<1cQ2Y5dm zUhFM-_M{mX-r4-{&#U8~NlUBj|Ctwg5XJU=t%Ft8?#Py6UHe>zm%Y+UoKoQZ@RU4n z>E}I2^sIs&JG-pvfr7)&L|l$54atgPJT z%9WL?hh)=LE8CF!dwdZ(PiOUIvd|iYc8OK{&hZ1(52#)2}~SB zXQN-W-5!cYcB7NST6gc2#*llB)Y4t!-Vi2P&>xMT*^L^%oX>t>)9qx>@fXo83CxQ> z?tE3xYs+8*HbrQujZ?*l|A;SdM?~NI9yp~5-;{Zf^h_?2ws>wQEIl)g;a6S8jRG<_DAul4WT2qT$$ z`qgwocY`FC&r9Ss@6Ku&F2XNPlQfq#h?kHi?*aE4-xETC3k2{xh_UEX< z`DJ1$D`Q^s=P)j(vh_=uYUMUgjSD$)tLP2Q-tJYC$jEMH)TMump;RUvDx*6eVufH7 zmrr){ofwdbWOzu;Lz>@^#i44^M=q4g>_QJUFID|O-;)Q`m<$ZmawHwLwKyzR#(BlB z*^}O6ku&-}`6678wA(soW8Eli2RX?S&g-0&JJ1t{zhD1vsj(;d(*Bki-M-g6o2JTf zqz93r+VQ0s4ENFuB4}=)9D14vT$=E|R7=0Dr!k!Q@u~65xHnIReHN1@JDdNR+x++3 z=KV%J-x5UOvXpKdEHY0s$syBs7vwb`vOYs=>P5}_gFS__(kPLfeLA1k%Drn(oygMf zuxx$gL;Z)UNW1i5X3>6#qzrJEO>0(++5Jz1v9JZbw-uTWCm zC&Rhc>yfw8R-a*+^xr3Qi7FoFT3;n99CEt*WWMrs$Y7pp4OJ7j!Pg^nPlwp%^$3T^ z4h2Vzx~A?UBdKg%c|@WOeXjLfI^wC$wR$qqc{a#QAiC*GG`OX$7#AZ*_m}E*QKO#W zIF$Xsyw=FLitzO3QC~;E1d|{6V$mN0TXP$lpbBw%xg2>>U}ZB!q7AKV zJ_xx^aXyXhQ=WN{{HhQ|^2<*m`BxRmKhWpVo@&c^Zp&AY3m)ux%f-OJ@bb1ZKKQ$e zk2ythpW&W_z&t~61TB4-^48D~P!2xkkcjgsOBbMj#O1Xtp@A644vB3>>^IT>{hafu zz;Mrme;M=8T$%dx=f@wFy&g>?@Nu?9A>Xh_r9B&ccPSNiu3`506$#mEd}CF{%-j%^ z44?kVCp3&$teTMzNA)MM8qj~Xv)k~*J8JQO{R4IL|+|eo2&uu;r^$s85 zKI8D8bqQ$$rGj|uQo<||yhRD8u|Mf9m6;I_yJPg-w^FbHyo2G9sXNxH@_$Hf%1Y_n z5n!%oiNF>ZZc->et|G|98&zX?I^A=ljEc>BkDM$2INH4TNR}S!ka{e{Sok)=Ezsf~ zj@~jroX8l(IEAcxc20nQA3@tWnSZN<8s<*iMkB^h z{OgoxL-X(BifxAA-vK9aqnljR5l$Y{M}-Vi$v{pP{?!-J2t6Zs6TLU>&aK9g7pI(? z*W`geJ2~#=&F+yyy@q};_|EMk#LI1y<23iH$;AhzdZ8DTNtbtZMmPOKqOgZd&EBlF z9RHNB6{>7)j~c9EhS9VtEsPitAu^bd|_fL7588DmUbYzDOMz9yG#!j;ZOc6r-SiZt zgM{1V$a-{>NXCIA6d&o+?`K0op|Bc}(sp|;v*t@Es}=_({Y7z5m-mPvC{vZt{*Gj! z1gF!4l8B}d{y_CWKm z!|td}3fiBCJ3QFkxH`tRVzF!rYP)dhom9QVcDFNRU*Mj~w(u)%9hm-AWHrkc#(FCF zJ{#nIX^{IxaTBjsppvg_BFZ(tU5&=B$BEo;8}Ax#OiKPJEFkya$wpX+1D`Uh*Pj!q z#fom*_=V$OuU`gYwOu$tHFc)kuC0uJoMv`Mrb1nRG2MqT zPj^r&|NIkF)F<%mjtKpEn@Svnt_5^^r;L<7Di~A1C=G1#mEe3(aMBZZ1>IPJd*lE& zs>mpKx;F(hYdV?#KNlQq+FP&=a-Y-z&akN46U5RIqd$jUskHIW^j}TlwZ(CO%jimP zQHY|OUZh|q(?>Twjf1a*IK+ygwao8xws~JIYo7P&uf@(Jw{?ED$ML#$*LyJ0YW;R+vE7d zWQw$3?bw#CwOpu4g&;}v8W9FEj@~6*kIgvj4lrj(^xr*>-%mcWQ&=YZcA>|vo@8Kv zVRj%kH0=A~zc~Td2k6Oqw!ekd-Lvnh8Bw_HsBo&>i7Bmmt7OT=+~9zT^eTF^KWk~? z_g5Nh`g@?E?-=~3zDtlR{5Y^v#OQrD_&de7$&pTxCs$5CB8}M=e$QXUi>-DaNbZM} zr2f;w?WqgzQ%7v}T0saa;k-6^V?{lf4qwrMm=kZ}S zmW*^8!jJD*8S~S@@?VrrY^xV z{GSrvkgGXkkgMMhB$wesCPXrPG)k-ivfP+ond8BcCxtqz>S&h$InY~G`wS{?oygMC~tfqL+*nWS!$Fwdd+?Cfm!BB1Izq(`ixQLbsRL%-^b~%@(TtEHJB}G;oBEo z(vZz+40+n0Zl4T-KgZdE&|(PsSVfZI@djjrzFr~@sII|p*7(=Ma+m1kmix$mN&W9# zF}VJayZkTIqH!-;5C-GE2?Js<9){-zhv(4~gD5EB@xkG}&@MP!zE2+^5&YZ!(Vp1J zPF{Ma(3vTpY&eU7lrQw$J8?j2DSun|3)t}3q(wTjj0Y&AHNF%6)4}1J5r0-V)*Dg| z%v@hWHvZl5L8VpvFjRa+dviDa;P|YU!av-LC4=3^vf)~7qZtlg`exg?hVOtZ$TmHo zWX1>jrAkY9&Kw9AicWwc)RL*^wQLGIMkKK)uP`nW@FZnLKjRra1tRISA_C!q-%vT} z6^(+&+HVrrA0{0vjwrIc`Hb8N59&ncr0^8vnCDl7`u0UXbL`0D7JU%*ZC9;=)77^Q z^b@I)%dQ@;H+cNxwx01*n5oIIQxzd{QmF@d&FsuNs=tsznzrzt9U`-UlJHA>{gO#! zV=^d3KD31&=c-Ay%xvOe=cK_9s|`$x24Dio!k*uy1((O9x4#(jiI-9OFNg#7?}HtQ zO;JD^ray$Ql(Il5-4<>efIC3Io?6Ml8V{&%0cZmC{lwX}Ji<_BRGsG;CEbp}Dz}ZT zVB{oq*C!9I^=!`ojyCF#nZT^SAFrPVN2CSX!V3psR#bR}uwZFz$uAm&A$+wI@M9^c zevc|%t-8n}Mz6zVsJIIa{ru$kH%g}d__zY`+rphzd9#dm_m}mRWL4G(%E~tpg$Pp2 zV1>m$9!UQ%lhYciy+Vwde#op*8cW)Y_Buk}l=k{Db4cj0g(V>qcc8I?4lxKnZ59l& zZ6UY$WO_bkl(7^%pcnHr8&lK~ukO!!lFbc1!;E!TuUz-#YzcpcPU>uaTJGU-Ha}^X zfu@bS%Ui--1aQgJ0RrTV*$bSKJ0_9X`YY~z&bBpO61#aX3z{!Fxh)76U)YKP=v^|j zwp^A5j-(glqZdaz%bN2yJKLCkwOn?KB1+J;ja)dW)m0a#r?^PS_Wmg~dC z3p55GZ3stRK1=#k|Aj)ZjHQYhiO#ksw-QZ??rgd6d-QFNO{m%t7g9wi?2j9zl+Q-C zX@b=%WLq{%c}79ovX`2*gglZb2SOSQu+9J*0eWe=&}_tI(sf!cyjnoplXZl!-(G0D zcg+s|j}n@-Wzlois4yd+PC@W7EF^pLsif?*S}zN5EoCa2(La9UJ0?PoM^z4Ws|M@ilQ&3u?}Pz)jW^N?Ls@A*q9^#%UMK;wUn1x{&R&uK0e4Rw8uPj! zcPj3lkKM+M?n@O0EClxG{1YwddJ|r1!ks3(7--sanvVqyR!Se|bjxvP{O9u7hG%`D z*d$jaMQ=ZsZNEE?TvE0!-5KJUk?suj%uIKNd2XUHZETV8M5IP|4>MpPVgKfgf7aRf zd8mgKp3lQP+&KJsh-_Xswkvx3m(pWAe#;{;&P@)NsRoWcrKs`1NBn}DEKOv`3Yk? zt6BTh=ZRY`#te)MnKjB8|GG2nkDj^C_?H^)JiwA#ANM+kyvWv!80f!{(P7>pPnNT7 z9#YVI2!V+a)0ws_`tA|JEFn3gIoYf(w-tM08k_Z}y(On`8iaBZqE6E<+@&9);A%W) z|HY>=k}IPrww%0{siX43SbJE`F_Jx=J7m*$+la50%NYKm{%eu8NIyb~kwGEOw0_V0 zhPse*z3+&Y)%*q$J|~_T#!>wS`hV_qUr`1OjBvX`bDM7+rLRS_$~93DArdE@QV4-9 zBWTvG!QZ1+@ubwJ2v_!m>xQ!@ZIsfdl>G`z>+k{k4l{f9u5y{_=#bpBZa%{#R*2^3 z^5WlReaQ0__CJNJ8m|srysuv?3Rm;9PFWXFQJf*KvLx-XIh$uh@Ubn$fJ)Dl{_A~* zeaE)ZYdPs>Jc2oiw|oRL#CmzH&B#?QgWUS^lKgk~)L! zrH1~+xf9v%Bt}N7(c<8q9nsqtvTQqVtNwT7O)lG-SX@dOEn5Mp3zt-IX61zJ)N6** zxsquQCn1hCy~&_=EH~|U(RY6n2I1y|+KZfNpL@=iQ$P{iX{6+qfoFJL2&O3RYUBfH z3@*EjyQ)0zIwwbR6wGs;GHpk%eYITp@Odc!CwXivwaNtBr2qoyqbI{|MbS6_=z`V|un_=Jy z>{g`CuR7!Zmd8hM?*2JNV!4HVV12nEZ*d^WGfkLPzByy|i(MgWx#>i>QbOb9gbjt~ zWK{I_u(g=}(thuSvpJL_j2xn0Fou$GA@d(j&6~m>>b#4r6&MX?lvDLHrb=p}E{!iG zo+x*SaDPbS3(^Yl)aqIP!Ijm*6LQXl?;WAA+0JvaHZLFdx%;q0ZcE_1(rlbii&cyo ztIb0$(!G{lBNdlpJ=ktCBK8cYGhyhwfa9@ryS*VOst2w&qR>pr*yq!)Ms*e02>Y1l zj1Y|9xLRbXw=2InV|0EEOd{2|jBTZ@uy$Xs1 z=^OrPzoRs~{LUl$k=R$*k=UylErP9cjMpbMo7&>Cf-NpLI(LFteyh#hpmOj3UX2Pf zM$$LchjWCc@q7W2uRaEyI|D?DCA<2X^^QUA?myV(^X)sIm`XrQRv>tIoW+T3RHP5S30G8*V(y^R_~z6#3-LrMqOb-YZMtU-&ONfFL$v!nxE&; zeWwzdR8P*aip@e)1A2#i2&1=-Q4i79wv;eu+lYFA1iz3+qqYn~d0=Fa`Q{E9nqn^G zV=<0Smi+i6Lr(PeJ2#5TElJsXAgykE*G6@#&m@)+7&0Zo(exMZ9Ioy3<~#XBo{(tW z2En*jeTz$wi@|nH=jwc!aR^GsS~?o_i@r!jVdFcJb>K(S#J+xqU69STXEi@h{y*wD z;tFPJ$xO|s_)^MNq{v!|q^c^)g(ux|wRzVnCQ_<}`FSwDjkIPK$OHw$(xnLc? zEtF2bKT)`iRlWiF8U4r6yjR96^$G41PB!b(no9o7XS8a_S?hRMA9tLqW7+D8#uU8< zslhIRsWGAqaxi9NUfZ2p_c%6(K=)39g#KLuq5W2&^2JXvzeG8aO96cQE-8z+w=e$`k#UY|%broYxgF9L-y&&tT^% z9S6m1-|A%b-7jMw0nsElArKth_Bo??PgiMh`(blbUpEy>d!#Xd^+0PrCG-|MA)Fl1 zxO!B`DlUqjT$N2XuAv+6of0c#Gta(?Tn)%Ka|Noep!p>d&zE(;W^V(#@1yVi327RS zhebF2ke7V43A;2*^!7Jd1>DNcb)!dg66kLkVJ*%U8)lfG7D9cXA4m)3TP*~AU_*Le zR`UUR8EvJy(-7UK;m(bk=N!4tc9bj>N}m&&2dNIM2TXo7i`q7!9rURE9T2Dm5(=Rn z01mQWwoHpfe0)cAEK6S5W#bKXk^|t%et3F$cQg95Z2RV`EZGsepm`XVOd`6>`7O#_ zu>OX8`^AewrfCt1T+PGxFs0e$pC1tZ?SbJOw~irBh{PGPy=bjeT1%whSkwdBgg*0` zekD63(FePl-t@Bne|PEt70W*!K4YgC61^a<-^WzUS#ltH?Pn#NVtd0MbbxUL>}&7G zJN|$$!kTaLYKpk%rUQb4k3uDVx>Gev2xs&Dp+85e=wC&0C}I@$|4qNgU^-65v%Ra2s*ib zb37A>=wH$6gcYc>ac?q;6ym_Ju%wWmcTNNQ@uHjh=|)s>4>CjV25-+_)NH(gbc{EX z|9GS1>D{c)h6D_{o7I<@R}D^e@{$g zA)=7Bnd$asniEz{NU|sMQmyAaP^|kk|Kx5C=kX)hx%T$FLA82DLrs(ajQ*J0>=R9q zLx$Z8pbt9!ekCyP>Rl^kZq9FDoRBdA7p?b!{`ZfNDzs74da{!ZDl2-}oRV9TvqnSN z=8_(ZAEn2#_9HDGLYf9Xr4`*&L?T5yI_i1WBK?}LL)dlJ;Ins1j7{bBS=OFuF(D#2 z_b>(``-bav(${n(Fyl2AQ^w#A^iq&B!HB-^2>!@Xgo%tbjph))~SaFMh@-`GiG`FqYxjCbaH(K=IKB`dYQsQ$GH1HI)mZ=zo*5 zLD82KK4Wki;iu@6_=4AHH286crf0y)Jy@A6drc6wVm~&+ehD^XBvuW5snC`6xEaE< z*oG;f@()w=R-ezqLa-4%I_;~(kY3oRd^woK4%vBYqnnOXLCm5mY0Hzlc^j~WD;#{@MlU2Y`82B+U-eDQX7#Z?JqLf$ zjU~rBN#))6l+b}lv&mQYUJ|Huhtr(oA#&z(@HIljWQ#G zrSv0LlA+vatIkiLzZlh-x0X>GwaT%WZL<{^4_t&xJNK zJg0pYy+$^T8qN1pHfO0Lt$zOZbG>jpCQa#wdCkXzh8|=55C&X&R4D0KYks7$fv6l~ zG?X~OgYDnlDR_=-UxyWO&1);U95jDzLq^0T?#dNTyKa$~l*C@BM@s$F*EyOKdoCl; z@OQRRGi5E6`s!C*CXMCTaAdnBw_3uJUJW#vGAC1_T*YbNg-}9-= zoV;Tn<@FA{XXwvFfNrX-zI+udyC08$t@6m5mV7ZAU~iTo{+dJftfUz8 zehv#MeNuEDu@qVZE3bATef0U$Vs<)t(TgN!^86cZWqS-#NGPD> z>JOMFVIO3nBY&UlOZq_nCph>>hP)nwH67}f51PwRydC>sJEcHaJ9qj18bL9+dmVxk zhG)@={LG!fmt9QCVC!PfTi`t2PUOKp})u!QJ$O49b8Y2l_3*l?F0RdBc@Q> z?&$JVlTv*s3WQ32)k7c|Wj#^ERU_znI^~aTIE? ztr!lU+^t17tt5r`{7CsEa?c0*<2gJ6k=nw)dA_v!XEHGHW?TUOhdg|6xZ`QA*Evm^Fo$~4sz1uf5UOG0dT_EApY?{%@aQ#cSNGkO zUg|1y^Z8DBzdg)d>~Te_CEA^FQqtj4(q`;^)9f^`9WSArvT5*Pm|TP@LLVjB&-PbS zTB%xobCpygx~UiWp!VSCkp%VpNyNntp^-dPRV4XlQ?>hgH+_1|#}pKO!ywf?CO$}2 zuyX*Z@|u^%KrSu|QRIqV^INLW^BVsQevygGW#Q{r(*d6X>mR`NYya)5A^%Uq?=YknuSYYA_jW>oD+6ON{r zRKu|vBAU`>eRrV6Uf>n^vl)K|wfqK*U*2nbeoQ&2zkcL$McoEDh$V}mcdpax7`gLX zDrCd{TF?@m{9BdcjxF);Xy3JZFb{E~l`vRPz|H=U(O5)AMtn zv3~^nk%P}3&Qlv+jcvHEGuXt5$xgowQIyk?sxKB5rp?>MHhex|@_a3K!dT-sw{$5Z_xs9- z1TR`P{`YC0)lr6_KYGpH1?nSDYu;RSZf*<5&6^K6Lu8g2*bHjwAw$~xP~eA&`tw)p zBW>YnVk1`eK5PFIgl1GTw^zvq3E9Q}1c$6)Fh(W);)!fv2txn}$LZ&cmuBzud|9r5 zSYu?vlj4kT-L^E#DP&@>5RNjjuoq`vmzI3&dy{AFt} zH}1})IL7|v3~)g0{T@Xx)V*L723s3^;GA5is9 zRaL5~ul_SuNcmK~Z0@8MXivw2G+<*KW`#rz(La)|95RLR<%8UiJ$eC!!9a?2(l`fE ziv`r@bz(@ww95UEpzgUGv?kvu{f;6-&Q8g4O{rul_f$c5N$@fF)RMWWx5^X~qnziw zq)w@goLx*J$=)!Twpx|z`HIQ`{nzk^%Iai8pp&TnF}EOkd-(mLKDS-=7yu>Y61FKe z7(NdIqy%@d+D~0BLzYcNVTAtDs6EpeLIU`t8^$p_V(NI|c|myL;#VZ@Tl$sw3Yyz4 zKoI>#l;90tr#-?yC7e?FU{R%~hbR4t1bisfGfoP}oq?BKu6%kU;0H04O*zh0VXUJa z_i-PXy4Eg`zuItjv+6+S)7;V%ik!{83sIqm{N;EnvRyS=!OB{XtHNGcT;bBPs;k}Q zCB>fds!FYRah2Cow79BtrB+Z}=_xN>Qf1F`RTOKkF%`w-ZhM8xUhJ_iEiPZ?&2-~G zwyI`{w&1qfs>-phx)N8lAQ`JI*;8^HQ#BQR zX?3+$URmm@vuD`7p0d=^v9;y5yW--tLhn_HDRstwE#012N3`X|?($Omytz}yq}ms+ z^r%7@iM6s~cdd&=Wo2ch+R>d)Ys+0Fo~oMk^rHNt8dtH~T~$(4URmp^@%Te(TsW7z zv|3MTdU|c6)2by6lrD z+bfDH$}7b&z;`)rm!uk#G(Itr*Nn+_^=6b;p<9;au3lO!Atl8nOI@YlyUs4pgcNPr zwBm{imF>x4QVbBR99yPUCmCfFBx#!4RVe{UT4{N$N4!+oHIJ*ZXqk$)*ju(hB8{;p zEtHyElX#6*olKAsQ6g1Ju_<+;QEIz-x#Ldlj&rpI3$+F3YF7&7Yp+bVFVGU~+QI~U zYQ2l4q4Cr1u!0v56bR5Ny>9oNny1F=(lRJrNpVf7tMmpf%j;QMRa1Vu$#wx2yk59N zD{xhomRByZ&#tMesP@=BRd&^6HR<-NYR}c?xN5y_VZ&N`d8rFF^{gbI^jz&Gud7yA z&^~2pape+Msg~{acyP|9$!l>st00dsy&aD#_j1!K*k|n6vD%cX%1XEhM6;@0l|(A> zd)TX#kHn%B)m3m-fv32}L!?1&iQ@Els^_>$%WJ?kz+t5Sh7@-SHFUcKfy4%x$6Fip zN=Zvx6lSla}Z5TvKb$cG)GKtL6%AarqK=@nV;o-da|rktgY-wNz7TwX~;J zTv@vU*;89mQ{{FSEiZSi&=ynjDkU|F-S*;=5-OnODycwe>{VrUN>y1}tEHb~*QPn< zYEDO1jy8K%!CY>@WcG-o~RX(*^c6Jq_Z-qn2zj>9*DrqIVUqEWvImMph+*#@A zH`9(H^YV-9gf(mJ6Wm$ugHGJsmYCs-~!F@onI$ zC1$QE`fKSHF5!n7m+CZ{x5k|=ZCYdYF5Jqmw$@!i35%DwEN2O#zr0KaIKxX)2|8~r z3}Db#2<7&q`v(Yy4(7wf_!Sjb(}_y8d6l)^>gp=#=hD+WRVB2BRk(R`@`6Z?Sdoe^ zr9IW~YDKpjqoFzS8V-}JR;}zSkZ3SeiOWrY9~@{TIrp4-^p6_%O3B1Trbvzqw#RAb zo)D@R_+$-^~^*}fI=ho)dAP>r1HG!TeQ)wp9{(k1~qGFto z=CcT{xFOv>uTnApP_5F_8R3k&)MO~>Go6?scW#g< z!mDv6wyP5q-f_uA9`ltf;_VAolzW!i2PCymK5foMrKCg|H%#)Eb+X-CSzEq@anDZ2 ztT6&4GqCwXsMkWN>hdZSvwyXA-iqoX7pg(Et29p0)ou`4)o*cCmHS_>oQ04&D77!R zJu{@5H>m0$)Jx3q*i<)-gp=&r1f`Omx!ysvou$N?G-ZN4tEQ%SrSV#zn8|q0 zrjo8=)!Yg8nQBPQW#n1nsxiV1FQkxamteoCjQ$?OBTJOsVw7LQIlX|v(9cr|_U!V? z;u#K@;taYQ&0(-spdJ<#D~hWp1*&BE8XEW{ zd!T|=$jMZnWDlx3(InSNCsTkBcNN_lwzEQmiD3l?v!@l$Paq6-6G{ zMl^OcFDYWAH3mm}eLWKpGmZ)yYX%TkBvQ4fM*62e&PjNRg%gKBWB3omaymRl2N?p9 z888sjsmrrik!=V(X23u^rrKp{F=o}vm@U8})|gOZcQYLlDrnlk_^Q2)R-t3p(9IYs ziYw7^>x#^2sF6%NUBg>~yVO%vTvU!0pPsJNRXUKX_OvWBL`o4mUXP2pHwv%95a;Jy zOZ@pgU=@Rv4Q8RN=6Lf3i(6X0vaI@xmQ*E5Pp_=1sZc|2k*CU(+W(W>8Nuk(@g}*o zxHy^QW@H!>(|G$0<`gwvX50i>@%|U<8}~n{rd7eS9xsEKYDrCbtv5MNq{g+1S_aMd z?`McJa>&0oU&R6m_F!OE@C(w$uyGVsS1~dCqI}2{qbNANnmQQ5qR3Up)SQW1oW)xP zzYxFHlc9RQbn_z54Me~O6^{{W*%W1qnJq=BwTw~!3;hb4%D>i~j3N6AHiT-*t1*9_ ztv+`We-@RNFJb<+#8o*Irv|f%$vBE*{)PN%L{bLjWoX3{Qi?pMe^dFY&U98B=cy`^ z$hB5Z26@fSc-9?IsgGmqW#u)fk(lZf4>GkvKPxG6msgZ~YBT)EP{(8>QUt9{N)(wV z#yjkKUo@FEINxNfjB#U@<(F4F>Z-*Y7>~yn#!7ia9sVEIM+}{o96$SZ2x2&F1X!br zFlsV?wAzK9u7qRYpEUIU2){Au4+s&nu`O95Wj|}a4QPfZ&+3@>m|Y!Byu8Gk@FCbm z4YvOK)kamrV3#HJ2c$lOwrZ&0#+(oBq1@Ch(KLrpCdb@Rg7t%WJ8}?Pd8MlkiK>QT zRL(OcQB8cs5D}GzIpzizmR+$4sNcVfo=jlWv?8~Jt14GkRC#M}fV7EBfr8oj3o&G+ zA#53sP1+cp+#HWZVEr%h3xxguY%;KMnewQ4o6JoAFS3bYXHUQW`r_*HvBo;bSY}Yy zFHgE2VePrzG~!?etu^>X8Bf!(g?rtlmDhL}h$}H~RaKUiFF}o!^_i-gl|&sJPjK61 zHKUA05<44uOoOyB1c{ZN&g(Y~%Rqst69tk<4S&q&jO;Z-Ysj8mQ@$KaW_r45+)Yo< zmQ|mrKzPZHRVbvaS|o7=Db> zDsdJZfUN#P__GU?i3_z-n~Nn@mSZr?vhWA#{mUk57#Lt+A4o;9;RdBN>1kPy87WIw z+Lh%KF*M*_P8|u#}}RxUI~2l`Pax@f0(+bkHk1qbx5f!Qqy*KSR$@;VWtkgP&{>pto7^ zO+3O+s_V=#)`Cq75XdU4)Zos1613&ky1?oCUx8W=I(5f0GNJudytqKK!naH{kscV! zmFQpz2lEq_N-45TI=!`5NRdyUztLD{&fjd*v(3Lui4~Rq5PYi0mreIMbG{NQxYnGT zJzc$}%Syi_XHjHNDbFmjI*V%uQ}%4r4W`K1rW;(Nvr3m+JH=Y8A4m=K=t|GH;rodR?XIVuUQO@Ul5aDTlJ?3Gw9nfyeK{&};p=Be8Y(n6yl=`tEJtdHSwyVZTYQJz;%yO`cficNm z%rKfeb1ut6`C0Qxd0P2YKo@67PEXHO#!?oMhs?$r)TAI^9G?`l){kP!kn7}%)NCnX z{eoR6BHK>YKL!<93a+Ls1M$k#$!Na;NWp8yGjB*^A$KPPC3Ys3M;%Cgr#BW-b&lufk zN~+1CwOHH6C7)D|iG#~A@r##3EpbC!V^;ywjWLT^>{_NIEqe=OvDesYAWXwgL@(>F zh6HBm@@(r7Owp;{%91!?z-!~_H->V-ZUvT0Wwn4^Nr*W*nKZ#o(sv8kQAa;Edy-KO zwZp@|zAuAW~@&!YQ6x$ea&yN4iHcL;p)FRWvnq7;$Fg7cp?6O|V zVl@k$Zf_|&>8OIS0m&p5izbz>)5~ptr|{=H$JnG~2z1HyZ1P*GlqeciZM8D!W$l(? zo&|NSjUs5@D9C>C!>$iD6nT{JDe)_kWnvFBut@%fRzHb~Dm}o?E)9#&1JSA^!Q&Ys z4WTQ28exohP_JrlhBemzkNGPHq(*lQW-dx#?4wbcnEWFfEm@NC1_oLWs+d*3Q}Lse zdMIWbD6iH+A+^z#NaHA+B!PTnLB+(UjEEkvu~PHFn8Y9Zl3@3TZ$K#us>wU((>Du zxhpEGs=tAS)w_H}-OAeo8&Ag+S#-;n_8hQ@PWp1C9izW&agz?QoZT2|Ka!*|=2t_B zkARwQ?&CW3Y{2T3(&kc~1iBh?E^Fgk#!1Gg8!UBMn_0zFsk*p?EsjiR%9N}yOd_%= z(lAsi{v2!6@D%N4&PUEv4{KtXk#X8d2w7#{;x1pD!?u(P>5MX}GuLw!S1`3?gX~hj z;8|W?aT?SJP6-CjQXah1zPgkjw1~&xSK)W!JJw^D*4I=uV5Ix`6 zJZ4NQ5zm4BAZ!64%#a1vo=k&x0#X5eJQHr2tqO0F+CX-OdHs-#rRGyca{qMq-@p%34D-eRC7w|IT4p(Bug-EWVVkyR zX+>Q8*eQ_Jhv_)V@w!7walY8W>ZPti8nfi64V$7OK}MEmu! ze%~WJ-{vXcio-jB<>tG%|6R{KaBjJ+-}gP9MxGnNT?PD|`7Z8%*Yhkmd$~|zf6y~x zJ^60$_jU5bJ=O2)`VCJ@opcQeu8_d8K)v;FQ=kZDy*qF(GM!EJ6lvg`Hq*i%Rovl&AcIe`k?C zDN*c|MwdGY!&#(H9>>`Om0pSP=&v)Q0ce5~1kne`kX~$;5A(*3E2kOA2bw zjK9E>JTAC>*yhKoWVO4v#FhK6=3P*nyWDXmhB|%q|Kp({gMQ}>`VBwBFCrrJw7+x1 zf_}EJu*hMTDZaewt=2RZA%pA*Eh4t6}#_lp(2PjMf_9rgQVSx3M9 zwP()ftp8!$8GWnQJ%0JVwglY0xEsGeFDb6@rq`$9{si}vFFgAAeOtcqgJRr$xL<1d z>sMD?+5X`jxNV%WtthC={B~~l&%cX13ir(~Z(q3bOBr|n0=InAY~t7cnLlBD%yTc{ zj>SD|gEO`2!|$$pANOe7d(-c}>ZLWFKWN@9q5FZ(q4*@e?s@I){asDVaOdHE>bI|7a!t;ko?nA|F7EHX zaMf>Ket6jf8*vxnZhB<#oul1b-h2voDeh0-C>k-p?6Duqof2-`SO0C-TMrz6_v53u zJ-Bx?_Ze26; zyPOsFt;hZJs`%>BD?WeQgS#E~eLMcV$szod-0a% zkJLRbr{YKQG@Y~lcwO3!cYTF-xjXTf7Y={nj+ejJnacZUp6bF6?|3TAEN;5~)Mapm_fzWSP353l7tgXfxm?%tpDqmsY;i1!?x&5w7rrn=tR`ZVu( zJa4)lyX4-8z3N-7b8&zFvTtO6e%Zp^AMswuGyj82A5AFFzkdXhU5uF@wpCwJ`qz** zuEFibJ$=Q|??3qCiXUa;7F*q#Wp{47qwbuK3USxtUNP!VEC1{8+-)mxH{pKn`G*$V zf6sz@?#JDVd-B5Xc0FG(zH1Ba^|*hz@q7O$+;;7E_Tp~G{a(?=2cLd;>Ra#N-h}(A z*0eWMo_pw#KHOVy7e2h<$2H&I^XWxg+_DY#%g^-8E!cVRS4p@#aKD>%%~SpU#J_u=lv9h0-^CwY0xe^;bw*A@3+~al$NXtaSmxm?c0PhT0r!2roLjGNUvh6JZn@JZYe#GQ4=x_J{|($3 zxPN--d)w}R^UFW{JMJ9ZgMa_8k6(j_X}XpCRu8IYgXIoBL5v}@yt1bZ{JG!&1R1Wv!$keorJoYS2Tg21Avr!;8Ix~OU-91@u6Ecc( zbae;`aO7iRPkID$C1i)zC4MMi^hjc3$&>iXtXWN#h1M9cP!jrv2Z^Kk-!6{{s0Z zjmNGocO1xq_)K=BI?jf~XJ5ah@s<_cB>2A@|F{8*if4uWi?mPD>G7YU3BCY*PLDrn z=qCQR;ZOb#;~)2*z(0FNfhR?bl@+HF0RJ}nr2Hq!A0)uW|A+BUI2Hc06Trz6PqUST zzBY3P;&^V6qo~B4JF_6E$dalKha;!BAf@P3^77hS{x|Xubk@_`$4(mC2aIiMWODp# zRLl#*JXJD(F^0_F)U>Q|L~c#75S<)LD zve`Rvx^xzjA<`#j8`o@@$+=ACG(Y>JK40e}KHs5D+^Wj6^(O<{U?};OoFrTz3w#6C zxzp6TqwIWDvIu_G43nmtwLV^xazZ5HXV;$6@ z{LqygBE7-G!K>D%L2+_=qxL7Qa-IUmsnVZBy;G!z{xeQi@f8XD3tcryDFfHwhM@oK ziRKk2P&epKT)nCTM*}@qXxao|7tjeDb)}}=0$d8b4Y&i? z1dRDA^JZZCrQiXs#eE2vG8+2?u=6TSI}VJxTGNKTMY(|^fgUc8jeQ&Zz;s{^3!q)V z4ZvZ1hVK*LMZlbEnL7j50~Z5z;96kDb(;2b;0EAfpe;eu&VA>EuMqeY@BpxZn^zOY zQ2zHQ7v*ULZUSxsrm`pI?!za1O~B+oLr37dz=-Rq_xt1v{1&hQ_!h7OnEb&B-*MnQ zz&g$vE#UKld3>C_8JLqo{ekN^y*Rq(gs&S|2h5m=Z39>bw0}sxlQiuK;5uOJ5$Xd> z2RbvbkpSD7sdoP5gs%_yA#fWDvi|@^-Kc5z|Mi4#5%5J|2QZXxQRZY)Pv8dN?!TSz z9Rn`@n0C$5v}b_pfwzBl!q*GjeF8dUV_O0C0S^Q7m{r^QPx!V1M*?lkv_}Ki0W*Nd zfpdYg=`;1fQB$!M0ha>Xf%RNuy9L+{>;$@<;0M~LGhf!2`vPwR>cH*5QF)qnbx6N& z1F#*KnXhT*h4%Z_1OEZ+1yUg2(wWc;*gA`N;r+hDz$YU5eW|m-cMf=g_hQ&Q1ndVk z+yp%%SyKgW1IEpP?m)h5qeVp#4nMd@^!rMqp);@*co4V|7ex$IH9h)1Yz6iL z+kqPRI)EdA-M~2DL0|*07q}VN2kZbAPNLqxs0`wNiTD_5bAYiq~yK7jJ2G)DQ3q205AU&|K9=isxV|Bmp6JY(fNPjUl&DMV3d|>?s z=nc$h=j$%Os6G9@W6&=aXoGHrz|p{VU=HvguoM`(7kWU?1YifS9=HQJvjun%*a18S z>;~FmNe3JS>;onMqq-<3FabDM!hvgn^)G-A82cjWB^+o&E*1hu0lR^jz%4J)zQBZT z_67hmfStfR;C^5$PzSaH`+!@3G04?I?wL*nb^{jy>t7~4uotKU6JF`}MO{vOU<%N^ zkNN_8fvv#USK&)>1NQ;@fQNxmTwNVy2k+~|2loArdI;US(yaTi| za=IS478vzM=qBzr=x@-o6&N9O1jYgTfKFiSoBh5*U?H#`*bZ!^+y{Zjr98k0@VgJv z&cIfn6S?03ECj~>soxiiob3R5fCqt{z^J#V2QU_R9M}$wV|?gffuI!Feu#1bW8a}a ziW``~c+m^22KE7)fF1Al`?dkw-y|xRYGk}@ELf~9rD{v`r3$Py8 z4O|E81?~oB{296d4+2LrE)~8{dSL4@=n9Pb8~%(-2Z2k09e;=Zz}QdmXIzT4mj8A!e@By&CpZLJS5T7p&dDL!W9R=7iob?HT5$NgAuN$}-*az$qdY;4j z2e1&>2W$t<6}kd9QQp{d(eo*v8#sFm^#fJ|`+yz5gh)PWCH}y}z=Oc!5)O=F+-r^U z`Q`(oMu1P;z+=EIz=Z254{#~4SHgi&=b^&_V}Y@W_ye85gVC%Bfwvd985k8qd6Fm> za1*c3PKLHk=@AKJ{aRZkEW52|@6)+FD4pJ;3q&gFk&2Z0>%Qnfr-FAU=A>W1*iGILZBPi3Tyy&0M`S1f%}0O7lKd1fg@8$ z4=e@7UgY!D0W*NDzf%U+-(6t@76xac*2lfKj0sDZPfQ2kP?gzF4`^3MLeoQ+YEMvVDn77pD z+X#$ZMm%7Kn{e8vy^{6;=6wTvz^Gcv2iyX5OFMaKcWI~P%m-3z!OQ2j&4gfQx{AjqnvPstI`nbOU1@_ygAhW7klAU;=O}Fb}vJSP0aCQTKp% zD)5`c2POd9fqB5KKsRtVa0~D-up4+B*b9uB2L841JunZL2TW)tJ+K~l4A=o2=_KB_ zpa-xXxDMD2+y?9e9snk^&~89C(4I>;&v70bAF@k2ApY9qJ1#1m*#IfgWJgcd0)x19%vi_dW8>BOKU{d&`5A zA9u(1X+PjW;6Vuo9s~9PZTZyWA)jv)&<$J!>}{vN0SkYKT$xEZfGGkWMm_=Cfg6F{ zz)s*n;C^5)PzUw_`+%_>9t2+vjK@bul5AMh%Zx7sC7lzgV6_ zKW9D@!^?RwQ_mYUJvwqlM1ywYC6lflH~LC^)fzqQsBPZKd_z3UpQJC8cjh597YniH z#oQA*WyG-TwlGJlZE9n4a)D^kkU&hy$cCw!Ml+|eek zaB$h$!UR_bPu@S7lS+7$h07|}5(5!of=lQ5F}PH@jv>s0$|ZE`pq)0x_xk|qCw}{I zv=8z-jNgVqe)8?H_4u71lr}2Vz;|wtpB+EJXZhI)OTjPIq=%mtw9P6heSV}W`+VXw z5of6OlXBJ(J{P>_1m)F=U)R$oeAfi|ZNyK$(Prf@?Ya%WRQw7gp4Aps{*K7$ltS$V zIY_)};{7N%-qd@;+H9@iIgP_Y=Sq2}My|BtOPP-mU%pglTbmic9Y_;)L8v5}7MTdn zwZv~2!#AjG#IFpBpM77L<6fJiEqr?Gu*TtG9V*TANX1LwZcjoN4lWaAzfI6)Ma~kC zYw~3~arY6|D{(`uiZ0$G<(2$92v20*yE7QqG^2iv!&VBaoXF5jflg4WG{;EOL7KzC zX~;ixzC@c6xyXne>NHbHTaBiEbF4;K_;uQ(IEII z^!whBG{;d2th)Q#-K>1Ok;+NDZKSbH?DstgBimjJN)uGBu;U>{!NOK4j>(D)+o4{v zBSSkSBs)^=VcLf5oS(%$dHB!Bd)kO$Q;qtOvy<}fl;~3VkgXtGwF^thCcd3@b89i5jWxC(b9tk?&vG##wQU@nX6XvQJCo8Ihsc0^ulQ ze^=Bn#?Hci-(%3i=0jmqZ83GkupqjA!$=wSmLf)Wq{!YJ(vAGb315lix1V&=t?{Wf z%*gU`k}@&kUz(LmO?k-qr7ueNwiaLHOXoX~O7; z9$|!|k_Nt!HcTZ==ThXG@ZbYh8fay94-ljwX{s0COW&`(C_;tb@B7_ z3`>rMzGD<8bejPy1<*1|R4P6Y`gVb%w2AMx#9KIMi=aG1zbVO_R4QCvrbdQ-E^u08 zSj|YoBP?2lKr87ZrGoGC6TWx8Og&zNW2`F01K;k9<5Z-b$K2{9^D+;@w|A#)2heEa9>6 zNh0C&#sT3TGdzRv*{4ZgNO<)r(hH5dB>#*1eZ|64j|S1$Y0+3lkgo|HrVFpwd8Eug zM@JaNyX_v*45G2%wUck$sD9ti1n+GYUUaM=eh4d3~+` z_-(|`y(QomCjs~^#ZUO&_G7Dllq0(}ET_??27aknEa3^jyU}e0m#xvv*VJt#T%(`X zljj(DS3Hhfh6f7GHntPqO88JbA~-V%-$Hn>?mibkIVUw#8p+c`_yNM1ehC?S!?wt~pJ$DFFC@95*?!`55l6}=KY==ayYUOAZ6AJ} zgZyGf82B$%DUGzF@e_QIQvC#9Dt?0R64NgcxB-0o@cS9>w#zXBSu!I?#;b9dPFzf3 zB~3SJ@@UKTlIAEBvC;(bs?y1(MTRag(`e+q!%DOB%xP5pNi&+hIH3Oc+3~xIyyYiy zKIT01ZTwu~p~`}cH|QJcke-OZk$9=ZYa-t3{&?`8F}GSM(Q+V`wB;h=eF?rt+zpt& z2#$Kf>_6}Kt&p(X!1xOfhfWnFXsuHAO~k7sp2C4!{C42y!4Gkue&W}SUp0P;Z*Ys> zA^h6$3$FJk_-(+C>Z_lWMb?AYt7%GSD3k{HMZd4sk5^=rn*Tc)=!yifL}}vR zeBxap@%Twzhsn!>-!9&5A7gkOqF;pm!l0qx=;GhVCs>2vU4G(skbg0Q{KS@V@HhQF zhIREzUwW4A6e8&`zbl*uf=bPNYpINm;T_#w)xf>zAodvVOy>?dw5!jsB;m;S|%5 z|HO^$FvrUYCO%XCOWSK-LSK98^!!Ybv^e6W1kp{}Xf3$6QjP_@+up~BYqgQV=Z@C! z{KjEQ`F2FwiL-vpq+Aq1iC>qwqG{z36^|^B{p8;JiuVJQ|Es@lAeXxLX)Z z>5kHOq9|9Hh4XF`r>XY{z68R%!PhMKZVSSfBl_hW)fLMGBLk+LIEBQIv+zwjxr{>p z2I53)XWdM2UT5K?&nWr_^inC`7UF&gp9l?Y!%ci9{iS@}g!fwIJBoqal0CtF>QL7RYnB4z3%Jb`e~sGrb$KYpqBC5ey4lRRsd|WSZI|`14%zaJWOts|(;{6OfqF30O zOgv%tgi6~ly_oR~98zBSNn6z8SB>A(;xVAEp);j`Ga_>Yh$^M%vxWFt2lpWa$5-=4 z8BW!Fahk-n^Nc3$HsW5*yRDC&VCh#=!8mh|8XxL-4w_J-eu+L9;`|$s^7K5@%kZ-71OU*tKW2G&N0R=xoI8 zB<>wVwRI<&ZGt`}HV)O$*~+*~h}J~hkJ-XYB(*)2SAkT|{Uow;4g@JbL~)y^|$XLB$hT#bJ;RNi)Tz2PwvXV7}X zA;J^bvynx7KMz17W&55MIg`Ro-?hi!$N9uPM&2(--b;e>ma&rI+=1SDuhDhv#92%H zzfzwziGQP+_n`573vt|C{l2#u-)+|i;S3(%J`K=F_He~fA1oM}Ey2VYWJ6KX7{)pN zlBsvZ1mQH~SgBykHcaVRk#odltj(m7?p$!k2yWRt5!BCx_Va}yyV-vt;a!AVeNxdL z)g$yiL8khn(0(oPU!?w5N&KxQz98L0_DyXBU#GP9hG2X` t&DCsG>njIVmB)*03 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 literal 244038 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 diff --git a/MainWindow.cpp b/MainWindow.cpp index 8b265c7..3b91d83 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -5,6 +5,8 @@ #include "MainWindow.h" +#include + #include #include @@ -15,9 +17,21 @@ #include #include #include +#include +#include #include +#include +#include +#include +#include +#include + +#include + +#include "json.hpp" + // #include #include @@ -45,6 +59,7 @@ MainWindow::MainWindow() _inputField = new BTextControl("", "What is the matrix ?", new BMessage(kQuestionChanged)); + _progress = new BStatusBar("prog"); _progress->SetMaxValue(100); _progress->SetTo(0); @@ -72,6 +87,10 @@ MainWindow::MainWindow() _inputField->SetExplicitMinSize(BSize(B_SIZE_UNSET, askH)); _inputField->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, askH * 6)); + + _apiKey = ReadOpenAIKey(); + printf("key is: %s", _apiKey.String()); + BButton *sendButton = new BButton("send", B_TRANSLATE("Send"), new BMessage(kSendPrompt), B_WILL_DRAW | B_NAVIGABLE); @@ -79,11 +98,10 @@ MainWindow::MainWindow() _answerView = new BTextView("answer", B_WILL_DRAW | B_FOLLOW_ALL); _answerView->MakeEditable(false); // Disable editing _answerView->MakeSelectable(true); // Enable text selection - - //_answerView->SetWordWrap(true); + _answerView->SetWordWrap(true); + BScrollView *scrollView = - new BScrollView("scroll_view", _answerView, 0, 0, false, - true); // horizontal and vertical scrollbars + new BScrollView("scroll_view", _answerView, B_FOLLOW_ALL | B_WILL_DRAW ,0 , false, true); // horizontal and vertical scrollbars BLayoutBuilder::Group<>(this, B_VERTICAL, 0) @@ -241,8 +259,60 @@ void MainWindow::sendQuery() { _progress->SetMaxValue(100); _progress->SetTo(0); - auto url = BUrl("https://www.lema.org/"); + auto url = BUrl("https://api.openai.com/v1/chat/completions"); BHttpRequest request = BHttpRequest(url); + request.SetMethod(BHttpMethod::Post); + + // if the API key file contains a new line bhttpfields will crash with invalid content + // .end() requires include algorithm + std::string key = _apiKey.String(); + key.erase(std::remove(key.begin(), key.end(), '\n'), key.end()); + key.erase(std::remove(key.begin(), key.end(), '\r'), key.end()); + + std::string bearer = std::string("Bearer ")+std::string(key); + + BHttpFields fields = BHttpFields(); + fields.AddField("Authorization", bearer ); +// fields.AddField("Content-Type", "application/json"); //NO, this will crash, we set it in request + request.SetFields(fields); + + +nlohmann::json bodyJson = { + { "model", "gpt-3.5-turbo" }, + { "messages", { + { + { "role", "user" }, + { "content", "What is the capital of France?" } + } + }} +}; + + +std::string body = bodyJson.dump(); + +BString mime = BString("application/json"); +//request.SetRequestBody(body.c_str(),mime); + + +// 2. Wrap it in BMemoryIO +auto memoryIO = std::make_unique( + body.c_str(), // pointer to data + body.size() // size of data +); + +// 3. Set the request body with mime type +request.SetRequestBody(std::move(memoryIO), "application/json", body.size()); + +//curl https://api.openai.com/v1/chat/completions \ + // -H "Authorization: Bearer YOUR_API_KEY" \ + // -H "Content-Type: application/json" \ + // -d '{ + // "model": "gpt-3.5-turbo", + // "messages": [{"role": "user", "content": "What is the capital of France?"}] + // }' + + + printf("Sending Prompt to server: %s\n", url.UrlString().String()); _lastResult = _sharedSession.Execute(std::move(request), nullptr, this); @@ -288,3 +358,35 @@ BMenuBar *MainWindow::_BuildMenu() { return menuBar; } + + + +BString MainWindow::ReadOpenAIKey() { + + // /boot/home/config/openai_key + // or ~/.config/openai_key on linux + + BPath configPath; + if (find_directory(B_USER_SETTINGS_DIRECTORY, &configPath) != B_OK) + return "error: couldn't find config directory"; + + configPath.Append("openai_key"); + + BFile file(configPath.Path(), B_READ_ONLY); + + printf("full path:%s\n",configPath.Path()); + if (file.InitCheck() != B_OK) + return "error: couldn't open key file "; + + off_t size; + file.GetSize(&size); + + char* buffer = new char[size + 1]; + file.Read(buffer, size); + buffer[size] = '\0'; // null-terminate + + BString result(buffer); + delete[] buffer; + + return result; +} diff --git a/MainWindow.h b/MainWindow.h index 20613eb..e997826 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -10,6 +10,7 @@ #include #include #include +#include @@ -22,6 +23,7 @@ #include "/boot/system/develop/headers/private/netservices2/HttpSession.h" #include "/boot/system/develop/headers/private/netservices2/HttpRequest.h" #include "/boot/system/develop/headers/private/netservices2/HttpResult.h" +#include "/boot/system/develop/headers/private/netservices2/HttpFields.h" #include "/boot/system/develop/headers/private/netservices2/ErrorsExt.h" //From private headers ! @@ -43,9 +45,12 @@ public: virtual void MessageReceived(BMessage *msg); void sendQuery(); + BString ReadOpenAIKey(); private: - + + + BString _apiKey; BHttpSession _sharedSession = BHttpSession (); std::optional _lastResult; diff --git a/json.hpp b/json.hpp new file mode 100644 index 0000000..31590ff --- /dev/null +++ b/json.hpp @@ -0,0 +1,25580 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + +/****************************************************************************\ + * Note on documentation: The source files contain links to the online * + * documentation of the public API at https://json.nlohmann.me. This URL * + * contains the most recent documentation and should also be applicable to * + * previous versions; documentation for deprecated functions is not * + * removed, but marked deprecated. See "Generate documentation" section in * + * file docs/README.md. * +\****************************************************************************/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#include // all_of, find, for_each +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#ifndef JSON_NO_IO + #include // istream, ostream +#endif // JSON_NO_IO +#include // random_access_iterator_tag +#include // unique_ptr +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// This file contains all macro definitions affecting or depending on the ABI + +#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK + #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0 + #warning "Already included a different version of the library!" + #endif + #endif +#endif + +#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum) + +#ifndef JSON_DIAGNOSTICS + #define JSON_DIAGNOSTICS 0 +#endif + +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + +#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 +#endif + +#if JSON_DIAGNOSTICS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS +#endif + +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + +#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp +#else + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION + #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0 +#endif + +// Construct the namespace ABI tags component +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) + +#define NLOHMANN_JSON_ABI_TAGS \ + NLOHMANN_JSON_ABI_TAGS_CONCAT( \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) + +// Construct the namespace version component +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ + _v ## major ## _ ## minor ## _ ## patch +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) + +#if NLOHMANN_JSON_NAMESPACE_NO_VERSION +#define NLOHMANN_JSON_NAMESPACE_VERSION +#else +#define NLOHMANN_JSON_NAMESPACE_VERSION \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \ + NLOHMANN_JSON_VERSION_MINOR, \ + NLOHMANN_JSON_VERSION_PATCH) +#endif + +// Combine namespace components +#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b +#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \ + NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) + +#ifndef NLOHMANN_JSON_NAMESPACE +#define NLOHMANN_JSON_NAMESPACE \ + nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN +#define NLOHMANN_JSON_NAMESPACE_BEGIN \ + namespace nlohmann \ + { \ + inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) \ + { +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_END +#define NLOHMANN_JSON_NAMESPACE_END \ + } /* namespace (inline namespace) NOLINT(readability/namespace) */ \ + } // namespace nlohmann +#endif + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // transform +#include // array +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // nullptr_t +#include // exception +#if JSON_DIAGNOSTICS + #include // accumulate +#endif +#include // runtime_error +#include // to_string +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // uint8_t +#include // string + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // declval, pair +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +// https://en.cppreference.com/w/cpp/experimental/is_detected +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template class Op, class... Args> +using is_detected = typename detector::value_t; + +template class Op, class... Args> +struct is_detected_lazy : is_detected { }; + +template class Op, class... Args> +using detected_t = typename detector::type; + +template class Op, class... Args> +using detected_or = detector; + +template class Op, class... Args> +using detected_or_t = typename detected_or::type; + +template class Op, class... Args> +using is_detected_exact = std::is_same>; + +template class Op, class... Args> +using is_detected_convertible = + std::is_convertible, To>; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + + +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson +// SPDX-License-Identifier: MIT + +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + */ + +#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 15) +#if defined(JSON_HEDLEY_VERSION) + #undef JSON_HEDLEY_VERSION +#endif +#define JSON_HEDLEY_VERSION 15 + +#if defined(JSON_HEDLEY_STRINGIFY_EX) + #undef JSON_HEDLEY_STRINGIFY_EX +#endif +#define JSON_HEDLEY_STRINGIFY_EX(x) #x + +#if defined(JSON_HEDLEY_STRINGIFY) + #undef JSON_HEDLEY_STRINGIFY +#endif +#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) + +#if defined(JSON_HEDLEY_CONCAT_EX) + #undef JSON_HEDLEY_CONCAT_EX +#endif +#define JSON_HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(JSON_HEDLEY_CONCAT) + #undef JSON_HEDLEY_CONCAT +#endif +#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) + +#if defined(JSON_HEDLEY_CONCAT3_EX) + #undef JSON_HEDLEY_CONCAT3_EX +#endif +#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(JSON_HEDLEY_CONCAT3) + #undef JSON_HEDLEY_CONCAT3 +#endif +#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(JSON_HEDLEY_VERSION_ENCODE) + #undef JSON_HEDLEY_VERSION_ENCODE +#endif +#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) + #undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) + #undef JSON_HEDLEY_VERSION_DECODE_MINOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) + #undef JSON_HEDLEY_VERSION_DECODE_REVISION +#endif +#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(JSON_HEDLEY_GNUC_VERSION) + #undef JSON_HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) + #undef JSON_HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GNUC_VERSION) + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION) + #undef JSON_HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) + #undef JSON_HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(JSON_HEDLEY_MSVC_VERSION) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION) + #undef JSON_HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_VERSION) + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #undef JSON_HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) + #define JSON_HEDLEY_INTEL_CL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION) + #undef JSON_HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) + #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) + #undef JSON_HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PGI_VERSION) + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #undef JSON_HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) + #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION) + #undef JSON_HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) + #undef JSON_HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_ARM_VERSION) + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION) + #undef JSON_HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) + #undef JSON_HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IBM_VERSION) + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_VERSION) + #undef JSON_HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +#if (__TI_COMPILER_VERSION__ >= 16000000) + #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif +#endif + +#if defined(JSON_HEDLEY_TI_VERSION_CHECK) + #undef JSON_HEDLEY_TI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_VERSION) + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #undef JSON_HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) + #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #undef JSON_HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) + #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #undef JSON_HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) + #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) + #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #undef JSON_HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) + #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #undef JSON_HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) + #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #undef JSON_HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) + #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION) + #undef JSON_HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) + #if defined(_RELEASE_PATCHLEVEL) + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) + #else + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) + #undef JSON_HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_CRAY_VERSION) + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION) + #undef JSON_HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) + #if __VER__ > 1000 + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) + #else + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) + #undef JSON_HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IAR_VERSION) + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION) + #undef JSON_HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) + #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) + #undef JSON_HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION) + #undef JSON_HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) + #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) + #undef JSON_HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_DMC_VERSION) + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #undef JSON_HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) + #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) + #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION) + #undef JSON_HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) + #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) + #undef JSON_HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PELLES_VERSION) + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #undef JSON_HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) + #define JSON_HEDLEY_MCST_LCC_VERSION JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION_CHECK) + #undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_MCST_LCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION) + #undef JSON_HEDLEY_GCC_VERSION +#endif +#if \ + defined(JSON_HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(JSON_HEDLEY_INTEL_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_ARM_VERSION) && \ + !defined(JSON_HEDLEY_CRAY_VERSION) && \ + !defined(JSON_HEDLEY_TI_VERSION) && \ + !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL430_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(JSON_HEDLEY_IAR_VERSION) || JSON_HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_BUILTIN) + #undef JSON_HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else + #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) + #undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) + #undef JSON_HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_FEATURE) + #undef JSON_HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else + #define JSON_HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) + #undef JSON_HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) + #undef JSON_HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_EXTENSION) + #undef JSON_HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else + #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) + #undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) + #undef JSON_HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_WARNING) + #undef JSON_HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else + #define JSON_HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) + #undef JSON_HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_WARNING) + #undef JSON_HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) + #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_PRAGMA(value) __pragma(value) +#else + #define JSON_HEDLEY_PRAGMA(value) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) + #undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) + #undef JSON_HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) + #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_PUSH + #define JSON_HEDLEY_DIAGNOSTIC_POP +#endif + +/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") +# if JSON_HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if JSON_HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(JSON_HEDLEY_CONST_CAST) + #undef JSON_HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_REINTERPRET_CAST) + #undef JSON_HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_STATIC_CAST) + #undef JSON_HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else + #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_CPP_CAST) + #undef JSON_HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wold-style-cast") +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define JSON_HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunused-function") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(1,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(JSON_HEDLEY_DEPRECATED) + #undef JSON_HEDLEY_DEPRECATED +#endif +#if defined(JSON_HEDLEY_DEPRECATED_FOR) + #undef JSON_HEDLEY_DEPRECATED_FOR +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) + #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else + #define JSON_HEDLEY_DEPRECATED(since) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(JSON_HEDLEY_UNAVAILABLE) + #undef JSON_HEDLEY_UNAVAILABLE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else + #define JSON_HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ + #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else + #define JSON_HEDLEY_WARN_UNUSED_RESULT + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(JSON_HEDLEY_SENTINEL) + #undef JSON_HEDLEY_SENTINEL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else + #define JSON_HEDLEY_SENTINEL(position) +#endif + +#if defined(JSON_HEDLEY_NO_RETURN) + #undef JSON_HEDLEY_NO_RETURN +#endif +#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NO_RETURN __noreturn +#elif \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #define JSON_HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) + #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#else + #define JSON_HEDLEY_NO_RETURN +#endif + +#if defined(JSON_HEDLEY_NO_ESCAPE) + #undef JSON_HEDLEY_NO_ESCAPE +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) + #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else + #define JSON_HEDLEY_NO_ESCAPE +#endif + +#if defined(JSON_HEDLEY_UNREACHABLE) + #undef JSON_HEDLEY_UNREACHABLE +#endif +#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) + #undef JSON_HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(JSON_HEDLEY_ASSUME) + #undef JSON_HEDLEY_ASSUME +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_ASSUME(expr) __assume(expr) +#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) + #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #if defined(__cplusplus) + #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) + #else + #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) + #endif +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(JSON_HEDLEY_ASSUME) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif +#if !defined(JSON_HEDLEY_ASSUME) + #if defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1))) + #else + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr) + #endif +#endif +#if defined(JSON_HEDLEY_UNREACHABLE) + #if \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value)) + #else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() + #endif +#else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif + +JSON_HEDLEY_DIAGNOSTIC_PUSH +#if JSON_HEDLEY_HAS_WARNING("-Wpedantic") + #pragma clang diagnostic ignored "-Wpedantic" +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) + #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) + #if defined(__clang__) + #pragma clang diagnostic ignored "-Wvariadic-macros" + #elif defined(JSON_HEDLEY_GCC_VERSION) + #pragma GCC diagnostic ignored "-Wvariadic-macros" + #endif +#endif +#if defined(JSON_HEDLEY_NON_NULL) + #undef JSON_HEDLEY_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else + #define JSON_HEDLEY_NON_NULL(...) +#endif +JSON_HEDLEY_DIAGNOSTIC_POP + +#if defined(JSON_HEDLEY_PRINTF_FORMAT) + #undef JSON_HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(JSON_HEDLEY_CONSTEXPR) + #undef JSON_HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) + #endif +#endif +#if !defined(JSON_HEDLEY_CONSTEXPR) + #define JSON_HEDLEY_CONSTEXPR +#endif + +#if defined(JSON_HEDLEY_PREDICT) + #undef JSON_HEDLEY_PREDICT +#endif +#if defined(JSON_HEDLEY_LIKELY) + #undef JSON_HEDLEY_LIKELY +#endif +#if defined(JSON_HEDLEY_UNLIKELY) + #undef JSON_HEDLEY_UNLIKELY +#endif +#if defined(JSON_HEDLEY_UNPREDICTABLE) + #undef JSON_HEDLEY_UNPREDICTABLE +#endif +#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) + #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) +# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(JSON_HEDLEY_UNPREDICTABLE) + #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(JSON_HEDLEY_MALLOC) + #undef JSON_HEDLEY_MALLOC +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_MALLOC __declspec(restrict) +#else + #define JSON_HEDLEY_MALLOC +#endif + +#if defined(JSON_HEDLEY_PURE) + #undef JSON_HEDLEY_PURE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PURE __attribute__((__pure__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_CONST) + #undef JSON_HEDLEY_CONST +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_CONST __attribute__((__const__)) +#elif \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_CONST _Pragma("no_side_effect") +#else + #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_RESTRICT) + #undef JSON_HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT restrict +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RESTRICT __restrict +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT _Restrict +#else + #define JSON_HEDLEY_RESTRICT +#endif + +#if defined(JSON_HEDLEY_INLINE) + #undef JSON_HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) + #define JSON_HEDLEY_INLINE inline +#elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) + #define JSON_HEDLEY_INLINE __inline__ +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_INLINE __inline +#else + #define JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_ALWAYS_INLINE) + #undef JSON_HEDLEY_ALWAYS_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_NEVER_INLINE) + #undef JSON_HEDLEY_NEVER_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#else + #define JSON_HEDLEY_NEVER_INLINE +#endif + +#if defined(JSON_HEDLEY_PRIVATE) + #undef JSON_HEDLEY_PRIVATE +#endif +#if defined(JSON_HEDLEY_PUBLIC) + #undef JSON_HEDLEY_PUBLIC +#endif +#if defined(JSON_HEDLEY_IMPORT) + #undef JSON_HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC __declspec(dllexport) +# define JSON_HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC +# endif +# define JSON_HEDLEY_IMPORT extern +#endif + +#if defined(JSON_HEDLEY_NO_THROW) + #undef JSON_HEDLEY_NO_THROW +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NO_THROW __declspec(nothrow) +#else + #define JSON_HEDLEY_NO_THROW +#endif + +#if defined(JSON_HEDLEY_FALL_THROUGH) + #undef JSON_HEDLEY_FALL_THROUGH +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ + #define JSON_HEDLEY_FALL_THROUGH __fallthrough +#else + #define JSON_HEDLEY_FALL_THROUGH +#endif + +#if defined(JSON_HEDLEY_RETURNS_NON_NULL) + #undef JSON_HEDLEY_RETURNS_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ + #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else + #define JSON_HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(JSON_HEDLEY_ARRAY_PARAM) + #undef JSON_HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_ARRAY_PARAM(name) (name) +#else + #define JSON_HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(JSON_HEDLEY_IS_CONSTANT) + #undef JSON_HEDLEY_IS_CONSTANT +#endif +#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) + #undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#endif +/* JSON_HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #undef JSON_HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +#endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(JSON_HEDLEY_SUNPRO_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION)) || \ + (JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +#endif +# elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + defined(JSON_HEDLEY_INTEL_VERSION) || \ + defined(JSON_HEDLEY_TINYC_VERSION) || \ + defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(JSON_HEDLEY_TI_CL2000_VERSION) || \ + defined(JSON_HEDLEY_TI_CL6X_VERSION) || \ + defined(JSON_HEDLEY_TI_CL7X_VERSION) || \ + defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ +((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) (0) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(JSON_HEDLEY_BEGIN_C_DECLS) + #undef JSON_HEDLEY_BEGIN_C_DECLS +#endif +#if defined(JSON_HEDLEY_END_C_DECLS) + #undef JSON_HEDLEY_END_C_DECLS +#endif +#if defined(JSON_HEDLEY_C_DECL) + #undef JSON_HEDLEY_C_DECL +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { + #define JSON_HEDLEY_END_C_DECLS } + #define JSON_HEDLEY_C_DECL extern "C" +#else + #define JSON_HEDLEY_BEGIN_C_DECLS + #define JSON_HEDLEY_END_C_DECLS + #define JSON_HEDLEY_C_DECL +#endif + +#if defined(JSON_HEDLEY_STATIC_ASSERT) + #undef JSON_HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (JSON_HEDLEY_HAS_FEATURE(c_static_assert) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(JSON_HEDLEY_NULL) + #undef JSON_HEDLEY_NULL +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) + #elif defined(NULL) + #define JSON_HEDLEY_NULL NULL + #else + #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) + #endif +#elif defined(NULL) + #define JSON_HEDLEY_NULL NULL +#else + #define JSON_HEDLEY_NULL ((void*) 0) +#endif + +#if defined(JSON_HEDLEY_MESSAGE) + #undef JSON_HEDLEY_MESSAGE +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_MESSAGE(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(message msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) +#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_WARNING) + #undef JSON_HEDLEY_WARNING +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_WARNING(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(clang warning msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_REQUIRE) + #undef JSON_HEDLEY_REQUIRE +#endif +#if defined(JSON_HEDLEY_REQUIRE_MSG) + #undef JSON_HEDLEY_REQUIRE_MSG +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") +# define JSON_HEDLEY_REQUIRE(expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define JSON_HEDLEY_REQUIRE(expr) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(JSON_HEDLEY_FLAGS) + #undef JSON_HEDLEY_FLAGS +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || JSON_HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) + #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else + #define JSON_HEDLEY_FLAGS +#endif + +#if defined(JSON_HEDLEY_FLAGS_CAST) + #undef JSON_HEDLEY_FLAGS_CAST +#endif +#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(JSON_HEDLEY_EMPTY_BASES) + #undef JSON_HEDLEY_EMPTY_BASES +#endif +#if \ + (JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else + #define JSON_HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) + #undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#endif +#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) + +#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) + #undef JSON_HEDLEY_CLANG_HAS_FEATURE +#endif +#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) + +#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) + #undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#endif +#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) + +#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_WARNING) + #undef JSON_HEDLEY_CLANG_HAS_WARNING +#endif +#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ + + +// This file contains all internal macro definitions (except those affecting ABI) +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// #include + + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// C++ language standard detection +// if the user manually specified the used C++ version, this is skipped +#if !defined(JSON_HAS_CPP_23) && !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus > 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG > 202002L) + #define JSON_HAS_CPP_23 + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG > 201703L) + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201402L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201103L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 + #endif + // the cpp 11 flag is always specified because it is the minimal required version + #define JSON_HAS_CPP_11 +#endif + +#ifdef __has_include + #if __has_include() + #include + #endif +#endif + +#if !defined(JSON_HAS_FILESYSTEM) && !defined(JSON_HAS_EXPERIMENTAL_FILESYSTEM) + #ifdef JSON_HAS_CPP_17 + #if defined(__cpp_lib_filesystem) + #define JSON_HAS_FILESYSTEM 1 + #elif defined(__cpp_lib_experimental_filesystem) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif !defined(__has_include) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #endif + + // std::filesystem does not work on MinGW GCC 8: https://sourceforge.net/p/mingw-w64/bugs/737/ + #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ == 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before GCC 8: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before Clang 7: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__clang_major__) && __clang_major__ < 7 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before MSVC 19.14: https://en.cppreference.com/w/cpp/compiler_support + #if defined(_MSC_VER) && _MSC_VER < 1914 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before iOS 13 + #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before macOS Catalina + #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + #endif +#endif + +#ifndef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_FILESYSTEM + #define JSON_HAS_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_THREE_WAY_COMPARISON + #if defined(__cpp_impl_three_way_comparison) && __cpp_impl_three_way_comparison >= 201907L \ + && defined(__cpp_lib_three_way_comparison) && __cpp_lib_three_way_comparison >= 201907L + #define JSON_HAS_THREE_WAY_COMPARISON 1 + #else + #define JSON_HAS_THREE_WAY_COMPARISON 0 + #endif +#endif + +#ifndef JSON_HAS_RANGES + // ranges header shipping in GCC 11.1.0 (released 2021-04-27) has a syntax error + #if defined(__GLIBCXX__) && __GLIBCXX__ == 20210427 + #define JSON_HAS_RANGES 0 + #elif defined(__cpp_lib_ranges) + #define JSON_HAS_RANGES 1 + #else + #define JSON_HAS_RANGES 0 + #endif +#endif + +#ifndef JSON_HAS_STATIC_RTTI + #if !defined(_HAS_STATIC_RTTI) || _HAS_STATIC_RTTI != 0 + #define JSON_HAS_STATIC_RTTI 1 + #else + #define JSON_HAS_STATIC_RTTI 0 + #endif +#endif + +#ifdef JSON_HAS_CPP_17 + #define JSON_INLINE_VARIABLE inline +#else + #define JSON_INLINE_VARIABLE +#endif + +#if JSON_HEDLEY_HAS_ATTRIBUTE(no_unique_address) + #define JSON_NO_UNIQUE_ADDRESS [[no_unique_address]] +#else + #define JSON_NO_UNIQUE_ADDRESS +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdocumentation" + #pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#endif + +// allow disabling exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// allow overriding assert +#if !defined(JSON_ASSERT) + #include // assert + #define JSON_ASSERT(x) assert(x) +#endif + +// allow accessing some private functions (needed by the test suite) +#if defined(JSON_TESTS_PRIVATE) + #define JSON_PRIVATE_UNLESS_TESTED public +#else + #define JSON_PRIVATE_UNLESS_TESTED private +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [&j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer, \ + class BinaryType, \ + class CustomBaseClass> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// Macros to simplify conversion from/to types + +#define NLOHMANN_JSON_EXPAND( x ) x +#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME +#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \ + NLOHMANN_JSON_PASTE64, \ + NLOHMANN_JSON_PASTE63, \ + NLOHMANN_JSON_PASTE62, \ + NLOHMANN_JSON_PASTE61, \ + NLOHMANN_JSON_PASTE60, \ + NLOHMANN_JSON_PASTE59, \ + NLOHMANN_JSON_PASTE58, \ + NLOHMANN_JSON_PASTE57, \ + NLOHMANN_JSON_PASTE56, \ + NLOHMANN_JSON_PASTE55, \ + NLOHMANN_JSON_PASTE54, \ + NLOHMANN_JSON_PASTE53, \ + NLOHMANN_JSON_PASTE52, \ + NLOHMANN_JSON_PASTE51, \ + NLOHMANN_JSON_PASTE50, \ + NLOHMANN_JSON_PASTE49, \ + NLOHMANN_JSON_PASTE48, \ + NLOHMANN_JSON_PASTE47, \ + NLOHMANN_JSON_PASTE46, \ + NLOHMANN_JSON_PASTE45, \ + NLOHMANN_JSON_PASTE44, \ + NLOHMANN_JSON_PASTE43, \ + NLOHMANN_JSON_PASTE42, \ + NLOHMANN_JSON_PASTE41, \ + NLOHMANN_JSON_PASTE40, \ + NLOHMANN_JSON_PASTE39, \ + NLOHMANN_JSON_PASTE38, \ + NLOHMANN_JSON_PASTE37, \ + NLOHMANN_JSON_PASTE36, \ + NLOHMANN_JSON_PASTE35, \ + NLOHMANN_JSON_PASTE34, \ + NLOHMANN_JSON_PASTE33, \ + NLOHMANN_JSON_PASTE32, \ + NLOHMANN_JSON_PASTE31, \ + NLOHMANN_JSON_PASTE30, \ + NLOHMANN_JSON_PASTE29, \ + NLOHMANN_JSON_PASTE28, \ + NLOHMANN_JSON_PASTE27, \ + NLOHMANN_JSON_PASTE26, \ + NLOHMANN_JSON_PASTE25, \ + NLOHMANN_JSON_PASTE24, \ + NLOHMANN_JSON_PASTE23, \ + NLOHMANN_JSON_PASTE22, \ + NLOHMANN_JSON_PASTE21, \ + NLOHMANN_JSON_PASTE20, \ + NLOHMANN_JSON_PASTE19, \ + NLOHMANN_JSON_PASTE18, \ + NLOHMANN_JSON_PASTE17, \ + NLOHMANN_JSON_PASTE16, \ + NLOHMANN_JSON_PASTE15, \ + NLOHMANN_JSON_PASTE14, \ + NLOHMANN_JSON_PASTE13, \ + NLOHMANN_JSON_PASTE12, \ + NLOHMANN_JSON_PASTE11, \ + NLOHMANN_JSON_PASTE10, \ + NLOHMANN_JSON_PASTE9, \ + NLOHMANN_JSON_PASTE8, \ + NLOHMANN_JSON_PASTE7, \ + NLOHMANN_JSON_PASTE6, \ + NLOHMANN_JSON_PASTE5, \ + NLOHMANN_JSON_PASTE4, \ + NLOHMANN_JSON_PASTE3, \ + NLOHMANN_JSON_PASTE2, \ + NLOHMANN_JSON_PASTE1)(__VA_ARGS__)) +#define NLOHMANN_JSON_PASTE2(func, v1) func(v1) +#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2) +#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3) +#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4) +#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5) +#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6) +#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7) +#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8) +#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9) +#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10) +#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) +#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) +#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) +#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) +#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) +#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) +#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) +#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) +#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) +#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) +#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) +#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) +#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) +#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) +#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) +#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) +#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) +#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) +#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) +#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) +#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) +#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) +#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) +#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) +#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) +#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) +#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) +#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) +#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) +#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) +#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) +#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) +#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) +#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) +#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) +#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) +#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) +#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) +#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) +#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) +#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) +#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) +#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) +#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) +#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) +#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) +#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) +#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) +#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) +#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) +#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) +#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) +#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) + +#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; +#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1; + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE +@since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE +@since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +// inspired from https://stackoverflow.com/a/26745591 +// allows calling any std function as if (e.g., with begin): +// using std::begin; begin(x); +// +// it allows using the detected idiom to retrieve the return type +// of such an expression +#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \ + namespace detail { \ + using std::std_name; \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + } \ + \ + namespace detail2 { \ + struct std_name##_tag \ + { \ + }; \ + \ + template \ + std_name##_tag std_name(T&&...); \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + \ + template \ + struct would_call_std_##std_name \ + { \ + static constexpr auto const value = ::nlohmann::detail:: \ + is_detected_exact::value; \ + }; \ + } /* namespace detail2 */ \ + \ + template \ + struct would_call_std_##std_name : detail2::would_call_std_##std_name \ + { \ + } + +#ifndef JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_USE_IMPLICIT_CONVERSIONS 1 +#endif + +#if JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_EXPLICIT +#else + #define JSON_EXPLICIT explicit +#endif + +#ifndef JSON_DISABLE_ENUM_SERIALIZATION + #define JSON_DISABLE_ENUM_SERIALIZATION 0 +#endif + +#ifndef JSON_USE_GLOBAL_UDLS + #define JSON_USE_GLOBAL_UDLS 1 +#endif + +#if JSON_HAS_THREE_WAY_COMPARISON + #include // partial_ordering +#endif + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa see @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + binary, ///< binary array (ordered collection of bytes) + discarded ///< discarded by the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string < binary +- furthermore, each type is not smaller than itself +- discarded values are not comparable +- binary is represented as a b"" string in python and directly comparable to a + string; however, making a binary array directly comparable with a string would + be surprising behavior in a JSON file. + +@since version 1.0.0 +*/ +#if JSON_HAS_THREE_WAY_COMPARISON + inline std::partial_ordering operator<=>(const value_t lhs, const value_t rhs) noexcept // *NOPAD* +#else + inline bool operator<(const value_t lhs, const value_t rhs) noexcept +#endif +{ + static constexpr std::array order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */, + 6 /* binary */ + } + }; + + const auto l_index = static_cast(lhs); + const auto r_index = static_cast(rhs); +#if JSON_HAS_THREE_WAY_COMPARISON + if (l_index < order.size() && r_index < order.size()) + { + return order[l_index] <=> order[r_index]; // *NOPAD* + } + return std::partial_ordering::unordered; +#else + return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index]; +#endif +} + +// GCC selects the built-in operator< over an operator rewritten from +// a user-defined spaceship operator +// Clang, MSVC, and ICC select the rewritten candidate +// (see GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105200) +#if JSON_HAS_THREE_WAY_COMPARISON && defined(__GNUC__) +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + return std::is_lt(lhs <=> rhs); // *NOPAD* +} +#endif + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/*! +@brief replace all occurrences of a substring by another string + +@param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t +@param[in] f the substring to replace with @a t +@param[in] t the string to replace @a f + +@pre The search string @a f must not be empty. **This precondition is +enforced with an assertion.** + +@since version 2.0.0 +*/ +template +inline void replace_substring(StringType& s, const StringType& f, + const StringType& t) +{ + JSON_ASSERT(!f.empty()); + for (auto pos = s.find(f); // find the first occurrence of f + pos != StringType::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find the next occurrence of f + {} +} + +/*! + * @brief string escaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to escape + * @return escaped string + * + * Note the order of escaping "~" to "~0" and "/" to "~1" is important. + */ +template +inline StringType escape(StringType s) +{ + replace_substring(s, StringType{"~"}, StringType{"~0"}); + replace_substring(s, StringType{"/"}, StringType{"~1"}); + return s; +} + +/*! + * @brief string unescaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to unescape + * @return unescaped string + * + * Note the order of escaping "~1" to "/" and "~0" to "~" is important. + */ +template +inline void unescape(StringType& s) +{ + replace_substring(s, StringType{"~1"}, StringType{"/"}); + replace_substring(s, StringType{"~0"}, StringType{"~"}); +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // size_t + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-FileCopyrightText: 2018 The Abseil Authors +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type +#include // index_sequence, make_index_sequence, index_sequence_for + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +using uncvref_t = typename std::remove_cv::type>::type; + +#ifdef JSON_HAS_CPP_14 + +// the following utilities are natively available in C++14 +using std::enable_if_t; +using std::index_sequence; +using std::make_index_sequence; +using std::index_sequence_for; + +#else + +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +// The following code is taken from https://github.com/abseil/abseil-cpp/blob/10cb35e459f5ecca5b2ff107635da0bfa41011b4/absl/utility/utility.h +// which is part of Google Abseil (https://github.com/abseil/abseil-cpp), licensed under the Apache License 2.0. + +//// START OF CODE FROM GOOGLE ABSEIL + +// integer_sequence +// +// Class template representing a compile-time integer sequence. An instantiation +// of `integer_sequence` has a sequence of integers encoded in its +// type through its template arguments (which is a common need when +// working with C++11 variadic templates). `absl::integer_sequence` is designed +// to be a drop-in replacement for C++14's `std::integer_sequence`. +// +// Example: +// +// template< class T, T... Ints > +// void user_function(integer_sequence); +// +// int main() +// { +// // user_function's `T` will be deduced to `int` and `Ints...` +// // will be deduced to `0, 1, 2, 3, 4`. +// user_function(make_integer_sequence()); +// } +template +struct integer_sequence +{ + using value_type = T; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +// index_sequence +// +// A helper template for an `integer_sequence` of `size_t`, +// `absl::index_sequence` is designed to be a drop-in replacement for C++14's +// `std::index_sequence`. +template +using index_sequence = integer_sequence; + +namespace utility_internal +{ + +template +struct Extend; + +// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. +template +struct Extend, SeqSize, 0> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)... >; +}; + +template +struct Extend, SeqSize, 1> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)..., 2 * SeqSize >; +}; + +// Recursion helper for 'make_integer_sequence'. +// 'Gen::type' is an alias for 'integer_sequence'. +template +struct Gen +{ + using type = + typename Extend < typename Gen < T, N / 2 >::type, N / 2, N % 2 >::type; +}; + +template +struct Gen +{ + using type = integer_sequence; +}; + +} // namespace utility_internal + +// Compile-time sequences of integers + +// make_integer_sequence +// +// This template alias is equivalent to +// `integer_sequence`, and is designed to be a drop-in +// replacement for C++14's `std::make_integer_sequence`. +template +using make_integer_sequence = typename utility_internal::Gen::type; + +// make_index_sequence +// +// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, +// and is designed to be a drop-in replacement for C++14's +// `std::make_index_sequence`. +template +using make_index_sequence = make_integer_sequence; + +// index_sequence_for +// +// Converts a typename pack into an index sequence of the same length, and +// is designed to be a drop-in replacement for C++14's +// `std::index_sequence_for()` +template +using index_sequence_for = make_index_sequence; + +//// END OF CODE FROM GOOGLE ABSEIL + +#endif + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static JSON_INLINE_VARIABLE constexpr T value{}; +}; + +#ifndef JSON_HAS_CPP_17 + template + constexpr T static_const::value; +#endif + +template +constexpr std::array make_array(Args&& ... args) +{ + return std::array {{static_cast(std::forward(args))...}}; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // numeric_limits +#include // char_traits +#include // tuple +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval +#if defined(__cpp_lib_byte) && __cpp_lib_byte >= 201603L + #include // byte +#endif +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // random_access_iterator_tag + +// #include + +// #include + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); + +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ + #define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + #include // int64_t, uint64_t + #include // map + #include // allocator + #include // string + #include // vector + + // #include + + + /*! + @brief namespace for Niels Lohmann + @see https://github.com/nlohmann + @since version 1.0.0 + */ + NLOHMANN_JSON_NAMESPACE_BEGIN + + /*! + @brief default JSONSerializer template argument + + This serializer ignores the template arguments and uses ADL + ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) + for serialization. + */ + template + struct adl_serializer; + + /// a class to store JSON values + /// @sa https://json.nlohmann.me/api/basic_json/ + template class ObjectType = + std::map, + template class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template class AllocatorType = std::allocator, + template class JSONSerializer = + adl_serializer, + class BinaryType = std::vector, // cppcheck-suppress syntaxError + class CustomBaseClass = void> + class basic_json; + + /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document + /// @sa https://json.nlohmann.me/api/json_pointer/ + template + class json_pointer; + + /*! + @brief default specialization + @sa https://json.nlohmann.me/api/json/ + */ + using json = basic_json<>; + + /// @brief a minimal map-like container that preserves insertion order + /// @sa https://json.nlohmann.me/api/ordered_map/ + template + struct ordered_map; + + /// @brief specialization that maintains the insertion order of object keys + /// @sa https://json.nlohmann.me/api/ordered_json/ + using ordered_json = basic_json; + + NLOHMANN_JSON_NAMESPACE_END + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +NLOHMANN_JSON_NAMESPACE_BEGIN +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ + +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non-CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e., those of the form: decltype(T::member_function(std::declval()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g., to_json(BasicJsonType&, const T&)) + +template struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json : std::true_type {}; + +// used by exceptions create() member functions +// true_type for the pointer to possibly cv-qualified basic_json or std::nullptr_t +// false_type otherwise +template +struct is_basic_json_context : + std::integral_constant < bool, + is_basic_json::type>::type>::value + || std::is_same::value > +{}; + +////////////////////// +// json_ref helpers // +////////////////////// + +template +class json_ref; + +template +struct is_json_ref : std::false_type {}; + +template +struct is_json_ref> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template +using mapped_type_t = typename T::mapped_type; + +template +using key_type_t = typename T::key_type; + +template +using value_type_t = typename T::value_type; + +template +using difference_type_t = typename T::difference_type; + +template +using pointer_t = typename T::pointer; + +template +using reference_t = typename T::reference; + +template +using iterator_category_t = typename T::iterator_category; + +template +using to_json_function = decltype(T::to_json(std::declval()...)); + +template +using from_json_function = decltype(T::from_json(std::declval()...)); + +template +using get_template_function = decltype(std::declval().template get()); + +// trait checking if JSONSerializer::from_json(json const&, udt&) exists +template +struct has_from_json : std::false_type {}; + +// trait checking if j.get is valid +// use this trait instead of std::is_constructible or std::is_convertible, +// both rely on, or make use of implicit conversions, and thus fail when T +// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958) +template +struct is_getable +{ + static constexpr bool value = is_detected::value; +}; + +template +struct has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if JSONSerializer::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template +struct has_non_default_from_json : std::false_type {}; + +template +struct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if BasicJsonType::json_serializer::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template +struct has_to_json : std::false_type {}; + +template +struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +template +using detect_key_compare = typename T::key_compare; + +template +struct has_key_compare : std::integral_constant::value> {}; + +// obtains the actual object key comparator +template +struct actual_object_comparator +{ + using object_t = typename BasicJsonType::object_t; + using object_comparator_t = typename BasicJsonType::default_object_comparator_t; + using type = typename std::conditional < has_key_compare::value, + typename object_t::key_compare, object_comparator_t>::type; +}; + +template +using actual_object_comparator_t = typename actual_object_comparator::type; + +///////////////// +// char_traits // +///////////////// + +// Primary template of char_traits calls std char_traits +template +struct char_traits : std::char_traits +{}; + +// Explicitly define char traits for unsigned char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = unsigned char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(std::char_traits::eof()); + } +}; + +// Explicitly define char traits for signed char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = signed char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(std::char_traits::eof()); + } +}; + +#if defined(__cpp_lib_byte) && __cpp_lib_byte >= 201603L +template<> +struct char_traits : std::char_traits +{ + using char_type = std::byte; + using int_type = uint64_t; + + static int_type to_int_type(char_type c) noexcept + { + return static_cast(std::to_integer(c)); + } + + static char_type to_char_type(int_type i) noexcept + { + return std::byte(static_cast(i)); + } + + static constexpr int_type eof() noexcept + { + return static_cast(std::char_traits::eof()); + } +}; +#endif + +/////////////////// +// is_ functions // +/////////////////// + +// https://en.cppreference.com/w/cpp/types/conjunction +template struct conjunction : std::true_type { }; +template struct conjunction : B { }; +template +struct conjunction +: std::conditional(B::value), conjunction, B>::type {}; + +// https://en.cppreference.com/w/cpp/types/negation +template struct negation : std::integral_constant < bool, !B::value > { }; + +// Reimplementation of is_constructible and is_default_constructible, due to them being broken for +// std::pair and std::tuple until LWG 2367 fix (see https://cplusplus.github.io/LWG/lwg-defects.html#2367). +// This causes compile errors in e.g., Clang 3.5 or GCC 4.9. +template +struct is_default_constructible : std::is_default_constructible {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_constructible : std::is_constructible {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_iterator_traits : std::false_type {}; + +template +struct is_iterator_traits> +{ + private: + using traits = iterator_traits; + + public: + static constexpr auto value = + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value; +}; + +template +struct is_range +{ + private: + using t_ref = typename std::add_lvalue_reference::type; + + using iterator = detected_t; + using sentinel = detected_t; + + // to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator + // and https://en.cppreference.com/w/cpp/iterator/sentinel_for + // but reimplementing these would be too much work, as a lot of other concepts are used underneath + static constexpr auto is_iterator_begin = + is_iterator_traits>::value; + + public: + static constexpr bool value = !std::is_same::value && !std::is_same::value && is_iterator_begin; +}; + +template +using iterator_t = enable_if_t::value, result_of_begin())>>; + +template +using range_value_t = value_type_t>>; + +// The following implementation of is_complete_type is taken from +// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/ +// and is written by Xiang Fan who agreed to use it in this library. + +template +struct is_complete_type : std::false_type {}; + +template +struct is_complete_type : std::true_type {}; + +template +struct is_compatible_object_type_impl : std::false_type {}; + +template +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + is_constructible::value && + is_constructible::value; +}; + +template +struct is_compatible_object_type + : is_compatible_object_type_impl {}; + +template +struct is_constructible_object_type_impl : std::false_type {}; + +template +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (is_default_constructible::value && + (std::is_move_assignable::value || + std::is_copy_assignable::value) && + (is_constructible::value && + std::is_same < + typename object_t::mapped_type, + typename ConstructibleObjectType::mapped_type >::value)) || + (has_from_json::value || + has_non_default_from_json < + BasicJsonType, + typename ConstructibleObjectType::mapped_type >::value); +}; + +template +struct is_constructible_object_type + : is_constructible_object_type_impl {}; + +template +struct is_compatible_string_type +{ + static constexpr auto value = + is_constructible::value; +}; + +template +struct is_constructible_string_type +{ + // launder type through decltype() to fix compilation failure on ICPC +#ifdef __INTEL_COMPILER + using laundered_type = decltype(std::declval()); +#else + using laundered_type = ConstructibleStringType; +#endif + + static constexpr auto value = + conjunction < + is_constructible, + is_detected_exact>::value; +}; + +template +struct is_compatible_array_type_impl : std::false_type {}; + +template +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t < + is_detected::value&& + is_iterator_traits>>::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 + !std::is_same>::value >> +{ + static constexpr bool value = + is_constructible>::value; +}; + +template +struct is_compatible_array_type + : is_compatible_array_type_impl {}; + +template +struct is_constructible_array_type_impl : std::false_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t::value >> + : std::true_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t < !std::is_same::value&& + !is_compatible_string_type::value&& + is_default_constructible::value&& +(std::is_move_assignable::value || + std::is_copy_assignable::value)&& +is_detected::value&& +is_iterator_traits>>::value&& +is_detected::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 +!std::is_same>::value&& +is_complete_type < +detected_t>::value >> +{ + using value_type = range_value_t; + + static constexpr bool value = + std::is_same::value || + has_from_json::value || + has_non_default_from_json < + BasicJsonType, + value_type >::value; +}; + +template +struct is_constructible_array_type + : is_constructible_array_type_impl {}; + +template +struct is_compatible_integer_type_impl : std::false_type {}; + +template +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t < std::is_integral::value&& + std::is_integral::value&& + !std::is_same::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits; + using CompatibleLimits = std::numeric_limits; + + static constexpr auto value = + is_constructible::value && + CompatibleLimits::is_integer && + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template +struct is_compatible_integer_type + : is_compatible_integer_type_impl {}; + +template +struct is_compatible_type_impl: std::false_type {}; + +template +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t::value >> +{ + static constexpr bool value = + has_to_json::value; +}; + +template +struct is_compatible_type + : is_compatible_type_impl {}; + +template +struct is_constructible_tuple : std::false_type {}; + +template +struct is_constructible_tuple> : conjunction...> {}; + +template +struct is_json_iterator_of : std::false_type {}; + +template +struct is_json_iterator_of : std::true_type {}; + +template +struct is_json_iterator_of : std::true_type +{}; + +// checks if a given type T is a template specialization of Primary +template